# AI.md — Strukturvorgaben für neue Applikation
**Autoren:** Björn Runden
, Gerd Goldberg , Bruno Runden
**Zweck dieses Dokuments:** Verbindliche strukturelle, betriebliche und infrastrukturelle Vorgaben für eine neue Python-Applikation. Applikationslogik, Routing und Frontend sind bewusst nicht Teil dieses Dokuments.
---
## 1. Technologie-Stack
| Schicht | Technologie |
|---|---|
| Backend-Framework | Python Flask 2.x |
| OIDC-Authentifizierung | Authlib (gegen Zitadel als externen IdP) |
| Datenbank / ORM | SQLite + SQLAlchemy |
| Konfiguration | 12-Factor-App via `.env`-Datei |
| Produktions-Server | Waitress |
| Container | Docker (`python:3.11-slim`), orchestriert via `docker-compose.yml` |
| Frontend-Framework | Mithril.js |
---
## 2. Verzeichnisstruktur
```text
.
├── ai-context/ # Anweisungen und Information für Mistral AI
├── App_Server/ # Enthält Alles, was auf den Server (Backend) gehört
│ ├── data/ # enthält die SQLite-Datenbanken
│ ├── Dockerfile
│ ├── root/ # Enthält alle Python-Programme
│ │ ├── approot.py
│ │ ├── auth # Enthält Programme zu Benutzerverwaltung
│ │ │ ├── model/ # Enthält die Datenmodelle der Benutzerverwaltung
│ │ │ └── routes.py
│ │ ├── config.ini
│ │ ├── db.py
│ │ ├── requirements.txt
│ │ ├── routes/ # Enthält die Route-Definitionen für Flask
│ │ ├── runserver.py
│ │ ├── settings.py
│ │ └── templates/ # enthält die Vorlagen für Jinja2
│ └── scripts/ # enthält Scripts, die im Dockjer-Container ausgeführt werden
├── Client/ # Enthält alles, was für die Browser-basierte GUI erforderlich ist
│ ├── Components/ # enthält die mit mithril.js entwickelten GUI-Komponenten
│ │ ├── auth/ # enthält die GUI-Komponenten für die Benutzer-Verwaltung
│ │ │ └── models/ # enthält die Datenmodelle für die Benutzerverwaltung
│ │ └── widgets # enthält einzelne GUI-Elemente wie Eingabefelder u.ä., die dann in den Komponenten verwendet werden
│ ├── index.ts
│ ├── inireader.mjs
│ ├── node_modules/
├── docker-compose.base.yaml
├── docker-compose.dev.yaml
├── docker-compose.prod.yaml
├── docker-compose.save.yaml
├── Dokumentationen/ # enthält Dokumente, die für die Entwicklung wichtig sind
├── mistral-context.md
├── NGINX_Server/ # enthält die Konfiguration für den im Docker-Container laufenden NGINX-Server
│ ├── certs/ # enthält die Zertifikatsdateien für die SSL-Verschlüsselung
│ ├── configtemplates
│ ├── Dockerfile
│ └── html/
│ └── static/ # enthält die statischen Elemente der GUI, wie css-Dateien und Javascript-Dateien
└── README.md
```