Welcome to BMS Point-of-Sale System
A modern, full-featured Point-of-Sale system designed for retail operations with advanced inventory tracking, sales management, and employee controls. Built with Electron.js and .NET 8, BMS POS combines the power of desktop applications with enterprise-grade backend infrastructure.Development Status: This project is currently under active development. Features and functionality may change as development progresses.
Key features
Fast installation
Get up and running in minutes with Node.js, .NET 8, and PostgreSQL
Quick start guide
Complete your first sale transaction in under 5 minutes
System architecture
Learn about the Electron + React + .NET + PostgreSQL stack
API reference
Explore 11+ REST API endpoints for integration
Core capabilities
Point-of-sale operations
- PIN-based authentication with role-based access control (Manager/Cashier/Inventory)
- Multi-item transactions with automatic tax calculation and change computation
- Multiple payment methods including Cash, Card, and Digital/EFT
- Receipt generation with customizable templates and auto-print options
- Barcode scanning for rapid product lookup
Inventory management
- Product catalog with full CRUD operations, pricing, and categories
- Batch tracking with lot numbers, expiration dates, and supplier information
- Stock adjustments with complete audit trails
- Inventory counts supporting full, cycle, spot, and annual count types
- Low stock alerts with configurable minimum thresholds
- Expiration monitoring with automatic status updates
Business intelligence
- Sales analytics with daily, weekly, and monthly summaries
- Top products reporting by quantity and revenue
- Payment analysis breakdown by payment method
- Tax reports for compliance and accounting
- Employee performance metrics and tracking
Administration
- Employee management with PIN reset and role assignment
- System configuration including date formats, auto-logout, and payment methods
- Tax settings with primary and secondary tax rate support
- Receipt customization with flexible templates and paper size options
- Audit logging capturing all user activities with timestamps
- Multi-display support for dual-monitor and touch-screen setups
Technology stack
Frontend
React 19 + TypeScript + Vite + Tailwind CSS + Electron 37
Backend
.NET 8 + Entity Framework Core 9 + ASP.NET Core
Database
PostgreSQL 13+ via Supabase with real-time capabilities
Security
BCrypt PIN hashing + Role-based access + SSL/TLS
Why BMS POS?
Separation of concerns - Clean architecture with distinct frontend, backend, and database layers Type safety - TypeScript on the frontend and C# on the backend eliminate entire classes of runtime errors Hot reload - Vite provides instant feedback during development with sub-second refresh times Structured logging - Serilog outputs JSON logs for easy analysis and monitoring Real-time updates - Supabase enables live data synchronization across multiple terminals Cross-platform - Electron enables Windows, macOS, and Linux support from a single codebase Offline-ready - Desktop application works without internet when API is hosted locallyDefault credentials
The system automatically creates a default manager account on first run:- Employee ID:
0001 - PIN:
1234 - Role: Manager
Next steps
Install dependencies
Follow the installation guide to set up Node.js, .NET 8, and PostgreSQL
Support and documentation
- API Documentation: Access Swagger UI at
/swaggerendpoint in development mode - Health Check: Monitor system status at
/healthendpoint - Logs: View structured logs in
logs/comprehensive-{date}.json - GitHub: Report issues and contribute at the project repository
Ready to get started? Head over to the installation guide to set up your development environment.