diff --git a/.gitignore b/.gitignore
index 85433ce..877ff42 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,7 @@
*.swp
*~
.DS_Store
+venv/
+__pycache__/
+*.pyc
+
diff --git a/app.py b/app.py
new file mode 100644
index 0000000..8d0d39f
--- /dev/null
+++ b/app.py
@@ -0,0 +1,339 @@
+from flask import Flask, request, redirect
+from datetime import datetime
+
+app = Flask(__name__)
+
+# Kommentare im Arbeitsspeicher (gehen beim Neustart verloren -> kommt Datenbank)
+eintraege = []
+
+# ─────────────────────────────────────────────────────────────────────────────
+# Hilfsfunktion: gemeinsames HTML-Gerüst
+# ─────────────────────────────────────────────────────────────────────────────
+def seite(inhalt):
+ return """
+
+
+
+
+ Flask-App – David & Karo
+
+
+
+
+ """ + inhalt + """
+
+
+"""
+
+
+# ─────────────────────────────────────────────────────────────────────────────
+# Route 1: Startseite
+# ─────────────────────────────────────────────────────────────────────────────
+@app.route("/")
+def hello():
+ return seite("""
+ Willkommen in unserer Flask-App!
+
+ Diese App läuft mit Python & Flask direkt auf dem Server.
+ Probier die Frage oder die
+ Pinnwand aus.
+
+""")
+
+
+# ─────────────────────────────────────────────────────────────────────────────
+# Route 2: Frage-Formular (GET + POST)
+# ─────────────────────────────────────────────────────────────────────────────
+@app.route("/frage", methods=["GET", "POST"])
+def frage():
+ feedback = ""
+ if request.method == "POST":
+ antwort = request.form.get("antwort", "").strip()
+ if antwort == "8":
+ feedback = '✔ Richtig!
'
+ else:
+ feedback = '✘ Leider falsch. Versuch es nochmal!
'
+
+ return seite("""
+ Rechenrätsel
+
+""" + feedback)
+
+
+# ─────────────────────────────────────────────────────────────────────────────
+# Route 3: Pinnwand – YouTube-Kommentar-Style (ca. 2013)
+# ─────────────────────────────────────────────────────────────────────────────
+
+PINNWAND_CSS = """
+
+"""
+
+def avatar_farbe(name):
+ farben = ["#e53935","#8e24aa","#1e88e5","#00897b",
+ "#43a047","#fb8c00","#6d4c41","#546e7a"]
+ idx = sum(ord(c) for c in name) % len(farben)
+ return farben[idx]
+
+@app.route("/pinnwand", methods=["GET", "POST"])
+def pinnwand():
+ if request.method == "POST":
+ name = request.form.get("name", "").strip() or "Anonym"
+ nachricht = request.form.get("nachricht", "").strip()
+ if nachricht:
+ eintraege.append({
+ "name": name,
+ "text": nachricht,
+ "zeit": datetime.now().strftime("%d.%m.%Y, %H:%M Uhr")
+ })
+ return redirect("/app/pinnwand")
+
+ # Kommentare bauen (neueste zuerst)
+ kommentare_html = ""
+ for e in reversed(eintraege):
+ initial = e["name"][0].upper()
+ farbe = avatar_farbe(e["name"])
+ # Einfaches HTML-Escaping
+ name_esc = e["name"].replace("&","&").replace("<","<").replace(">",">")
+ text_esc = e["text"].replace("&","&").replace("<","<").replace(">",">")
+ kommentare_html += f"""
+ """
+
+ if not eintraege:
+ kommentare_html = 'Noch keine Kommentare. Sei der Erste! 💬
'
+
+ anzahl = len(eintraege)
+ anzahl_text = f"{anzahl} Kommentar{'e' if anzahl != 1 else ''}"
+
+ return seite(PINNWAND_CSS + f"""
+
+
+
+
+
+
+ {anzahl_text}
+
+
+
+ {kommentare_html}
+
+""")
+
+
+# ─────────────────────────────────────────────────────────────────────────────
+if __name__ == "__main__":
+ app.run(host="0.0.0.0", port=9002) # isa2 → Port 9002