This repository implements a full stack Ecommerce Management System built with Django and a custom admin panel. It supports:
- Catalog management (products, categories, images)
- Shopping cart, checkout, and order processing
- Customer accounts and authentication
- Admin dashboard for managing users, products, orders, and more
The project is organized as a Django multi-app project with a modular app structure.
- manage.py – Django command-line utility.
- db.sqlite3 – Default development database.
- mysite_management/ – Django project settings (settings.py, urls.py, wsgi/asgi).
- apps/ – Django apps grouped by feature domain (customers, orders, products, etc.).
- fronts/ – Frontend-facing apps (home, contact, etc.).
- static/ – Static assets (CSS, JS, images, vendor libs).
- templates/ – Global templates and shared layouts.
- media/ – Uploaded media (product images, user uploads).
- product/ – Product models, admin, API serializers, views, and product-related forms.
- orders/ – Order models, checkout flow, order tracking, and related serializers.
- customers/ – Customer profiles, customer-facing pages, and management logic.
- users/ – Authentication, registration, user forms, and user-related serializers.
- shipping_cart/ – Shopping cart management, cart models, and cart views.
- payment/ – Payment-related models and views (integration points).
- dashboard/ – Admin dashboard views and data aggregation for sales, orders, and users.
- login/ – Custom login flow and access control (likely used by the admin panel).
- fronts/home/ – Homepage and public landing pages.
- fronts/contact/ – Contact form and related pages.
-
Create and activate a virtual environment
python -m venv .venv .\.venv\Scripts\Activate.ps1 -
Install dependencies
pip install -r requirements.txt -
Run migrations
python manage.py migrate
-
Create a superuser
python manage.py createsuperuser
-
Run the development server
python manage.py runserver
-
Open in browser
- Website:
http://127.0.0.1:8000/ - Admin (if present):
http://127.0.0.1:8000/admin/or custom dashboard URL.
- Website:
- Database: default uses SQLite (
db.sqlite3). To switch to MySQL/PostgreSQL, updatemysite_management/settings.pywith the properDATABASESsettings. - Media files are served from
media/and static assets fromstatic/. - Templates are rendered from
templates/and per-apptemplates/folders.
Run unit tests for all apps:
python manage.py test- Create a new Django app with
python manage.py startapp <app_name>. - Register the app in
mysite_management/settings.pyunderINSTALLED_APPS. - Add URL configuration in the app, and include it in the project
urls.py.
- URL routing:
mysite_management/urls.py+ each app’surls.py - Views:
apps/*/views.pyandfronts/*/views.py - Models:
apps/*/models.py,fronts/*/models.py - Forms:
apps/*/forms.pyandfronts/*/forms.py
- This document is intended to provide a general orientation to the repository and help contributors get started quickly.
- Update this file as the project evolves (new apps, migrations, settings changes, etc.).