π A POS (Point of Sale) module for barcode control, product movement tracking, and stock correction in a retail store.
Explore the docs Β»
Usage
Β·
Report Bug
Β·
Request Feature
π Table of Contents
This repository hosts βCash Registerβ, a POS (Point of Sale) module designed for retail stores.
The project is part of a larger automated system for product accounting and warehouse management.
The system enables:
- scanning and validating product barcodes,
- registering sales, returns, and write-offs,
- real-time synchronization with warehouse stock,
- reporting and data export to external accounting systems (e.g., 1C).
It is built to minimize cashier errors, speed up operations, and ensure accurate inventory tracking.
-
π¦ Product Management
- To scan and validate barcodes via barcode scanner
- To track stock changes in real-time
- To synchronize with warehouse data
-
π΅ Sales Operations
- Sales, returns, and write-offs
- Automatic stock deduction per transaction
- Receipt printing and storage
-
π Reporting
- Daily / weekly / monthly movement reports
- Return and write-off reports
- Discrepancy reports between POS and warehouse
-
π Integration
- Export data to external systems (1C or other accounting software)
- REST API support for future integrations
-
π‘ Reliability
- Data validation for barcodes
- Auto-backup of database (at least once a day)
- Fail-safe recovery after power/network failures
-
π₯ User Interface
- Friendly and simple interface for cashiers
- Admin panel for stock correction and inventory checks
- C# + .NET 8.0.401 β core development platform
- Entity Framework Core β planned for database interaction
- SQL Server / PostgreSQL β planned database options
- Windows 10/11, Linux (Ubuntu, Debian) β supported platforms
- mise β developer workflow automation
Follow these steps to set up the project locally for development or testing.
You need:
- mise (configured for this repo)
- Git
- SQL database (SQL Server or PostgreSQL)
- Barcode scanner (for real hardware testing)
- Clone the repository:
git clone https://github.com/toptuk49/cash-register.git
cd cash-register- Install tools from
mise.toml:
mise install- Run the app (task
runfrom mise.toml):
mise run run- For hot reload during development:
mise run watch-run- Other useful tasks:
mise run build # build solution
mise run test # run tests
mise run format # format all files-
Cashier workflow: Scan product β Check receipt details β Confirm sale β Print receipt
-
Administrator workflow: Perform stock corrections, generate reports, and run inventory checks
Reports can be exported and integrated into 1C or other accounting systems.
-
Implement full reporting module (sales, returns, discrepancies)
-
Add inventory management module
-
Integrate with online fiscal registers
-
REST API for third-party integration
-
Docker container support for deployment
See the open issues for more.
Use conventional commits (feat:, fix:, docs:, etc.)
-
Fork the Project
-
Create your Feature Branch (git checkout -b feature/)
-
Commit your Changes (git commit -m 'feat: add ')
-
Push to the Branch (git push origin feature/)
-
Open a Pull Request
Distributed under the GNU General Public License. See LICENSE for details.
Anton Kuznetsov - GitHub
Artem Mikhayelyan - GitHub
Timofey Lozhkin - GitHub
Artyom Timoshkov - GitHub
Project Link: https://github.com/toptuk49/cash-register