Skip to content

devopsdays/devopsdays-web-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

devopsdays-web-app

A database-backed web application for managing devopsdays.org event pages. Replaces the Hugo static site generator workflow with a browser-based UI that city organizers can use without git, YAML, or a command line.

Status

Proof of Concept — this is a POC to demonstrate the approach. Not production-ready.

Architecture

  • Backend: Django 5.x + PostgreSQL
  • Public site: Server-rendered Django templates + Tailwind CSS
  • Editing UI: Vue 3 + Inertia.js (SPA experience, no separate API)
  • Admin: Django admin (for core team)
  • Auth: GitHub OAuth via django-allauth

See the full PRD for the complete technical specification.

Quick Start

Prerequisites

  • Docker and Docker Compose
  • That's it. No Python, no Node.js, no PostgreSQL to install.

Setup

# 1. Clone the repo
git clone https://github.com/devopsdays/devopsdays-web-app.git
cd devopsdays-web-app

# 2. Create your .env file from the template
cp env.template .env

# 3. Start everything
docker compose up

# 4. In another terminal, run migrations and seed data
docker compose exec web python manage.py migrate
docker compose exec web python manage.py shell < scripts/seed_data.py

The seed script pulls real event data from the Hugo repo (expects it as a sibling directory at ../devopsdays-web).

What's Running

URL What
http://localhost:8000 Public site (homepage, event pages)
http://localhost:8000/admin/ Django admin (core team view)
http://localhost:8000/manage/ Organizer editing UI (Vue SPA)
http://localhost:8000/accounts/login/ Login page
http://localhost:5173 Vite dev server (HMR for Vue)
http://localhost:8025 Mailpit (catches outgoing emails)

Default Admin Login

After running the seed script:

GitHub OAuth Setup (Optional)

To test the real login flow:

  1. Go to GitHub → Settings → Developer Settings → OAuth Apps → New OAuth App
  2. Set these values:
    • Application name: devopsdays-web-app (dev)
    • Homepage URL: http://localhost:8000
    • Authorization callback URL: http://localhost:8000/accounts/github/login/callback/
  3. Copy the Client ID and Client Secret into your .env file:
    GITHUB_CLIENT_ID=your_client_id_here
    GITHUB_CLIENT_SECRET=your_client_secret_here
    
  4. Restart the web container: docker compose restart web
  5. Go to Django Admin → Sites → change example.com to localhost:8000
  6. Go to Django Admin → Social Applications → Add → GitHub, paste credentials, assign to the localhost:8000 site

Project Structure

devopsdays-web-app/
├── config/                 # Django project settings
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── apps/
│   ├── events/             # Event, City, EventPage, TeamMember, ProgramEntry
│   ├── sponsors/           # Sponsor, SponsorLevel, EventSponsor
│   ├── people/             # Speaker, Talk
│   ├── users/              # User, EventPermission
│   └── pages/              # BlogPost, StaticPage
├── templates/              # Django templates (public site)
│   └── public/
├── frontend/               # Vue 3 app (editing UI)
│   └── src/
│       ├── pages/          # Inertia page components
│       ├── layouts/        # Layout components
│       └── components/     # Reusable Vue components
├── scripts/
│   └── seed_data.py        # Import data from Hugo repo
├── docker-compose.yml
├── Dockerfile
└── requirements.txt

Contributing

This is a volunteer project. The codebase is designed to be approachable:

  • Backend contributors: Django views and templates. No JS knowledge needed for the public site.
  • Frontend contributors: Vue 3 components in frontend/src/. Inertia handles the Django integration.
  • Both: The Docker Compose setup means docker compose up and you're running.

About

Database-backed web application for devopsdays.org (POC)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors