Inventory β’ POS β’ Sales β’ Notifications
Django REST API + React UI
Nuru Stores is a modern inventory and sales management system designed for small to medium retail operations.
It combines a Django REST backend with a React frontend to deliver:
- Fast POS checkout
- Real-time inventory awareness
- Role-based dashboards (Owner vs Cashier)
- Receipts & invoices
- Actionable notifications
- Full system control
- Inventory & catalog management
- Stock operations & movements
- Business dashboard (inventory health, KPIs)
- Notifications & alerts
- Sales overview
- POS checkout
- Scan SKU / browse catalog
- View sales
- Print receipts & invoices
- Limited dashboard (personal performance + activity)
Owners are defined as
is_superuseror users withrole === "OWNER".
- JWT-based authentication
- Protected routes
- Role-based navigation & permissions
- Profile & password management
- Categories (nested support)
- Products
- SKU-based identification
- Price & stock tracking
- Cashier POS interface
- Create sales
- View sale details
- Generate Receipts and Invoices
- Supports multiple payment methods
- Inventory listing
- Stock operations (restock / supply)
- Stock movement history (IN / OUT)
- Low-stock & out-of-stock detection
- Inventory health overview
- Sale made alerts
- Low stock alerts
- Sale voided alerts
- Unread count polling
- Mark read / mark all read
- Navigate directly to related sale or product
- Key KPIs (Revenue, Sales Count, Avg Sale)
- Inventory Status
- In stock
- Low stock
- Out of stock
- Top products
- Recent stock movements
- Notifications preview
- Sales KPIs
- Payment Methods
- Recent sales
- Quick actions (POS, Catalog, Scan SKU)
- Python
- Django
- Django REST Framework
- JWT Authentication
- React
- React Router
- Tailwind CSS
- Modular API clients
nuru_store/
βββ catalog/
βββ inventory/
βββ notifications/
βββ sales/
βββ users/
βββ config/
βββ manage.py
βββ requirements.txt
βββ frontend/
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtRun migrations and create a superuser
python manage.py migrate
python manage.py createsuperuserStart a backend server
python manage.py runserver 8000Backend runs at
http://127.0.0.1:8000/cd frontend
npm install
npm run devFrontend runs at
http://localhost:3000/β Environment Variables
DEBUG=True
SECRET_KEY=your_django_secret_key
DB_NAME=database_name
DB_USER=database_user
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432
ALLOWED_HOSTS=127.0.0.1,localhost
/login
/register
/unauthorized/app/profile
/app/change-password
/app/notifications
/app/sales
/app/sales/:id
/app/sales/:id/receipt
/app/sales/:id/invoice/app/cashier
/app/cashier/pos
/app/cashier/catalog
/app/cashier/scan/app/owner
/app/owner/catalog/categories
/app/owner/catalog/products
/app/owner/inventory
/app/owner/inventory/ops
/app/owner/inventory/movements- Create a
screenshots/ directoryin the repository.
This project is licensed under the terms of the MIT License.





