A complete E-Commerce Web Application built with Django, implementing the entire shopping workflow from product browsing to order completion.
The project demonstrates how a real online store operates by combining authentication, shopping cart management, product variations, order processing, inventory control, reviews & ratings, email notifications, and a complete customer dashboard.
A detailed architecture document is available here:
π GreatCart System Architecture
- User Registration
- Email Verification
- Login / Logout
- Password Reset via Email
- Change Password
- Protected Views
- Categories
- Product Detail Page
- Product Variations
- Product Gallery
- Stock Availability
- Session Cart
- Logged-in User Cart
- Automatic Cart Merge
- Quantity Management
- Remove Products
- Product Variations Support
- Billing Information
- Tax Calculation
- Order Summary
A simplified Demo Wallet Payment Gateway was implemented to simulate real payment processing.
Features:
- Pending Orders
- Resume Payment
- Duplicate Payment Protection
- Transaction Recording
- Payment History
- Order Completion
- Order Creation
- Order Number Generation
- Move Cart β OrderProduct
- Copy Product Variations
- Stock Validation
- Stock Reduction
- Invoice Page
- Email Invoice
- Order History
Verified Purchase Reviews
Features:
- Only purchased products can be reviewed
- One review per customer
- Review editing
- 0β5 star rating
- Average rating calculation
- Live star widget
- Dashboard
- Order History
- Profile Settings
- Profile Picture Upload
- Password Change
- Account Information
- Account Activation Email
- Password Reset Email
- Order Confirmation Email
Backend
- Python
- Django
Frontend
- HTML5
- CSS3
- Bootstrap
- JavaScript
- jQuery
Database
- SQLite (Development)
Media
- Pillow
- SMTP (Gmail)
GreatCart/
β
βββ accounts/
βββ carts/
βββ category/
βββ orders/
βββ store/
β
βββ templates/
βββ static/
βββ media/
β
βββ greatCart/
βββ manage.py
βββ requirements.txt
βββ .env
git clone https://github.com/MohammedAMohsen/GreatCart.git
cd GreatCartpython -m venv venv
venv\Scripts\activatepython3 -m venv venv
source venv/bin/activatepip install -r requirements.txtCreate a file named
.env
Example:
SECRET_KEY=your-secret-key
EMAIL_USER=example@gmail.com
EMAIL_PASS=your-app-passwordpython manage.py migratepython manage.py createsuperuserpython manage.py runserverOpen:
http://127.0.0.1:8000
| Variable | Description |
|---|---|
| SECRET_KEY | Django Secret Key |
| EMAIL_USER | Email Address |
| EMAIL_PASS | Email App Password |
The project uses Django's SMTP backend.
For Gmail:
-
Enable Two-Factor Authentication.
-
Generate an App Password.
-
Put the generated password inside
EMAIL_PASS
β User Authentication
β Email Verification
β Password Reset
β Shopping Cart
β Cart Merge
β Product Variations
β Product Gallery
β Checkout
β Demo Payment Gateway
β Pending Orders
β Order Resume
β Inventory Management
β Order History
β Email Invoice
β Verified Reviews
β Ratings System
β User Dashboard
β Profile Settings
β Password Change
The current version is intentionally designed to remain simple while following good development practices.
Possible future improvements include:
- Real Payment Gateway (Stripe / PayPal)
- Wishlist
- Coupon System
- Product Search Enhancements
- Pagination Improvements
- Admin Analytics Dashboard
- REST API (Django REST Framework)
- Docker Support
- PostgreSQL Production Configuration
- Redis Cache
- Unit Testing
- Deployment (Nginx + Gunicorn)
This project demonstrates practical implementation of:
- Django Authentication
- Class-Based Views
- Function-Based Views
- Model Relationships
- Forms & Validation
- Sessions
- File Uploads
- Email Services
- ORM Queries
- Order Processing
- Inventory Management
- Template Inheritance
- Static & Media Files
- Secure User Workflows
This project is released under the MIT License.
Feel free to use it for learning, personal projects, or further development.
Developed as a complete Django E-Commerce learning project.
If you found this project useful, consider giving it a β on GitHub.







