← all builds

From-Scratch Build · Events

Conference Website

The official site for an academic conference — hero, call for papers, agenda, speakers, organizers, important dates and a venue map, all driven from an admin so the committee can update it as the event takes shape. Rebuilt from scratch to learn how a deadline-driven event site is modelled and seeded.

DjangoManagement commandsSQLite MarkdownDocker

What it is

An event, on a deadline

A conference site is a personal site with a clock running. Everything on it — the call for papers, the important dates, the agenda, the speakers — exists to move people toward submission and registration deadlines, and all of it changes constantly as the event firms up.

I built it to learn how to model a time-bound event and, just as importantly, how to seed one. The standout feature is a set of management commands that populate the hero, agenda, organizers, dates and map in one go — so a fresh copy of the site comes up looking finished instead of blank.

The core idea I wanted to learn: seeding is part of the build. Custom populate commands turn an empty database into a realistic, demo-ready conference site instantly — invaluable for setting up a new year's event from last year's shape.

The stack

Tools under the hood

The point of this rebuild was the toolchain. Here is what each piece actually does in the system.

framework

Django

The framework behind the whole site — routing, the ORM, templating and the admin the organizing committee edits content through.

data model

Conference models

Conference, Speaker, Organizer, AgendaItem, ImportantDate, Role and Footer — every section of the event captured as its own model.

seeding

Management commands

Custom populate_* commands fill the hero, agenda, dates, organizers, roles and map so a new site comes up complete.

content

Markdown

Long-form sections — the call for papers, descriptions — are written in Markdown and rendered through a template filter.

venue

Embedded map

The location is stored as an address and an embed URL, so the venue map renders right inside the page.

packaging

Docker

The app and its database are containerised, so each year's conference site spins up identically from the same image.

Architecture

The sections of the event

The site is a single scrolling event page assembled from independently editable sections, each backed by a model.

  1. Hero live

    Title, subtitle and the headline dates that greet every visitor and set the tone.

  2. Call for papers live

    The submission pitch and a button linking out to wherever papers are received.

  3. Important dates live

    The deadline timeline — submission, notification, camera-ready — kept current as they shift.

  4. Agenda live

    The schedule of sessions, each item with its own content and icon.

  5. Speakers & organizers live

    Profiles with photos and roles for the people presenting and running the event.

  6. Venue map & footer live

    An embedded map of the location and a configurable footer to close the page.

How it runs

From empty to demo-ready

The workflow leans on seeding to skip the blank-database problem entirely:

In my rebuild I focused on the seed commands — they're what make a brand-new conference site useful from the very first run.

Reflection

What rebuilding it taught me