A full-featured Django web platform combining a public blog/CMS with a small e-commerce stack (shop, cart, orders, and Paystack payments), user accounts with Google OAuth2, a newsletter, and background job processing via Celery + Redis.
- Blog / CMS — tagged posts (
django-taggit), rich content pages viaadditional_pages - Accounts — email + Google OAuth2 authentication (
social-auth-app-django), captcha-protected forms - Shop — product catalog, cart, checkout, and order management (
shop,cart,orders) - Payments — Paystack integration with webhook handling (
payment) - Newsletter subscription app
- Background jobs — Celery workers/beat scheduling backed by Redis
- Caching — Redis-backed Django cache
- Health checks —
django-health-checkendpoint at/health/ - Content moderation — Sightengine integration for profanity/content checks
- Python 3.12, Django 5.0
- PostgreSQL, Redis
- Celery
- Docker / Docker Compose
- Python 3.12+
- PostgreSQL
- Redis
- Docker & Docker Compose (optional, for containerized setup)
git clone <repo-url>
cd latest_govt_website-main
cp .env.example .envFill in .env with your own values — see Environment Variables below. .env is gitignored and never committed.
docker compose up --buildThis starts the Django app, a PostgreSQL container, and a Redis container.
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserverThe app defaults to govt_website.settings.dev (set via DJANGO_SETTINGS_MODULE in .env).
All configuration is sourced from environment variables (via python-decouple) — nothing is hardcoded. See .env.example for the full list, including:
| Variable | Purpose |
|---|---|
DJANGO_SECRET_KEY |
Django cryptographic signing key |
DEV_DB_* |
PostgreSQL connection settings |
DEV_REDIS_HOST / DEV_REDIS_PORT |
Redis connection |
HOST_USER / HOST_PASS |
SMTP email credentials |
GOOGLE_OAUTH2_KEY / GOOGLE_OAUTH2_SECRET |
Google social login |
PAYSTACK_* |
Payment gateway keys |
SIGHT_API_* |
Sightengine content moderation |
PAPERTRAIL_* |
Remote log aggregation |
account/ # authentication, user profiles
additional_pages/ # static/CMS-style content pages
blog/ # posts, tagging
cart/ orders/ shop/ # e-commerce flow
payment/ # Paystack integration + webhooks
newsletter/ # subscriber management
poem/ # poem content app
global_app/ # shared context processors, static assets
govt_website/ # project settings, URL routing
Each app ships with its own tests.py. Run the full suite with:
python manage.py testNot currently licensed for reuse — all rights reserved unless stated otherwise.