Developed and Maintained by Zaeni Ahmad (maszaen)
Catatan: Aplikasi ini telah dikompilasi menjadi file executable (.exe) menggunakan Nuitka dan dibuat installer menggunakan Inno Setup. Untuk mencoba aplikasi ini, Kamu bisa:
- Download installer PyStockFlow terbaru Disini.
- Atau clone repository ini dan jalankan aplikasi dari source code (link dokumentasi akan segera dibuat)
Untuk melihat flowchart lengkap dari aplikasi ini, bisa klik Disini untuk mendownload file flowchart.
PyStockFlow adalah aplikasi open-source untuk manajemen inventaris dan penjualan yang menggunakan bahasa pemrograman Python, PySide6 untuk GUI, serta MongoDB Atlas sebagai database cloud. Aplikasi ini dirancang untuk membantu bisnis kecil dan menengah dalam mengelola produk, transaksi penjualan, dan laporan secara efisien. Dengan sistem yang mudah digunakan dan fitur multi-user, PyStockFlow memberikan solusi manajemen yang lebih baik dan dapat diakses secara real-time.
- PyQt (pyside6) GUI
- MongoDB Atlas
- Native Python
- Multi-user sistem dengan login dan registrasi
- Manajemen produk (tambah, edit, hapus)
- Pencatatan transaksi penjualan
- Pencarian produk dan transaksi
- Laporan summary berdasarkan periode
- Cloud database dengan MongoDB Atlas
- Python v3.8 keatas
- Akun MongoDB Atlas
- Koneksi Internet (untuk akses database)
- Clone repository:
git clone https://github.com/maszaen/inventory-system.git
cd inventory-system- Install dependensi:
pip install -r requirements.txt├── logs/
├── assets/
└── src/
├── database/
├── models/
├── ui/
│ ├── dialogs/
│ ├── models/
│ └── tabs/
└── utils/
- Jalankan aplikasi:
python -m src.main-
Setup MongoDB:
- Buat akun di MongoDB Atlas
- Buat cluster baru
- Buat database baru, dengan collection pertama users, lalu klik create database
- Ke tab Cluster, klik Connect pada cluster, lalu pilih drivers, lalu Copy koneksi string
- Whitelist IP address, Cara Whitelist IP
- Jika koneksi string sudah ada, bisa masukkan ke setup database aplikasi pada window awal, lalu pilih database
- Jika belum paham, bisa cek dokumentasi langsung dari mongodb untuk setup database Klik disini
- atau bisa gunakan database yg kami sediakan, Klik disini
-
Login/Register:
- Login dengan akun yang sudah ada, atau
- Klik "Register" untuk membuat akun baru
-
Manajemen Produk:
- Klik tab "Products"
- Gunakan tombol "Add Product" untuk menambah produk
- Klik "Edit" atau "Delete" untuk memodifikasi produk
- Gunakan search box untuk mencari produk
-
Transaksi Penjualan:
- Klik tab "Sales"
- Klik "Add Sale" untuk transaksi baru
- Pilih produk dan masukkan jumlah
- Stok akan otomatis terupdate
-
Melihat Summary:
- Klik tab "Summary"
- Pilih range tanggal
- Klik "Generate Summary"
-
Cloud (MongoDB):
- Data produk
- Data transaksi
- Data pengguna
-
Lokal:
- File log (logs/inventory_YYYYMMDD.log)
- Aktivitas sistem
Masalah biasanya pada koneksi database, coba lakukan cara berikut ini:
- Pastikan internet aktif
- Pastikan connection string benar
- Cek IP di MongoDB apakah sudah di-whitelist
Jika koneksi masih gagal, coba tambahkan nama database default setelah cluster url, contoh:
Sebelum:
mongodb+srv://<db_username>:<db_password>@<cluster-url>/?retryWrites=true&w=majority&appName=<appName>
Sesudah:
mongodb+srv://<db_username>:<db_password>@<cluster-url>/<db_name>?retryWrites=true&w=majority&appName=<appName>-
Cloud Integration:
- Migrasi ke MongoDB
- Multi-user support
- Real-time data sync
-
Authentication:
- Sistem login
- User registration
- Password hashing dengan bcrypt
-
UI Improvements:
- Migrasi dari Tkinter ke PyQt6 / PySide6
- UI lebih fleksibel dan mudah didesain atau dimaintenance
- Improved search
- Better error handling
- Auto-refresh data
-
Database Setup:
- Fungsi setup database saat pertama kali aplikasi dijalankan
- Trigger setup database hanya jika file .env belum ada, artinya jika sudah setup, tidak perlu setup lagi
-
Menu Tambahan:
- Reset password
- Reset connection string
- Change database
- Change connection string
- Refresh summary
Untuk berkontribusi:
- Fork repository
- Buat branch baru
- Commit perubahan
- Push ke branch
- Buat Pull Request
Untuk saran dan pertanyaan bisa melalui:
- Email: zaeni@students.amikom.ac.id
- GitHub Issues: Go to repository issues