> For the complete documentation index, see [llms.txt](https://docs.zhuzhe.id/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zhuzhe.id/profil-dan-tujuan-aplikasi.md).

# Profil dan Tujuan Aplikasi

## Volume 1: Dokumentasi Zhuzhe POS Enterprise

### 1. Profil dan Tujuan Aplikasi

#### 1.1 Deskripsi Umum

**Zhuzhe POS Enterprise** adalah solusi perangkat lunak manajemen titik penjualan (Point of Sale) berbasis Cloud yang dirancang untuk skala bisnis menengah hingga besar (Enterprise). Sistem ini memungkinkan pemilik bisnis mengelola banyak cabang (Multi-Store) dalam satu platform terpusat dengan isolasi data yang sangat ketat.

Berbeda dengan POS sederhana, Zhuzhe POS mengadopsi arsitektur **Multi-Tenant**, di mana setiap cabang toko memiliki ekosistem data mandiri mulai dari katalog produk, stok gudang, hingga basis data pelanggan, namun tetap di bawah pengawasan Super Admin di Kantor Pusat.

#### 1.2 Tujuan Utama

1. **Skalabilitas Bisnis:** Memudahkan ekspansi toko dari 1 cabang menjadi ratusan cabang tanpa kendala sinkronisasi data.
2. **Integritas Stok:** Menjamin keakuratan data inventaris melalui sistem Audit Trail (Mutasi Stok) yang mencatat setiap barang masuk dan keluar.
3. **Fleksibilitas Operasional:** Mendukung berbagai model bisnis mulai dari Ritel (Minimarket), F\&B (Restoran/Cafe), hingga distribusi (Toko Bangunan).
4. **Keamanan Data:** Mengamankan transaksi dari manipulasi melalui sistem hak akses berbasis peran (RBAC) dan validasi server-side yang ketat.

***

### 2. Arsitektur Teknologi (Technical Stack)

Aplikasi ini dibangun menggunakan kombinasi teknologi terbaru untuk menjamin performa tinggi dan keamanan.

#### 2.1 Backend: Laravel 12 (PHP 8.3+)

* **API-First Design:** Menggunakan Laravel sebagai penyedia layanan API (Restful API) yang diproteksi oleh **Laravel Sanctum**.
* **Database Transactional:** Menggunakan DB::transaction pada setiap proses krusial (seperti Checkout dan Update Stok) untuk mencegah kegagalan data parsial.
* **Eloquent ORM:** Relasi antar tabel diatur secara mendalam untuk mendukung pengambilan data yang kompleks (Multi-satuan, Multi-harga).

#### 2.2 Frontend: React JS & TypeScript

* **State Management:** Menggunakan React Hooks (useState, useMemo, useCallback) untuk pengolahan data di sisi klien yang responsif.
* **TypeScript:** Menjamin akurasi tipe data antara Frontend dan Backend untuk meminimalisir error saat runtime.
* **Framer Motion:** Memberikan pengalaman pengguna (UX) yang halus melalui animasi transisi antar halaman dan modal.

#### 2.3 Desain & UI: Tailwind CSS

* **Utility-First:** Memungkinkan kustomisasi desain yang sangat cepat dan responsif di berbagai ukuran layar (Mobile, Tablet, Desktop).
* **Modern Aesthetic:** Menggunakan gaya desain "Glassmorphism" dan "Soft UI" dengan sudut membulat (rounded-\[3rem]) yang memberikan kesan premium.

#### 2.4 Database: MySQL 8.0+

* **JSON Support:** Digunakan untuk menyimpan data dinamis seperti galeri foto produk dan metadata transaksi.
* **Composite Indexing:** Mengoptimalkan pencarian data pada sistem Multi-Tenant dengan index gabungan store\_id dan kolom unik lainnya.

***

### 3. Konsep Dasar Multi-Tenant

#### 3.1 Isolasi Data Berbasis store\_id

Ini adalah jantung dari Zhuzhe POS. Setiap baris data dalam database (kecuali tabel induk stores) memiliki kolom store\_id.

* **Keamanan:** Seorang Kasir di Toko A secara teknis mustahil bisa melihat nota transaksi dari Toko B karena query SQL selalu dikunci dengan WHERE store\_id = X.
* **Kustomisasi Lokal:** Toko Jakarta bisa memiliki harga jual Rp 15.000 untuk sebuah kopi, sedangkan Toko Bandung bisa menjual produk yang sama dengan harga Rp 12.000 melalui pengaturan Price Group yang berbeda.

#### 3.2 Struktur Hierarki Pengguna

Sistem mengenal 4 tingkat otoritas:

1. **Admin (Super Admin):** Memiliki kunci master untuk masuk ke toko mana pun, mengatur branding aplikasi pusat, dan membuat toko baru.
2. **Admin Store:** Bertugas mengawasi satu atau lebih cabang tertentu (Regional Manager). Memiliki fitur "Switch Store" untuk berpindah konteks data.
3. **Manager:** Mengelola operasional harian satu toko (Master Produk, Stok, Laporan).
4. **Cashier:** Fokus penuh pada terminal penjualan (POS) dan pengelolaan pelanggan.

***

### 4. Persyaratan Sistem (System Requirements)

#### 4.1 Server Side

* PHP >= 8.2
* BCMath PHP Extension (Untuk akurasi perhitungan uang)
* Ctype PHP Extension
* JSON PHP Extension
* MySQL >= 8.0

#### 4.2 Client Side (Perangkat Kasir)

* Browser modern (Chrome, Edge, atau Safari).
* Ram Minimal 4GB (Untuk kelancaran render React).
* Printer Thermal POS58B (USB/Bluetooth) untuk cetak struk.
* Barcode Scanner (Optional) dengan koneksi USB/HID.

***

**Volume 2 akan membahas Detail Fitur Inventaris & Katalog Produk (Multi-Unit, Multi-Price, dan Modifiers).**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.zhuzhe.id/profil-dan-tujuan-aplikasi.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
