Analitik, Laporan & Manajemen Pengguna (RBAC)

1. Filosofi Analitik Data

Zhuzhe POS tidak hanya berfungsi sebagai mesin pencatat transaksi, tetapi juga sebagai alat bantu pengambilan keputusan (Decision Support System). Dengan arsitektur data yang terstruktur, pemilik bisnis dapat memantau kesehatan finansial setiap cabang secara real-time. Laporan yang akurat adalah kunci untuk meminimalkan kebocoran dana dan mengoptimalkan persediaan barang.


2. Fitur Utama Laporan & Dashboard

2.1 Real-Time Dashboard Stats

Halaman utama memberikan ringkasan instan (Pulse) mengenai kondisi toko saat ini:

  • Total Revenue: Akumulasi pendapatan kotor harian/bulanan.

  • Total Transaksi: Jumlah nota yang berhasil diterbitkan.

  • Stok Kritis: Jumlah produk yang sudah mencapai ambang batas stok minimum dan butuh pengadaan segera.

  • Sales Terkini: Daftar 5 transaksi terakhir untuk pemantauan cepat kasir.

2.2 Laporan Penjualan Mendalam

Menampilkan riwayat seluruh transaksi yang tersimpan di database dengan fitur:

  • Filter & Search: Mencari transaksi berdasarkan nomor invoice atau nama pelanggan.

  • Rincian Profit: Menampilkan laba bersih yang didapatkan dari setiap transaksi setelah dikurangi HPP (Modal) dan pajak.

  • Metode Pembayaran: Rekapitulasi jumlah uang yang masuk melalui Cash, QRIS, maupun Transfer untuk mempermudah audit keuangan.

2.3 Top Product Analysis

Sistem menganalisis produk mana yang paling sering dibeli oleh pelanggan di cabang tertentu. Data ini membantu Manager dalam mengatur strategi promosi dan alokasi stok gudang agar barang yang laku selalu tersedia.


3. Manajemen Pengguna & Hak Akses (RBAC)

Keamanan aplikasi Zhuzhe POS didasarkan pada sistem Role-Based Access Control (RBAC) yang sangat ketat untuk mencegah penyalahgunaan wewenang.

3.1 Hirarki Peran (Roles)

  1. Admin (Super Admin):

    • Memiliki akses penuh ke seluruh cabang toko di dalam sistem.

    • Dapat membuat toko baru, mengatur branding aplikasi pusat, dan mengelola akun admin_store.

  2. Admin Store (Regional Manager):

    • Mengelola satu atau beberapa toko tertentu yang ditugaskan kepadanya.

    • Dapat berpindah-pindah konteks toko (Switch Store) untuk melihat laporan area.

  3. Manager:

    • Hanya memiliki akses pada satu toko tempatnya bertugas.

    • Dapat mengelola katalog produk, stok, dan melihat laporan internal toko.

  4. Cashier (Kasir):

    • Role paling terbatas, hanya diizinkan mengakses Terminal POS dan Dashboard ringkasan.

3.2 Penugasan Toko (Store Assignment)

Setiap user (kecuali Super Admin) dikunci pada kolom store_id. Hal ini menjamin bahwa meskipun kasir mencoba mengakses API secara manual, server Laravel akan menolak jika ID data yang diminta tidak sesuai dengan store_id milik user tersebut.


4. Penjelasan Teknis (Technical Deep Dive)

4.1 Agregasi SQL yang Efisien

Laporan statistik (Revenue & Profit) dihasilkan menggunakan fungsi agregat database (SUM, COUNT, GROUP BY) langsung di level database engine.

  • Optimasi: Menggunakan parameter per_page yang dinamis agar beban render frontend tetap ringan meskipun basis data memiliki jutaan catatan transaksi.

4.2 Keamanan Password & Sesi

  • Bcrypt Hashing: Password pengguna tidak disimpan dalam bentuk teks biasa, melainkan di-hash menggunakan algoritma Bcrypt yang aman dari peretasan.

  • Laravel Sanctum: Setiap sesi komunikasi antara React dan Laravel diamankan menggunakan Token Bearer. Token ini akan hangus otomatis jika user logout atau sesi kadaluarsa.

4.3 Hirarki Validasi Server-Side

Sistem backend memiliki logika pelapis:

  • admin_store dilarang membuat atau menghapus akun Admin (Super Admin).

  • Manager dilarang membuat akun admin_store.

  • User dilarang menghapus akun mereka sendiri untuk mencegah kehilangan jejak audit trail jika terjadi masalah.


5. Penjelasan Non-Teknis (User Experience)

5.1 Feedback Visual Status

Pada tabel laporan, sistem menggunakan kode warna untuk memudahkan pembacaan:

  • Invoice Blue: Menandakan link aktif untuk melihat detail nota.

  • Emerald Green: Menandakan angka laba atau keuntungan.

  • Indigo Tags: Menunjukkan role atau otoritas pengguna.

5.2 Pengelolaan Akun yang Mandiri

Setiap cabang dapat mendaftarkan kasir baru secara mandiri tanpa harus menghubungi Kantor Pusat, namun kasir tersebut akan secara otomatis terikat pada toko yang mendaftarkannya.


6. Ringkasan Objek Data (Data Dictionary)

6.1 Tabel users

Field

Tipe Data

Fungsi

username

String (Unique)

Identitas unik untuk masuk ke sistem.

role

Enum

Penentu fitur apa saja yang muncul di sidebar.

store_id

Foreign Key

Pengunci data agar user tidak bisa melihat data toko lain.

6.2 Tabel store_user (Pivot)

Field

Tipe Data

Fungsi

user_id

Foreign Key

Referensi ID pengguna.

store_id

Foreign Key

Daftar toko yang diizinkan untuk diakses (khusus admin_store).


Volume 7 akan membahas Detail Fitur Pengaturan Aplikasi (Settings), Branding Pusat, dan Konfigurasi Hardware (Printer).

Last updated