Lewati ke konten

Erdigma (Dashboard)

Repo: erhanesia/erdigma · Stack: React 17 + Vite + CoreUI, React Query, Recoil, TypeScript

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.

  • 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 di src/features/.
  • Dua backend dipanggil dari satu aplikasi: axiosInstance (API_URL) untuk data utama, dan axiosInstanceFinance (awalan /api) untuk data keuangan. Salah instance berarti 404, bukan 401.
  • Sesi di browser. Login menyimpan accessToken dan refreshToken di localStorage; setiap permintaan diberi header Authorization. Token kedaluwarsa diperbarui otomatis lewat POST auth/access-token.
  • Peran menentukan layar. Rute dan menu disaring dengan route.roles.includes(user.role); rute tanpa daftar roles terbuka untuk semua user yang login.
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.

  • 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.