Aplikasi kasir desktop berbasis Electron + SQLite untuk restoran/ritel, dengan dukungan transaksi cepat, manajemen produk, riwayat transaksi, laporan Excel, cetak invoice, dan dashboard admin.
- Login
admindanpengguna. - Otorisasi berbasis role.
- Reset admin tersembunyi di halaman login dengan shortcut
Ctrl + Shift + P. - Reset admin berbasis
users.id = 1(otomatis set usernameADMIN, password7890, roleadmin).
- CRUD produk: SKU, nama, harga, stok.
- Pencarian SKU/nama di tabel produk.
- Seed otomatis 50 menu Indonesia (SKU
RST-) jika tabel produk kosong. - Produk stok
0tidak ditampilkan pada picker/rekomendasi transaksi.
- Pencarian produk via SKU/nama + daftar pilihan produk scrollable.
- Klik item pada list/panel rekomendasi menambah qty otomatis.
- Qty bisa diedit langsung di tabel keranjang.
- Metode pembayaran:
Tunai/QRIS. - Nomor invoice format:
INV/YY/MM/DD/xxxxx. - Tombol cetak invoice tersedia setelah checkout.
- Template cetak invoice dioptimalkan untuk printer thermal
80mm.
- Filter:
Harian(default),Semua,Per Tanggal,Per Bulan. - Ringkasan metrik:
- Jumlah Transaksi
- Total Penjualan
- Total Pembayaran
- Total Kembalian
- Total Tunai
- Total QRIS
- Aksi riwayat berbasis ikon.
- Tombol
Lihatuntuk melihat rincian item produk yang dibeli per transaksi. - Finalisasi transaksi (
Selesai) untuk lock edit user non-admin. - Admin tetap dapat edit transaksi final.
- Hapus riwayat khusus admin.
- Cetak invoice dari tabel riwayat.
- Export Excel sesuai filter aktif.
- KPI harian/mingguan/bulanan:
- Total Transaksi
- Total Pendapatan
- Total Produk Terjual
- KPI global:
- Total User
- Total Produk
- Total Produk Tersedia
- Total Produk Kosong
- Grafik pendapatan (kurva) dengan mode
Harian,Mingguan,Bulanan. - Default awal grafik pendapatan:
Mingguan. - Best seller list dengan filter periode
Harian/Mingguan/Bulanan/Tahunan. - Default awal filter best seller:
Mingguan. - Limit best seller:
5,10,20,50,100.
- Tab terpisah: Produk, Transaksi, Riwayat, Pengguna, Pengaturan, Dashboard (admin).
- Tab admin Audit Log untuk melihat jejak aktivitas user (login, CRUD, transaksi, pengaturan).
- Fitur Backup DB dan Restore DB langsung dari tab Pengaturan (admin).
- Dark mode / light mode switch.
- Fullscreen toggle.
- Konfirmasi hapus/finalisasi dengan modal.
- Tabel bersifat responsif: mengikuti jumlah data, lalu scroll internal saat mencapai batas tinggi layar.
- Admin:
ADMIN / 7890 - User:
kasir / 1234
- Electron
40.4.1 - better-sqlite3
- xlsx
pos-electron/
|-- main.js
|-- package.json
|-- src/
| |-- db.js
| |-- preload.js
| |-- renderer.js
| |-- renderer_modules/
| | |-- shared.js
| | |-- render.js
| | |-- services.js
| | `-- events.js
| |-- index.html
| `-- styles.css
`-- scripts/
|-- seed_restaurant_products.js
`-- reset_data_keep_users.js
cd C:\Users\Admin\Documents\Github\pos-electron
npm install
npm startPerintah standar:
npm run distJika PowerShell memblokir npm.ps1, gunakan:
cmd /c npm.cmd run distJika gagal terkait winCodeSign/symlink privilege, gunakan:
npx electron-builder --win nsis --config.win.signAndEditExecutable=falseOutput:
- Installer:
dist/POS-Kasir-Setup-1.0.0.exe - Portable unpacked:
dist/win-unpacked/POS Kasir.exe
- Format struk default: thermal
80mm. - Layout cetak dibuat compact (font kecil, margin minim) untuk kasir/restoran.
- Cetak dapat dilakukan dari:
- notifikasi hasil checkout,
- tombol print di tabel riwayat transaksi.
- Jika hasil cetak belum pas:
- Buka dialog print.
- Pilih printer thermal yang benar.
- Pastikan paper size di driver printer diset ke
80mm.
SQLite file:
%APPDATA%\pos-electron\pos.sqlite
Dilakukan dari tab Pengaturan Aplikasi (khusus admin).
- Buka tab
Pengaturan. - Klik tombol
Backup DB. - Pilih lokasi file backup (
.sqlite/.db), lalu simpan.
- Buka tab
Pengaturan. - Klik tombol
Restore DB. - Pilih file backup database.
- Konfirmasi restore.
- Aplikasi akan restart otomatis setelah restore selesai.
Catatan:
- Restore akan menimpa data database aktif.
- Disarankan lakukan backup sebelum restore.
Seed data produk restoran:
npx electron scripts/seed_restaurant_products.jsReset seluruh data transaksi/produk (user tetap):
npx electron scripts/reset_data_keep_users.js- Akses dashboard admin.
- Kelola produk (tambah/ubah/hapus, sesuai validasi relasi transaksi).
- Kelola transaksi (buat/ubah/finalisasi/hapus riwayat transaksi).
- Edit transaksi final (yang sudah
Selesai). - Kelola user (tambah/ubah/hapus, kecuali
id=1). - Akses tab Audit Log aktivitas user.
- Kelola pengaturan aplikasi (nama & deskripsi).
- Backup dan restore database dari UI Pengaturan.
- Cetak invoice dan export laporan Excel.
- Reset password admin ke default (
ADMIN/7890) via shortcut login.
- Akses tab Produk, Transaksi, dan Riwayat.
- Kelola produk (tambah/ubah/hapus) sesuai validasi data.
- Buat transaksi baru dan ubah transaksi yang belum final.
- Finalisasi transaksi (
Selesai) untuk mengunci transaksi. - Lihat riwayat transaksi sesuai filter yang tersedia.
- Cetak invoice dan export riwayat transaksi ke Excel.
- Tidak bisa menghapus riwayat transaksi.
- Tidak bisa mengelola user.
- Tidak bisa akses dashboard admin, audit log, dan pengaturan aplikasi.
- Tidak bisa backup/restore database.