Point of Sale (POS) System
Desktop AppIn Development
A production-ready Point of Sale system designed for retail businesses, built as a cross-platform desktop application. The system supports multi-user environments with three distinct roles (Admin, Cashier, Seller) and implements a multi-tenant architecture where sellers can manage multiple client businesses, each with independent configurations, currencies, and feature access. Features include a full POS interface with barcode scanning, shift management with cash reconciliation, real-time analytics dashboard, inventory management with bulk import/export, a customer loyalty system with tier progression, and a printing system supporting ESC/POS thermal receipts, PDF generation, and a visual drag-and-drop barcode label layout editor.
Key Features
- POS interface with product browsing, cart management, barcode scanner auto-detection, discounts, held orders, and refunds
- Shift management with opening/closing cash reconciliation and discrepancy tracking
- Real-time admin dashboard with interactive charts (sales trends, hourly performance, payment breakdown, top products)
- Inventory management with product CRUD, barcode generation, stock tracking, and bulk import/export
- Customer & loyalty system with purchase history, loyalty points, and tier progression (Member/Bronze/Silver/Gold)
- Role-based access control with fine-grained dot-notation sub-permissions and guard widgets
- Multi-tenant architecture for sellers managing multiple client accounts with per-client feature restrictions
- ESC/POS thermal receipt printing, PDF receipts, and visual drag-and-drop barcode label layout editor
- Sales and shift reports with date filtering, exportable to CSV and Excel formats
- 150+ selectable category icons with custom color support and light/dark/system theme
Tech Stack
Technical Details
Built with Flutter (Dart) targeting desktop platforms (Windows, Linux, macOS). SQLite database with an incremental schema migration system spanning 18 versions with backward compatibility. Architecture follows a Singleton services and Model-View pattern with guard widgets for permission enforcement. fl_chart powers interactive data visualizations. Printing uses pdf and printing packages for receipt and label generation with ESC/POS command generation including bitmap conversion for thermal printers. Export functionality supports CSV and Excel file generation with multi-sheet workbooks. Adaptive color system ensures consistency across light and dark modes.
Challenges & Solutions
Implementing barcode scanner auto-detection required input timing analysis with a 50ms threshold to distinguish scanner input from keyboard typing — scanners send characters in rapid bursts while humans type much slower. Building the incremental database migration system across 18 schema versions demanded careful handling of backward compatibility and data preservation during upgrades. The visual drag-and-drop label layout editor needed precise coordinate mapping between the on-screen editor and the actual thermal printer output resolution. Generating ESC/POS commands with bitmap conversion for thermal printers involved low-level binary protocol work to ensure consistent output across different printer models.
Role
Full Stack Developer
Duration
Ongoing
Status
In Development