A scalable and modular E-commerce backend built using Django, Django REST Framework (DRF), and PostgreSQL.
The system follows clean architecture principles with separate user and admin APIs, JWT authentication, pagination, business rule validations, and transaction-safe order processing.
- Python
- Django
- Django REST Framework (DRF)
- PostgreSQL
- JWT Authentication
- DRF Pagination
- Modular Django App Structure
- Separate
user_urlsandadmin_urls - RESTful API Design
- Role-based Access Control
- JWT-based Authentication
- Pagination for large datasets
- Transaction-safe Order Processing
- Business Rule Enforcement
- User Registration & Login
- JWT Authentication
- Role-based Authorization (User / Admin)
- Secure Password Handling
- Category CRUD Operations
- Category-based Product Filtering
- Admin Category Management
- Product CRUD Operations
- Product Listing, Search & Filtering
- Paginated Product Listings
- Category Association
- Admin Product Control
- Add / Remove Products
- Quantity Management
- Persistent Cart Handling
- Add / Remove Wishlist Items
- User-specific Wishlist Storage
- Users can add reviews only after order status is Delivered
- Rating System
- Review Validation
- Prevent duplicate reviews per user
- Payment Integration
- Secure Transaction Handling
- Order-linked Payment Processing
- Order Creation
- Order History
- Order Status Tracking:
- Pending
- Shipped
- Delivered
- Controlled Order Lifecycle Flow
- Transaction-based Order Processing
- Separate Admin APIs (
admin_views) - Revenue & Sales Analytics
- Active Users Monitoring
- Order Status Management (Pending → Shipped → Delivered)
- Business Rule Enforcement:
- Users with pending orders cannot be blocked
- Admin cannot block another Admin
- Role-based Access Control
- Dashboard Statistics APIs
- Total Revenue Calculation (Django ORM Aggregation)
- Order Statistics
- Active Users Tracking
- Product Performance Insights
The project uses modular URL configuration for scalability and maintainability.
/admin/→ Django Admin Panel/api/accounts/→ Authentication & Account Management
/api/products//api/cart//api/wishlist//api/orders//api/payments//api/reviews/
/api/admin/products//api/admin/orders//api/admin/dashboard/
Admin and User logic are separated using dedicated user_urls and admin_urls.
- PostgreSQL
- Optimized queries using Django ORM
- Aggregations for revenue calculation
- Transaction handling for safe order processing
- JWT Authentication
- Role-based Permissions
- Protected Admin Routes
- Secure Order Transactions
- Business Logic Validations
- Implemented using DRF Pagination
- Optimized large dataset responses
- Page-based API responses for products & orders
git clone https://github.com/sreenandpk/ecommerce-backend.git
cd ecommerce-backendpython -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activatepip install -r requirements.txtCreate a .env file and add:
SECRET_KEY=your_secret_key
DEBUG=True
DATABASE_NAME=your_db_name
DATABASE_USER=your_db_user
DATABASE_PASSWORD=your_db_password
DATABASE_HOST=localhost
DATABASE_PORT=54325️⃣ Run migrations
python manage.py makemigrations
python manage.py migrate6️⃣ Run server
python manage.py runserver👨💻 Author
Sreenand P K Full-Stack Developer Django | DRF | PostgreSQL | React | Redux