A RESTful API designed to efficiently track and manage inventory data in real time. Built with Django Rest Framework, the system supports CRUD operations, low-stock alerting, and role-based access for inventory managers and stock controllers. This project demonstrates best practices in backend development, including authentication, optimized querying, and scalable API design.
- π§Ύ Product Management β Create, read, update, and delete inventory items.
- π Low-Stock Alerts β Automatic alerts when item stock falls below minimum threshold.
- π Role-Based Access β Assign roles with specific permissions (Admin, Manager, Controller).
- π Real-time Stock Monitoring β Up-to-date overview of stock levels.
- π API-First Design β Built for frontend integration and automation.
- Python 3.12
- Django 5+
- Django REST Framework
- SQLite
- JWT Authentication
inventory_system/
βββ inventory/ # App for managing inventory operations
βββ users/ # App for user roles and authentication
βββ core/ # Settings, configuration, and base utilities
βββ tests/ # Automated tests for all endpoints and logic
βββ requirements.txt # Dependencies
βββ manage.py # Django entry point
βββ README.md
This project uses JWT (JSON Web Tokens) for secure authentication. Users must log in and receive a token to access protected routes.
- Admin: Full access
- Manager: CRUD on items, view alerts
- Controller: View only
# Get Token
POST /api/token/
# Example Header
Authorization: Bearer <your_token_here>| Method | Endpoint | Description |
|---|---|---|
| GET | /api/products/ | List all products |
| POST | /api/products/ | Add a new product |
| GET | /api/products// | Retrieve product by ID |
| PUT | /api/products// | Update product |
| DELETE | /api/products// | Delete product |
| GET | /api/alerts/ | Get low-stock alerts |
- Python 3.11+
- PostgreSQL
- pip
git clone https://github.com/Akins-Coded/inventory-management-api.git
cd inventory-management-api
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver- β Admin dashboard (React/Next.js frontend)
- π¦ Stock batch upload via CSV
- π οΈ Webhook for auto-restocking
- π Analytics & Reporting module
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
Akindipe Muheez Omogbolahan
π§ Email: [email protected]
π Linktree
π LinkedIn
π» GitHub
This project is part of my Backend Engineering portfolio. Built with precision, security, and scalability in mind.