portfolio

Portfolio

A personal portfolio website built with Django, Tailwind CSS, PostgreSQL, and Docker.

Stack

Quick Start

1. Clone & configure

git clone https://github.com/YOUR_USERNAME/portfolio.git
cd portfolio
cp .env.example .env
# Edit .env and set a strong SECRET_KEY

2. Start Docker

docker compose up --build

3. Set up the database (first time only)

# In a new terminal:
docker compose exec web python manage.py migrate
docker compose exec web python manage.py tailwind install
docker compose exec web python manage.py createsuperuser

4. Open the site

URL What
http://localhost:8000 Portfolio site
http://localhost:8000/admin Content admin

Daily Development

# Start everything (web + db + tailwind watcher)
docker compose up

# Stop
docker compose down

# Run a management command
docker compose exec web python manage.py <command>

# Open a Django shell
docker compose exec web python manage.py shell

Content Management

Everything is managed via the Django admin at /admin:

Section What you can do
Site Settings Name, tagline, bio, social links, avatar
Projects Add/edit portfolio projects with images, tags, links
Pages Create custom pages that appear in the nav
Documents Upload PDFs and files for download
Tags Organise projects by tag

Project Structure

portfolio/
├── apps/
│   ├── core/        # Home, about, site settings
│   ├── projects/    # Portfolio projects
│   ├── pages/       # CMS-style custom pages
│   ├── documents/   # Uploadable files
│   └── theme/       # Tailwind CSS theme app
├── config/
│   ├── settings/
│   │   ├── base.py
│   │   ├── local.py
│   │   └── production.py
│   └── urls.py
├── templates/       # All HTML templates
├── static/          # Static assets
├── media/           # Uploaded files (gitignored)
├── Dockerfile
└── docker-compose.yml