Skip to content
MohammedAMohsenPublic

About

A full-featured e-commerce web application built with Django, following industry best practices and developed step by step as a learning and production-ready project.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›’ GreatCart

Python Django Bootstrap SQLite License

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.


πŸ“Έ Screenshots

🏠 Home

Home


πŸ› Store

Store


πŸ“¦ Product Details

Product Details


πŸ›’ Shopping Cart

Cart


πŸ’³ Checkout & Payment

Checkout


πŸ‘€ User Dashboard

Dashboard


πŸ“„ Order History

Orders


βš™ Profile Settings

Profile


πŸ— System Architecture

A detailed architecture document is available here:

πŸ“„ GreatCart System Architecture


✨ Features

Authentication

  • User Registration
  • Email Verification
  • Login / Logout
  • Password Reset via Email
  • Change Password
  • Protected Views

Products

  • Categories
  • Product Detail Page
  • Product Variations
  • Product Gallery
  • Stock Availability

Shopping Cart

  • Session Cart
  • Logged-in User Cart
  • Automatic Cart Merge
  • Quantity Management
  • Remove Products
  • Product Variations Support

Checkout

  • Billing Information
  • Tax Calculation
  • Order Summary

Payment System

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

Orders

  • Order Creation
  • Order Number Generation
  • Move Cart β†’ OrderProduct
  • Copy Product Variations
  • Stock Validation
  • Stock Reduction
  • Invoice Page
  • Email Invoice
  • Order History

Reviews & Ratings

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

User Dashboard

  • Dashboard
  • Order History
  • Profile Settings
  • Profile Picture Upload
  • Password Change
  • Account Information

Email Notifications

  • Account Activation Email
  • Password Reset Email
  • Order Confirmation Email

πŸ›  Tech Stack

Backend

  • Python
  • Django

Frontend

  • HTML5
  • CSS3
  • Bootstrap
  • JavaScript
  • jQuery

Database

  • SQLite (Development)

Media

  • Pillow

Email

  • SMTP (Gmail)

πŸ“‚ Project Structure

GreatCart/

β”‚
β”œβ”€β”€ accounts/
β”œβ”€β”€ carts/
β”œβ”€β”€ category/
β”œβ”€β”€ orders/
β”œβ”€β”€ store/
β”‚
β”œβ”€β”€ templates/
β”œβ”€β”€ static/
β”œβ”€β”€ media/
β”‚
β”œβ”€β”€ greatCart/
β”œβ”€β”€ manage.py
β”œβ”€β”€ requirements.txt
└── .env

βš™ Installation

1. Clone Repository

git clone https://github.com/MohammedAMohsen/GreatCart.git

cd GreatCart

2. Create Virtual Environment

Windows

python -m venv venv

venv\Scripts\activate

Linux / macOS

python3 -m venv venv

source venv/bin/activate

3. Install Requirements

pip install -r requirements.txt

4. Create Environment File

Create a file named

.env

Example:

SECRET_KEY=your-secret-key 

EMAIL_USER=example@gmail.com

EMAIL_PASS=your-app-password

5. Apply Migrations

python manage.py migrate

6. Create Superuser

python manage.py createsuperuser

7. Run Development Server

python manage.py runserver

Open:

http://127.0.0.1:8000

πŸ” Environment Variables

Variable Description
SECRET_KEY Django Secret Key
EMAIL_USER Email Address
EMAIL_PASS Email App Password

πŸ“§ Email Configuration

The project uses Django's SMTP backend.

For Gmail:

  1. Enable Two-Factor Authentication.

  2. Generate an App Password.

  3. Put the generated password inside

EMAIL_PASS

⭐ Main Functionalities

βœ” 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


πŸš€ Future Improvements

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)

🎯 Learning Objectives

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

πŸ“„ License

This project is released under the MIT License.

Feel free to use it for learning, personal projects, or further development.


πŸ‘¨β€πŸ’» Author

Developed as a complete Django E-Commerce learning project.

If you found this project useful, consider giving it a ⭐ on GitHub.

About

A full-featured e-commerce web application built with Django, following industry best practices and developed step by step as a learning and production-ready project.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages