Skip to content

About

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.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

54 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Govt Website

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.

Features

  • Blog / CMS — tagged posts (django-taggit), rich content pages via additional_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-check endpoint at /health/
  • Content moderation — Sightengine integration for profanity/content checks

Tech Stack

  • Python 3.12, Django 5.0
  • PostgreSQL, Redis
  • Celery
  • Docker / Docker Compose

Getting Started

Prerequisites

  • Python 3.12+
  • PostgreSQL
  • Redis
  • Docker & Docker Compose (optional, for containerized setup)

1. Clone and configure environment

git clone <repo-url>
cd latest_govt_website-main
cp .env.example .env

Fill in .env with your own values — see Environment Variables below. .env is gitignored and never committed.

2. Run with Docker Compose (recommended)

docker compose up --build

This starts the Django app, a PostgreSQL container, and a Redis container.

3. Run locally without Docker

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

python manage.py migrate
python manage.py runserver

The app defaults to govt_website.settings.dev (set via DJANGO_SETTINGS_MODULE in .env).

Environment Variables

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

Project Structure

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

Testing

Each app ships with its own tests.py. Run the full suite with:

python manage.py test

License

Not currently licensed for reuse — all rights reserved unless stated otherwise.

About

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.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages