Files
Wedding-Website/AGENTS.md
2026-02-19 18:13:00 +00:00

3.6 KiB
Raw Blame History

AGENTS.md 💍 Wedding App Agent Specification (Modern UI Edition)

  1. Project Overview

A private wedding web app for invited guests. (Link: https://www.svenja-dominic-hochzeit.de/)

Core goals:

password-protected access (event password)

RSVP + plus-one selection

photo upload + shared gallery

modern information pages (schedule, hotels, taxi)

embedded Google Maps location

external link to the official location website

button to switch the language of the webapp from german to english

visually polished, modern design (mobile-first)

  1. Tech Stack (Required)

Python 3.12

Flask

Gunicorn

uv (dependency management)

SQLite

Docker + Docker Compose

Frontend approach:

Use server-rendered templates (Jinja2)

Use modern CSS (prefer one of the following):

Tailwind CSS via CDN (fastest)

or a small handcrafted CSS design system (preferred if no CDN)

No heavy JS frameworks required.

  1. UI / UX Design Requirements (IMPORTANT)

The site must look modern, elegant, and “wedding-like”:

Visual Style

Clean typography (Google Fonts allowed)

Soft spacing, rounded cards, subtle shadows

Consistent color palette (e.g., beige / cream / dark green / gold accents)

Smooth hover states and transitions

High-quality hero section on landing page

Layout

Mobile-first (works on phones)

Clear navigation

Dashboard cards for features (RSVP, Upload, Info)

Minimal clutter, lots of whitespace

Pages

Must implement at least:

Landing / Login page (with hero design)

Dashboard

RSVP page (or dashboard section)

Upload page

Gallery page

Info pages (schedule, hotels, taxi, location)

  1. Location Page Requirements

Must include:

Embedded Google Maps iframe

Address (configurable)

A prominent button:

“Zur Location-Webseite” (or “Visit Location Website”)

open in new tab (target="_blank" rel="noopener")

The location website URL must be configurable via environment variable:

LOCATION_WEBSITE_URL

Optionally also:

LOCATION_NAME

LOCATION_ADDRESS

GOOGLE_MAPS_EMBED_URL

  1. Authentication Requirements

Registration/login requires event password

Event password stored in environment variable:

EVENT_PASSWORD

Guest provides:

event password

guest name

Use Flask sessions

Keep it simple (no email verification, no roles)

  1. Database Schema (Minimum)

Table: guests

id (PK)

name (required)

attending (boolean, nullable)

plus_one (boolean, default False)

created_at (timestamp)

Table: uploads

id (PK)

filename

uploaded_by (guest id)

uploaded_at (timestamp)

SQLite is sufficient.

  1. RSVP Logic

In the UI:

guest selects attending Yes/No

plus_one option only shown if attending Yes

persist to database

  1. Upload Requirements

allowed types: jpg, jpeg, png

configurable max upload size

sanitize filenames

prevent path traversal

store in /uploads

store upload reference in DB

  1. Gallery Requirements

all guests can view uploaded images

show thumbnails in a responsive grid

click opens a larger view (simple modal or dedicated page)

  1. Dependency Management Rules

Use uv

Dependencies defined in pyproject.toml

Commit uv.lock

No requirements.txt

In Docker:

uv sync --frozen --no-dev

  1. Docker Requirements

Dockerfile must:

Base: python:3.12-slim

Install uv

Copy pyproject.toml + uv.lock first (cache-friendly)

Run uv sync --frozen --no-dev

Start with:

uv run gunicorn -b 0.0.0.0:8000 app:app

Uploads + SQLite database must be persistent via volumes.

  1. Non-Goals (Do NOT implement)

Admin dashboards

Email systems

Payments

OAuth

External cloud storage

Microservices

  1. Design Philosophy

Aesthetic first, but not overengineered

Simple, maintainable code

Minimal dependencies

Good UX on mobile