ARCHITECTURE.md 1.9 KB

🏗️ Architektura projektu

Hlavní myšlenkou je rozdělení aplikace do logických modulů (Blueprintů). Každý modul má svůj vlastní soubor, což umožňuje týmovou spolupráci bez konfliktů.

📂 Struktura složek

silly_qiz/
├── app/
│   ├── __init__.py      # Inicializace a spojení modulů
│   ├── static/          # Statické soubory (CSS, JS, Obrázky)
│   ├── templates/       # Jinja2 HTML šablony
│   ├── home.py          # Modul pro domovskou stránku
│   └── questions.py     # Modul pro logiku kvízu
├── docs/                # Dokumentace projektu
├── pyproject.toml       # Definice závislostí (uv)
├── .python-version      # Verze Pythonu
├── .gitignore           # Ignorované soubory pro Git
└── README.md            # Základní info o projektu

⚙️ Jak to funguje

app/__init__.py

Tento soubor slouží jako srdce aplikace. Spojuje všechny části do jednoho celku pomocí Flask Blueprintů.

Příklad registrace modulů:

from . import home
app.register_blueprint(home.bp, url_prefix="/")

from . import questions
app.register_blueprint(questions.bp, url_prefix="/api/questions")
  • Vysvětlení: Pokud v questions.py definujete routu @bp.route("/ahoj"), bude v celé aplikaci dostupná pod URL /api/questions/ahoj.

📄 Moduly (home.py, questions.py)

Každý soubor obsahuje logiku pro konkrétní část webu. To umožňuje každému členu týmu "pracovat na svém písečku".

🎨 Šablony (app/templates/)

Obsahují HTML soubory, které využívají engine Jinja2. To znamená, že do HTML můžete dynamicky vkládat data pomocí {{ promenna }}.

🍱 Statické soubory (app/static/)

Místo pro váš CSS kód, obrázky a JavaScript. Např. stylizace se nachází v app/static/css/style.css.

*trochu jsem tento soubor vylepšil pomocí AI.