A full-stack retail management platform built to streamline supermarket operations including inventory tracking, billing, employee management, analytics, and customer handling.
The system is designed for scalability and real-world retail workflows, providing role-based access, real-time inventory monitoring, sales reporting, and an integrated point-of-sale experience.
Managing a supermarket involves handling inventory, billing, staff operations, suppliers, and customer records simultaneously. This project centralizes those operations into a single platform with a modern frontend and secure backend architecture.
The application focuses on:
- Efficient inventory and sales management
- Secure authentication and role-based access
- Real-time operational visibility
- Scalable backend architecture
- Clean and responsive user experience
- JWT-based authentication
- Role-based access control (Admin, Manager, Cashier, Inventory Staff)
- Secure password hashing
- Session management and protected routes
- Real-time stock tracking
- Product categorization
- Low-stock alerts
- Batch and expiry management
- Supplier management
- Barcode and QR support
- Fast checkout workflow
- Multiple payment methods
- Discount and promotion handling
- Receipt generation
- Refund and return processing
- Transaction history
- Daily, weekly, and monthly sales reports
- Revenue and profit analysis
- Best-selling product tracking
- Inventory turnover insights
- Customer purchase analytics
- Export reports in CSV, Excel, and PDF formats
- Employee management
- Shift and scheduling support
- Notification system
- Interactive store layout visualization
- Product location tracking
- Loyalty program support
- Purchase history
- Digital receipts
- Feedback system
- React 18
- Vite
- React Router
- Tailwind CSS
- Axios
- Framer Motion
- Django
- Django REST Framework
- PyJWT
- Djongo
- MongoDB
- Git
- Docker (Optional)
Client (React + Tailwind)
β
βΌ
REST API Layer (Django REST Framework)
β
βΌ
Business Logic & Services
β
βΌ
MongoDB Database
The frontend communicates with the backend using REST APIs. Authentication is handled using JWT tokens, while MongoDB stores application data including users, products, sales records, and inventory information.
Make sure the following are installed on your system:
- Node.js (v18+)
- Python (v3.10+)
- MongoDB
- Git
git clone https://github.com/your-username/supermarket-management-system.git
cd supermarket-management-systemcd backend
python -m venv venvvenv\Scripts\activatesource venv/bin/activatepip install -r requirements.txtCreate a .env file inside the backend directory:
SECRET_KEY=your_secret_key
MONGO_URI=mongodb://localhost:27017/supermarket_db
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
CORS_ALLOWED_ORIGINS=http://localhost:5173python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py runserverBackend will run at:
http://127.0.0.1:8000
Open another terminal:
cd frontend
npm install
npm run devFrontend will run at:
http://localhost:5173
supermarket-management-system/
βββ backend/
β βββ api/
β βββ core/
β βββ manage.py
β βββ requirements.txt
β
βββ frontend/
β βββ public/
β βββ src/
β β βββ api/
β β βββ components/
β β βββ context/
β β βββ hooks/
β β βββ pages/
β β βββ utils/
β β
β βββ package.json
β βββ vite.config.js
β
βββ docs/
βββ README.md
βββ LICENSE
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register/ |
Register user |
| POST | /api/auth/login/ |
Login user |
| POST | /api/auth/logout/ |
Logout user |
| GET | /api/auth/user/ |
Current authenticated user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/products/ |
Get all products |
| POST | /api/products/ |
Add product |
| GET | /api/products/{id}/ |
Product details |
| PUT | /api/products/{id}/ |
Update product |
| DELETE | /api/products/{id}/ |
Delete product |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/sales/ |
Get sales |
| POST | /api/sales/ |
Create sale |
| GET | /api/sales/{id}/ |
Sale details |
| GET | /api/sales/reports/ |
Sales reports |
Contributions are welcome.
To contribute:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push the branch
- Open a pull request
Please ensure:
- Code follows the existing project structure
- Commit messages are meaningful
- New features include proper testing
- Documentation is updated when necessary
Because eventually every project becomes βtemporary codeβ running something important. Modern civilization is held together by APIs and developers pretending the production server is fine.
| Name | Role |
|---|---|
| Amit Kumar | Backend Development |
| Rohit Pratap Singh | Frontend Development |
| Ch. Bhargav | Database Management |
| Bhaskar Akshay Sriram | Frontend Development |
This project is licensed under the MIT License.
For issues, bug reports, or feature requests:
- Open an issue on GitHub
- Review the documentation
- Contact the development team
- Open-source contributors and libraries
- React, Django, and MongoDB communities
- Developers who debug production issues at 2 AM while claiming everything is βstableβ
If you found this project useful, consider giving it a star on GitHub.
Tiny digital approval badges. The closest thing developers get to emotional compensation.