Django e-commerce website for a Ghana-based phone store
# Max's Hub — Django E-Commerce Website
A full-stack smartphone e-commerce site built for the Ghanaian market: product catalogue,
cart, wishlist, checkout with Paystack (Mobile Money & card), order management, customer
accounts, reviews, and a customized Django admin dashboard.
## Tech Stack
- **Backend:** Python 3, Django 5, Django ORM, Django auth
- **Frontend:** Django templates, Bootstrap 5, Font Awesome, vanilla JS
- **Database:** SQLite (dev) / PostgreSQL (production, via `DATABASE_URL`)
- **Payments:** Paystack (Mobile Money, Card) — server-side verified
## Project Structure
```
phonehub/
├── manage.py
├── phonehub/ # project settings, root urls
├── shop/ # products, categories, cart, wishlist, reviews
├── accounts/ # registration, login, profile, addresses
├── orders/ # checkout, orders
├── payments/ # Paystack integration
├── templates/ # all HTML templates
├── static/ # css/js/images
└── media/ # uploaded product images (created at runtime)
```
## Setup
```bash
python -m venv venv
# Windows: venv\Scripts\activate
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# then edit .env — at minimum set DJANGO_SECRET_KEY
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
# Populate the catalogue with realistic sample phones (iPhone, Samsung, Tecno, etc.)
python manage.py seed_products
python manage.py runserver
```
Visit **
127.0.0.1 for the storefront and **
127.0.0.1
for the admin dashboard.
## Paystack Setup
1. Create a free account at
paystack.com and switch to **Ghana (GHS)**.
2. Copy your **Test Secret Key** and **Test Public Key** from
Settings → API Keys & Webhooks.
3. Add them to `.env` as `PAYSTACK_SECRET_KEY` and `PAYSTACK_PUBLIC_KEY`.
4. Without keys configured, checkout still works end-to-end using
**Cash on Delivery** — card/Mobile M …