A Django Blog exploring Mozambique - built with Python, Docker and PostgresSQL
# Discover Moz
A full-stack blog application built with Python and Django,
showcasing content about Mozambique, its cities, beaches, cuisine, and culture.
Built as a learning project during my Bachelor of Business studies,
this application demonstrates real-world web development practices
including containerization, security, and content management.
## Features
- Browse posts organized by categories and tags
- Full-text search across all posts
- Rich text editor for content creation (Summernote + CodeMirror)
- Brute-force login protection (Django AXES — 3 attempt limit)
- Docker containerization for consistent deployment
- PostgreSQL database
- Responsive layout with image cards
- Custom admin panel with organized content management
## Tech Stack
| Layer | Technology |
|-------|-----------|
| Language | Python 3.13 |
| Framework | Django |
| Database | PostgreSQL |
| Containerization | Docker, Docker Compose |
| Editor | Summernote + CodeMirror (Dracula theme) |
| Security | Django AXES |
| Frontend | HTML, CSS |
## Project Structure
Project-Blog/
├── djangoapp/
│ ├── blog/ # Main blog app (posts, categories, tags)
│ ├── project/ # Django settings and configuration
│ ├── site_setup/ # Site-wide settings (menu, header)
│ └── utils/ # Shared utility functions
├── scripts/ # Docker helper scripts
├── dotenv_files/ # Environment variable templates
├── docker-compose.yml
└── Dockerfile
## Running Locally
### Prerequisites
- Docker Desktop installed and running
- Git
### Setup
1. Clone the repository:
```bash
git clone
github.com
cd Discover-Moz
```
2. Create your environment file:
```bash
cp dotenv_files/.env-example dotenv_files/.env
```
Then open `dotenv_files/.env` and fill in your own values.
3. Start the application:
```bash
docker-compose up --build
```
4. Visit `
127.0.0.1`
5. Access the admin panel at `
127.0.0.1`
## Environm …