Aplikasi ini mengelola master data (kategori, sub kategori, pelanggan, produk),
pergerakan stok (barang masuk, penjualan, penyesuaian), serta laporan penjualan
dan laba rugi kotor. Pengguna masuk dengan akun lokal; password disimpan dalam
bentuk hash. Produk dapat dilengkapi foto, harga jual, harga modal, dan diskon
per unit. Stok otomatis berkurang saat transaksi POS dan bertambah saat pencatatan
barang masuk. Tersedia halaman khusus untuk produk dengan stok menipis sesuai
ambang batas yang Anda atur.
Untuk mempercepat pengujian, aplikasi dapat mengisi data contoh (kategori Makanan
& Minuman, puluhan produk Indonesia perkiraan harga ritel, stok awal 20, dan
beberapa pelanggan) saat basis data pertama kali dibuat atau saat upgrade ke
versi skema tertentu (jika belum ada data kategori/produk).
FITUR UTAMA
-----------
1. Autentikasi
- - Login pengguna lokal
- - Ganti password
- - Akun default: admin / admin123 (sebaiknya diganti setelah pertama kali pakai)
2. Kategori & sub kategori
- - CRUD kategori produk (halaman daftar + form)
- - CRUD sub kategori terikat ke kategori induk
- - Filter sub kategori per kategori
3. Pelanggan
- - Data: nama, nomor HP, alamat, status aktif/nonaktif
- - Filter daftar pelanggan aktif saja
4. Produk
- - Nama, keterangan, sub kategori (opsional)
- - Harga jual, harga modal, potongan/diskon per unit (harga efektif = jual − diskon)
- - Unggah gambar produk (disimpan di folder dokumen aplikasi)
- - Gambar placeholder bawaan jika belum ada foto
- - Stok awal / stok saat ini dan ambang “stok menipis” per produk
5. Stok & barang masuk
- - Stok per produk (jumlah + ambang menipis)
- - Barang masuk: menambah stok dan mencatat riwayat
- - Penyesuaian stok manual dari halaman stok produk
6. Stok menipis
- - Daftar produk dengan jumlah stok ≤ ambang yang diatur
7. POS (penjualan)
- - Pencarian produk, grid produk dengan thumbnail
- - Keranjang: ubah kuantitas, subtotal per baris
- - Pelanggan opsional (hanya yang aktif)
- - Diskon nota (rupiah)
- - Pembayaran/selesai: menyimpan transaksi dan mengurangi stok (transaksi dibatalkan jika stok tidak cukup)
8. Laporan
- - Laporan penjualan (filter tanggal, ringkasan total)
- - Laporan laba rugi kotor (pendapatan, HPP dari modal × qty terjual, laba kotor)
- - Ekspor ke PDF (printing/share) untuk laporan penjualan, laba rugi, dan
- detail satu transaksi
9. Antarmuka
- - Beranda dengan pintasan menu dan drawer navigasi
- - Tema merah modern, Material 3
- - Daftar dan form dirancang agar dapat di-scroll (termasuk keranjang POS)
A. Lingkungan pengembangan (jika Anda akan build dari source)
- Flutter SDK yang kompatibel dengan Dart SDK ^3.7.2
- Android: Android Studio / SDK, JDK sesuai versi Gradle proyek
- iOS (opsional): Xcode pada macOS
- Editor: VS Code / Android Studio / Cursor, dll.
B. Perangkat menjalankan aplikasi
- Android: API level sesuai minSdk proyek Flutter (umumnya API 21+; disarankan perangkat atau emulator dengan ruang penyimpanan cukup untuk instal APK + basis data + gambar produk)
- OS / macOS / Windows / Linux: didukung oleh Flutter selama plugin tersedia (sqflite, path_provider, image_picker, printing memiliki implementasi native untuk platform tersebut)
- Web browser: TIDAK didukung penuh — aplikasi membutuhkan SQLite dan folder dokumen perangkat; di web akan ditampilkan penjelasan bahwa platform tidak didukung
C. Izin perangkat (Android)
- Akses galeri / media untuk memilih foto produk (dan kamera jika dipakai)
- Izin sudah diarahkan di manifest sesuai kebutuhan plugin
D. Dependensi utama (paket)
- sqflite — basis data SQLite
- path_provider, path — lokasi file basis data & gambar
- crypto — hash password
- provider — state autentikasi
- intl — format tanggal/mata uang
- image_picker — gambar produk
- pdf, printing — ekspor PDF
- uuid — nomor invoice unik
E. Data & keamanan
- Data hanya di perangkat; tidak ada sinkronisasi cloud bawaan
- Cadangkan file basis data secara manual jika diperlukan (misalnya dari folder dokumen aplikasi di perangkat)
- Gunakan password kuat untuk akun admin di lingkungan produksi
Work dan Berjalan dengan baik.