A comprehensive Django-based Point of Sale (POS) system with integrated e-commerce website functionality for managing sales, products, payments, suppliers, customers, and multi-level user management.
- Multi-role User Management: Site Admin, Shop Admin, and Cashier roles with granular permissions
- Shop Data Isolation: Each shop admin sees only their own products and sales, ensuring complete data privacy
- Product Management: Complete inventory control with categories, stock tracking, and barcode support
- Sales Processing: Real-time POS terminal with multiple payment methods (Cash, Card, Mobile Money, Bank Transfer, Credit)
- Customer Management: Customer database with credit limits and debt tracking
- Stock Management: Real-time stock tracking with reorder levels and movement history
- Financial Reporting: Comprehensive sales reports, revenue tracking, and profit analysis
- Debt Management: Customer credit system with payment tracking and overdue alerts
- Public Shop Frontend: Each shop gets its own public website with customizable themes
- Online Product Catalog: Display products with images, descriptions, and pricing
- Shopping Cart System: Full e-commerce cart functionality with AJAX operations
- Order Management: Complete order processing system with status tracking
- Checkout System: Secure checkout with customer information collection
- Shop Customization: Business details, logos, and theme selection
- Role-Based Access Control:
- Site Admin: Full system access, user management, registration approval, can view all shops
- Shop Admin: Shop management, product/supplier control, cashier management, sees only their own data
- Cashier: POS access, sales processing, limited dashboard access, sees only their own sales within their shop
- Registration System: Request-based registration with admin approval workflow
- Custom Authentication: Enhanced authentication backend with profile-based access control
- Business Profiles: Extended user profiles with business information
- Data Isolation: Complete separation of data between different shops - shop admins cannot see other shops' products or sales
- Product Categories: Hierarchical category system
- Stock Tracking: Real-time inventory with automatic stock updates on sales
- Stock Movements: Complete audit trail of all stock transactions
- Reorder Management: Automatic low-stock alerts with configurable reorder levels
- Product Images: Image upload and management for products
- Pricing Control: Cost price, selling price, and profit margin calculations
- Barcode Support: SKU and barcode tracking for products
- Multiple Payment Methods: Cash, Card, Mobile Money, Bank Transfer, Credit
- Invoice Generation: Automatic invoice numbering and receipt printing
- Tax & Discount Support: Tax calculation and discount application
- Debt Tracking: Customer credit management with payment schedules
- Revenue Analytics: Daily, weekly, and monthly revenue reports
- Profit Analysis: Real-time profit calculation on sales
- Sales History: Complete sales audit trail with detailed reporting
- Multi-Shop Support: Each shop admin gets their own customizable website
- Product Showcase: Featured products, categories, and search functionality
- Shopping Cart: Session-based cart with add/update/remove operations
- Order Processing: Complete order lifecycle from placement to completion
- Customer Orders: Order tracking and status updates
- Website Themes: Multiple theme options for shop customization
- Business Branding: Logo upload and business information display
core: Main Django project configuration and settingsusers: User authentication, profiles, and role-based access controlproducts: Product management, categories, and inventory trackingsales: POS terminal, sales processing, and financial reportingpayments: Payment processing and transaction managementsuppliers: Supplier relationship managementshop_website: E-commerce website functionality and online ordering
UserProfile: Extended user profiles with roles and business informationRegistrationRequest: User registration requests with approval workflow
Category: Product categorization systemProduct: Core product information with pricing, images, and shop assignmentStock: Real-time inventory tracking with reorder levelsStockMovement: Complete audit trail of stock transactions
Customer: Customer database with credit managementSale: Sales transactions with comprehensive payment tracking and shop assignmentSaleItem: Individual line items in sales transactionsDebt: Customer debt tracking with payment schedulesDebtPayment: Debt payment records and historyRevenue: Daily revenue aggregation and reporting
ShopProfile: Shop website configuration and brandingShopProduct: Products displayed on e-commerce websitesCart/CartItem: Shopping cart systemOrder/OrderItem: Online order management system
- Python 3.8+
- Django 6.0.1
- SQLite3 (included with Python)
-
Clone the Repository
git clone <repository-url> cd siblore_pos
-
Create Virtual Environment
python -m venv env # On Windows env\Scripts\activate # On Unix/MacOS source env/bin/activate
-
Install Dependencies
pip install django==6.0.1 pip install Pillow # For image handling -
Database Setup
python manage.py makemigrations python manage.py migrate
-
Create Superuser
python manage.py createsuperuser
-
Collect Static Files
python manage.py collectstatic
-
Start Development Server
python manage.py runserver
- Landing Page:
http://127.0.0.1:8000/ - Admin Panel:
http://127.0.0.1:8000/admin/ - Login:
http://127.0.0.1:8000/login/ - Registration Request:
http://127.0.0.1:8000/register/
- Site Admin Dashboard:
http://127.0.0.1:8000/site-admin/ - Shop Admin Dashboard:
http://127.0.0.1:8000/shop-admin/ - POS Terminal:
http://127.0.0.1:8000/sales/pos/
- Products:
http://127.0.0.1:8000/products/ - Sales History:
http://127.0.0.1:8000/sales/sales/ - Customers:
http://127.0.0.1:8000/sales/customers/ - Debts:
http://127.0.0.1:8000/sales/debts/ - Reports:
http://127.0.0.1:8000/sales/reports/
- Shop Home:
http://127.0.0.1:8000/shop/<username>/ - Shop Products:
http://127.0.0.1:8000/shop/<username>/products/ - Shopping Cart:
http://127.0.0.1:8000/shop/<username>/cart/ - Checkout:
http://127.0.0.1:8000/shop/<username>/checkout/
- Website Setup:
http://127.0.0.1:8000/shop/admin/setup/ - Manage Products:
http://127.0.0.1:8000/shop/admin/products/ - Manage Orders:
http://127.0.0.1:8000/shop/admin/orders/
- Default: SQLite database (
db.sqlite3) - Location: Project root directory
- Backup: Regular backups recommended for production
- Product Images:
/media/products/ - Shop Logos:
/media/shop_logos/ - Website Products:
/media/shop_products/
- CSS/JS:
/static/directory - Templates:
/templates/directory
- Full system access
- User management and approval
- View all shops and reports
- System configuration
- Registration request management
- Can access all products and sales across all shops
- Shop management and configuration
- Product and supplier management (own shop only)
- Cashier management
- Sales reports and analytics (own shop only)
- Debt and revenue tracking (own shop only)
- E-commerce website management
- Order processing
- Data Isolation: Can only see products and sales from their own shop
- POS terminal access (shop products only)
- Sales processing (within assigned shop)
- Customer management
- Limited dashboard access
- View own sales only (within their shop)
- Data Isolation: Can only see products from their assigned shop and their own sales
- Daily/Weekly/Monthly sales summaries
- Payment method breakdown
- Top-selling products
- Customer purchase history
- Profit analysis
- Stock levels and movements
- Low stock alerts
- Reorder recommendations
- Stock value analysis
- Revenue tracking
- Debt aging reports
- Payment method analysis
- Profit margins
- Role-based access control
- Custom authentication backend
- Profile-based user activation
- CSRF protection
- SQL injection prevention
- XSS protection
- Session security
- Mobile-friendly interface
- Bootstrap-based UI components
- Modern, clean design
- Intuitive navigation
- AJAX-powered cart operations
- Real-time stock updates
- Dynamic product search
- Interactive dashboard widgets
- Multiple theme options
- Business branding
- Logo upload
- Custom business information
- Product browsing and search
- Shopping cart functionality
- Secure checkout process
- Order tracking
- Each shop admin gets independent website
- Separate product catalogs with complete data isolation
- Independent order management
- Custom branding per shop
- Shop Data Privacy: Shop admins cannot access other shops' data
- Barcode scanning support
- Multiple payment gateways
- Email notifications
- Print receipts and invoices
- Complete data isolation between shops
- Role-based access control with shop-specific filtering
- Secure authentication and authorization
- Shop-specific product and sales visibility
- Use PostgreSQL/MySQL for production
- Configure proper static file serving
- Set up SSL certificates
- Configure email backend
- Implement backup strategies
- Database indexing
- Caching implementation
- Image optimization
- CDN integration
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PEP 8 Python style guidelines
- Write comprehensive tests
- Document new features
- Use meaningful commit messages
- Maintain backward compatibility
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Phone: +254111363870
- Email: esibitaremmanuel316@gmail.com
- Create an issue in the repository
- Check the documentation
- Review the admin panel for configuration options
- v1.0.0: Initial release with core POS functionality
- v1.1.0: Added e-commerce website integration
- v1.2.0: Enhanced reporting and analytics
- v1.3.0: Multi-shop support and customization
- v1.4.0: Shop data isolation and security enhancements
- Complete separation of products and sales between shops
- Shop admin access control improvements
- Enhanced security for multi-shop environments
Siblore POS System - Complete business management solution for modern retail operations.