Aplikasi Point of Sale (POS) berbasis desktop untuk Maron Cafe.
- Kategori Menu: Kopi, Makanan Ringan, Non-Kopi
- Tampilan Grid: Menu ditampilkan dalam bentuk card yang menarik
- Filter Kategori: Mudah beralih antar kategori menu
- Data Menu Lengkap: Nama, harga, deskripsi, dan status ketersediaan
- Keranjang Belanja: Tambah, edit kuantitas, dan hapus item
- Informasi Pelanggan: Input nama pelanggan (opsional)
- Perhitungan Otomatis: Subtotal, pajak (10%), dan total
- Metode Pembayaran: Cash, Credit Card, Debit Card, E-Wallet
- Generate PDF: Struk otomatis dalam format PDF menggunakan ReportLab
- Design Professional: Header cafe, detail transaksi, dan total
- Auto Save: Struk tersimpan di folder
receipts
- Print Ready: Format siap cetak dengan layout yang rapi
- Laporan Harian: Ringkasan penjualan per hari
- Riwayat Transaksi: Daftar semua transaksi dengan filter tanggal
- Item Terpopuler: Analisis produk yang paling laris
- Export PDF: Laporan dapat diekspor ke PDF
- Dashboard Analytics: Statistik penjualan yang informatif
- Modern Design: Antarmuka yang bersih dan profesional
- Responsive Layout: Menyesuaikan berbagai ukuran layar
- Color Scheme: Palet warna yang eye-friendly
- Hover Effects: Interaksi yang smooth dan responsif
- Typography: Font yang mudah dibaca
- Bahasa: Python 3.8+
- GUI Framework: PySide6 (Qt for Python)
- Database: SQLite3
- PDF Generation: ReportLab
- Packaging: PyInstaller
id
: Primary keyname
: Nama kategori (Kopi, Makanan Ringan, Non-Kopi)created_at
: Timestamp
id
: Primary keyname
: Nama menuprice
: Hargacategory_id
: Foreign key ke categoriesdescription
: Deskripsi menuis_available
: Status ketersediaancreated_at
: Timestamp
id
: Primary keytransaction_date
: Tanggal transaksitotal_amount
: Total sebelum pajaktax_amount
: Jumlah pajakdiscount_amount
: Diskon (future feature)final_amount
: Total akhirpayment_method
: Metode pembayarancustomer_name
: Nama pelanggancashier_name
: Nama kasir
id
: Primary keytransaction_id
: Foreign key ke transactionsmenu_item_id
: Foreign key ke menu_itemsquantity
: Jumlahunit_price
: Harga satuantotal_price
: Total harga itemnotes
: Catatan khusus
# Jika menggunakan git
git clone <repository-url>
cd cafe-pos-system
# Atau download dan extract file ZIP
pip install -r requirements.txt
python main.py
python build.py
Executable akan tersedia di folder dist/CafePOS.exe
cafe-pos-system/
βββ main.py # Entry point aplikasi
βββ main_window.py # Main window dan UI utama
βββ database.py # Database operations dan CRUD
βββ receipt_printer.py # PDF receipt generator
βββ reports_window.py # Window laporan dan analytics
βββ requirements.txt # Python dependencies
βββ build.py # Build script untuk PyInstaller
βββ cafe_pos.spec # PyInstaller configuration
βββ README.md # Dokumentasi
βββ receipts/ # Folder output struk PDF
βββ cafe_pos.db # SQLite database (auto-generated)
- Aplikasi sudah dilengkapi dengan sample data menu
- Menu terbagi dalam 3 kategori utama
- Klik tombol kategori untuk filter menu
- Klik "Tambah ke Keranjang" untuk menambah item
- Pilih Menu: Browse dan pilih menu dari kategori yang tersedia
- Review Keranjang: Cek item, quantity, dan total
- Input Data: Masukkan nama pelanggan (opsional)
- Pilih Pembayaran: Tentukan metode pembayaran
- Checkout: Klik tombol checkout untuk finalisasi
- Struk Otomatis: Sistem akan generate dan simpan struk PDF
- Akses melalui tombol "Laporan" di panel kanan
- Tab Harian: Lihat performa penjualan hari ini
- Tab Riwayat: Browse transaksi dengan filter tanggal
- Tab Popular: Analisis produk terlaris
- Export laporan ke PDF dengan satu klik
Edit file database.py
di fungsi insert_initial_data()
:
# Tambah menu baru
('Nama Menu Baru', harga, category_id, 'Deskripsi'),
Edit di main_window.py
:
tax = subtotal * 0.12 # Ganti 0.12 (12%) dengan persentase yang diinginkan
Semua styling CSS ada di main_window.py
dalam method setStyleSheet()
. Anda bisa memodifikasi:
- Warna tema
- Font size
- Border radius
- Hover effects
- Dan lainnya
python build.py
Hasil: dist/CafePOS.exe
(single file executable)
python build.py
Hasil: dist/CafePOS
(executable file)
- Pastikan semua dependencies sudah terinstall
- Build di environment yang sama dengan target deployment
- Test executable di komputer lain untuk memastikan tidak ada dependency yang terlewat
- Database akan otomatis terbuat saat pertama kali run
- Jika ada error, hapus file
cafe_pos.db
dan restart aplikasi - Sample data akan auto-populate saat database pertama dibuat
- Pastikan folder
receipts
memiliki permission write - Jika error font, pastikan system fonts tersedia
- ReportLab membutuhkan write permission untuk temporary files
# Clean build files
python build.py clean
# Upgrade build tools
pip install --upgrade pip setuptools wheel pyinstaller
# Build ulang
python build.py
Jika ada error DLL saat run executable:
- Install Visual C++ Redistributable
- Atau build dengan flag
--onefile --windowed
Untuk berkontribusi pada project ini:
- Fork repository
- Buat feature branch (
git checkout -b feature/AmazingFeature
) - Commit changes (
git commit -m 'Add some AmazingFeature'
) - Push to branch (
git push origin feature/AmazingFeature
) - Open Pull Request
Project ini menggunakan lisensi MIT. Lihat file LICENSE
untuk detail lengkap.
Jika mengalami masalah atau membutuhkan bantuan:
- Cek bagian Troubleshooting di atas
- Buka issue di repository GitHub
- Sertakan informasi:
- OS dan versi Python
- Error message lengkap
- Steps to reproduce
Fitur yang bisa dikembangkan:
- User authentication dan multi-user
- Inventory management
- Customer loyalty program
- Integration dengan payment gateway
- Barcode scanner support
- Multi-language support
- Cloud backup database
- Real-time dashboard
- Mobile app companion
Dibuat dengan β€οΈ menggunakan Python dan PySide6