Erdigma (Dashboard)
Repo: erhanesia/erdigma · Stack: React 17 + Vite + CoreUI, React Query, Recoil, TypeScript
Tujuan
Section titled “Tujuan”Dashboard internal untuk operasional harian: mencatat transaksi penjualan, memeriksa laba rugi, mengelola pelanggan dan produk, sampai menangani komplain. Satu aplikasi, banyak peran — apa yang terlihat di layar bergantung pada peran akun yang login.
Arsitektur singkat
Section titled “Arsitektur singkat”- Aplikasi satu halaman, routing hash (
HashRouter). Alamat berbentuk/#/transactions, bukan/transactions. - 143 rute terdaftar di
src/routes.js, dikelompokkan mengikuti menu sidebar (src/containers/_nav.jsx), dan 52 modul fitur disrc/features/. - Dua backend dipanggil dari satu aplikasi:
axiosInstance(API_URL) untuk data utama, danaxiosInstanceFinance(awalan/api) untuk data keuangan. Salah instance berarti 404, bukan 401. - Sesi di browser. Login menyimpan
accessTokendanrefreshTokendilocalStorage; setiap permintaan diberi headerAuthorization. Token kedaluwarsa diperbarui otomatis lewatPOST auth/access-token. - Peran menentukan layar. Rute dan menu disaring dengan
route.roles.includes(user.role); rute tanpa daftarrolesterbuka untuk semua user yang login.
Fitur yang sudah didokumentasikan
Section titled “Fitur yang sudah didokumentasikan”| Fitur | Isi |
|---|---|
| Login & Akses | alur masuk end-to-end: form, submit, validasi, redirect, sesi habis |
| Pengguna & Peran | akun, daftar peran, penjagaan menu dan rute |
| Transaksi | jalur input manual, impor, dan pembacaan transaksi beserta perannya |
Relasi antar fitur (siapa butuh siapa) ada di Peta Fitur.
Konvensi penulisan
Section titled “Konvensi penulisan”- Satu halaman = satu fitur, ditulis untuk pemakai dan developer sekaligus.
- Setiap halaman menyebut file dan endpoint aslinya, plus commit tempat isinya dibaca.
- Bagian yang belum ditelusuri ditulis terang-terangan di halaman itu, bukan disembunyikan.