A modern, customizable inventory and point of sale management system built with Django and Tailwind CSS. This application is designed to be easily customizable for different clients and business needs.
- Product Management: Add, edit, delete products with images, pricing, and stock tracking
- Category Management: Organize products into categories
- Supplier Management: Track suppliers and their contact information
- Stock Tracking: Real-time stock levels with low stock alerts
- Stock Movements: Track all stock in/out movements with reasons and references
- Barcode Support: SKU and barcode management for products
- Modern POS Interface: User-friendly checkout system
- Shopping Cart: Add/remove products with quantity adjustments
- Customer Management: Track customer information and purchase history
- Multiple Payment Methods: Cash, Card, Check, Mobile payments
- Receipt Generation: Printable receipts with company branding
- Sales Tracking: Complete sales history and reporting
- Refund Management: Handle returns and refunds
- Role-Based Access Control: Admin, Manager, Cashier, Inventory Manager roles
- User Profiles: Staff management with photos and details
- Authentication: Secure login/logout system
- Permission System: Different access levels for different user roles
- Dashboard: Overview of key metrics and alerts
- Sales Reports: Daily, monthly, and custom date range reports
- Stock Reports: Inventory valuation and stock movement reports
- Low Stock Alerts: Automatic notifications for low inventory
- Cashier Reports: Individual staff performance tracking
- Company Settings: Easily customize company name, logo, colors
- Tax Configuration: Configurable tax rates
- Currency Settings: Customizable currency symbols
- Receipt Customization: Custom footer text for receipts
- Theme Colors: Customizable primary and secondary colors
- Backend: Django 5.2.6 (Python)
- Frontend: Tailwind CSS (via CDN)
- Database: SQLite (default, easily changeable to PostgreSQL/MySQL)
- Authentication: Django built-in authentication system
- Icons: Font Awesome 6
- Image Processing: Pillow for product images
- Python 3.8 or higher
- Virtual environment (recommended)
-
Clone or Download the Project
cd INVENTORY_POS_APP -
Create and Activate Virtual Environment
python -m venv env # On Windows env\Scripts\activate # On macOS/Linux source env/bin/activate
-
Install Dependencies
pip install django pillow python-decouple
-
Configure Environment Variables Create a
.envfile in the root directory:DEBUG=True SECRET_KEY=your-secret-key-here COMPANY_NAME=Your Company Name PRIMARY_COLOR=blue SECONDARY_COLOR=gray
-
Run Database Migrations
python manage.py migrate
-
Create Superuser
python manage.py createsuperuser
-
Start Development Server
python manage.py runserver
-
Access the Application
- Main Application: http://127.0.0.1:8000/
- Admin Panel: http://127.0.0.1:8000/admin/
After creating a superuser, you can log in with those credentials. The system will automatically create a user profile with admin permissions.
INVENTORY_POS_APP/
βββ inventory_pos/ # Main project settings
βββ inventory/ # Inventory management app
βββ pos/ # Point of sale app
βββ accounts/ # User management app
βββ templates/ # HTML templates
β βββ base/ # Base templates
β βββ inventory/ # Inventory templates
β βββ pos/ # POS templates
β βββ accounts/ # Account templates
βββ static/ # Static files (CSS, JS, images)
βββ media/ # User uploaded files
βββ env/ # Virtual environment
βββ manage.py # Django management script
- Category: Product categories
- Supplier: Supplier information
- Product: Main product model with pricing and stock
- Customer: Customer information
- StockMovement: Track all stock changes
- Sale: Sales transactions
- SaleItem: Individual items in a sale
- Cart: Temporary shopping cart
- PaymentRecord: Payment tracking
- Refund: Return/refund management
- UserProfile: Extended user information
- CompanySettings: Customizable company settings
This system is designed to be easily customizable for different clients:
- Update company name, logo, and colors in the admin panel
- Customize receipt templates
- Modify color themes
- Add custom fields to models
- Modify pricing structures
- Add custom reports
- Integrate with external systems
- Modify templates for client-specific layouts
- Add custom CSS for unique styling
- Customize navigation and workflow
- Add loyalty programs
- Integrate with accounting software
- Add advanced reporting
- Implement multi-location support
Access the admin panel at /admin/ to:
- Manage all products, categories, and suppliers
- View and process sales transactions
- Manage user accounts and permissions
- Configure company settings
- Generate reports and analytics
- Handle refunds and returns
The system includes AJAX endpoints for:
- Product search in POS
- Customer search
- Cart management
- Real-time updates
- Role-based access control
- CSRF protection
- SQL injection protection (Django ORM)
- XSS protection
- Secure password handling
- Session management
For production deployment:
- Set
DEBUG=Falsein environment variables - Configure a production database (PostgreSQL recommended)
- Set up proper static file serving
- Use a production WSGI server (Gunicorn, uWSGI)
- Configure HTTPS
- Set up proper backup procedures
This application is designed to be a foundation that can be customized for specific client needs. Common customizations include:
- Custom reporting requirements
- Integration with existing systems
- Specific workflow modifications
- Additional features and modules
- Custom branding and themes
This project is created as a customizable base for client projects. Modify and adapt as needed for your specific requirements.
This is a base template for client projects. Feel free to extend and modify according to your business needs.
Built with β€οΈ using Django and Tailwind CSS