Frontend — Flask Web UI
Server-rendered UI powered by Flask + Jinja2 + Tailwind CSS.
Tech Stack
| Layer | Choice |
|---|---|
| Framework | Flask |
| Templates | Jinja2 |
| Styling | Tailwind CSS (CDN) + custom CSS |
| HTTP client | httpx |
| Server | gunicorn (prod), Flask dev (dev) |
Project Structure
frontend/
app/
__init__.py App factory (create_app)
main.py Entry point — calls create_app()
config.py Configuration (secret key, backend URL)
filters.py Jinja2 template filters (fromisoformat, humantime)
helpers.py API client (_api), auth decorators, model helpers
routes/ Blueprint route handlers
__init__.py register_blueprints()
auth.py /login, /register, /logout, /
dashboard.py /dashboard
gallery.py /gallery, image/video/upload detail, /images/<id>/file
generate.py /generate/text, /generate/image, /generate/video
admin.py /admin, /admin/models, /api/admin/*
profile.py /users/profile
templates/ Jinja2 HTML templates
admin/ Admin sub-templates (models, videos)
static/ CSS (style.css), JS (app.js)
tests/ pytest suite
Dockerfile Production container
requirements.txt Runtime dependencies
requirements-dev.txt Dev dependencies
Running locally
cd frontend
flask --app app.main run --port 12016 --debug
Running tests
pytest frontend/tests/
Architecture
See docs/ARCHITECTURE.md for full documentation (arc42 template).