Lightweight POS & Inventory Desktop
Budget / Salary$250–750
TypeFreelance project
LocationRemote
Posted2 hours ago
I want to give small shop owners the power of an ERP without the bulk, so I’m commissioning a Windows-only desktop application written in Python. The goal is a fast, dependable point-of-sale and inventory tool that runs locally, keeps data safe in a single-file database, and is easy enough for a cashier to learn in minutes yet rich enough for an owner to judge profitability at a glance.
Core workflow
• Stock records must be searchable, filterable, and archivable so old invoices never crash when items are discontinued.
• Each sale produces a printable invoice; the moment I click “Save”, the invoice, payment, and stock deduction have to finish inside one database transaction—no risk of partial writes.
• Purchases should raise quantity using a weighted-average cost so margin reports stay realistic.
• Low-stock warnings need to surface in three places: a dashboard widget, a small badge in the navigation bar, and a reorder report grouped by supplier.
• Built-in analytics must show revenue, gross profit, top-selling products, and sales broken down by cashier.
• CSV exports have to be sanitised against formula injection for safe spreadsheet sharing.
• Role-based security is mandatory: Owner, Manager, and Cashier permissions enforced server-side, not just hidden in the UI.
Tech preferences
Python is the language; feel free to propose PySide, PyQt, Kivy, or another mature GUI toolkit that looks native on Windows. I’m leaning toward SQLite for the local store, but I’m open to PostgreSQL if you can bundle it painlessly. The print function should output both directly to a printer and to PDF.
Deliverables
– Windows installer and portable build
– Well-commented Python source code with a short README for setup
– Database schema script and sample data
– Unit or integration tests covering the critical transaction paths
– A quick video demo showing the main flows working end-to-end
Acceptance criteria
1. No transaction may leave stock counts inconsistent, even if the program is forcibly closed mid-process.
2. Reports must match hand-checked figures on supplied sample data.
3. Role checks are verified by attempting disallowed actions from each account type.
If you have prior experience building POS or inventory systems in Python, let’s talk timelines and milestones; I’d like to ship an MVP in six weeks and iterate from there.
Core workflow
• Stock records must be searchable, filterable, and archivable so old invoices never crash when items are discontinued.
• Each sale produces a printable invoice; the moment I click “Save”, the invoice, payment, and stock deduction have to finish inside one database transaction—no risk of partial writes.
• Purchases should raise quantity using a weighted-average cost so margin reports stay realistic.
• Low-stock warnings need to surface in three places: a dashboard widget, a small badge in the navigation bar, and a reorder report grouped by supplier.
• Built-in analytics must show revenue, gross profit, top-selling products, and sales broken down by cashier.
• CSV exports have to be sanitised against formula injection for safe spreadsheet sharing.
• Role-based security is mandatory: Owner, Manager, and Cashier permissions enforced server-side, not just hidden in the UI.
Tech preferences
Python is the language; feel free to propose PySide, PyQt, Kivy, or another mature GUI toolkit that looks native on Windows. I’m leaning toward SQLite for the local store, but I’m open to PostgreSQL if you can bundle it painlessly. The print function should output both directly to a printer and to PDF.
Deliverables
– Windows installer and portable build
– Well-commented Python source code with a short README for setup
– Database schema script and sample data
– Unit or integration tests covering the critical transaction paths
– A quick video demo showing the main flows working end-to-end
Acceptance criteria
1. No transaction may leave stock counts inconsistent, even if the program is forcibly closed mid-process.
2. Reports must match hand-checked figures on supplied sample data.
3. Role checks are verified by attempting disallowed actions from each account type.
If you have prior experience building POS or inventory systems in Python, let’s talk timelines and milestones; I’d like to ship an MVP in six weeks and iterate from there.
Apply on Freelancer →
Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.