No description
Find a file
2026-07-01 17:44:35 +02:00
css Anpassung Kontakt html 2026-06-03 12:37:15 +02:00
flask_app hinweis erstellt 2026-07-01 17:44:35 +02:00
img logo eingefügt 2026-05-20 20:10:54 +02:00
js anpassung style notenrechner 2026-05-20 21:28:43 +02:00
python training python datein verschoben 2026-06-17 14:47:41 +02:00
uebungen projekt wird zu projekte 2026-05-21 09:26:30 +02:00
.gitignore hinweis erstellt 2026-07-01 17:44:35 +02:00
eis_projekt.html projekt wird zu projekte 2026-05-21 09:26:30 +02:00
impressum.html Anpassung impressum + style css 2026-06-03 12:34:42 +02:00
index.html smiley test entfernt 2026-05-21 09:28:31 +02:00
kontakt.html Anpassung Kontakt html 2026-06-03 12:37:15 +02:00
README.md anpassung readme 2026-07-01 17:28:51 +02:00
ueber_mich.html < entfernt 2026-05-21 16:48:12 +02:00

Glück Auf Persönliche Webseite

Persönliches Lernprojekt mit einer Flask-Anwendung und mehreren statischen HTML-Seiten. Die Flask-App bildet einen kleinen Stadion-Escape-Room ab, in dem ein Zahlencode eingegeben und serverseitig geprüft wird. Der bisherige statische Teil besitzt ein gemeinsames Design, einen Dark-Mode-Umschalter und kleine JavaScript-Übungen.

Pfad auf dem Server

Der bisher dokumentierte Serverpfad lautet:

/home/isa7/public_html

Projektstruktur

Glueck-Auf/
├── flask_app/
│   ├── app.py                  Flask-Anwendung und Routen
│   └── init_db.py              Legt die SQLite-Datenbank für das Spiel an
│
├── index.html                  Startseite der bisherigen statischen Website
├── ueber_mich.html             Persönliche Vorstellungsseite
├── eis_projekt.html            Projektseite
├── kontakt.html                Kontaktseite
├── impressum.html              Impressum mit Platzhalterangaben
├── README.md                   Diese Datei
│
├── css/
│   └── style.css               Stylesheet der statischen Seiten
├── img/
│   ├── Hintergrund.jpg         Hero-Hintergrund der statischen Startseite
│   └── logo.png                Logo und Favicon
├── js/
│   ├── script.js               Dark Mode und Dropdown-Menü
│   ├── notenrechner.js         Logik des Notenrechners
│   └── textanalyse.js          Logik der Textanalyse
├── uebungen/
│   ├── notenrechner.html       JavaScript-Übung
│   └── textanalyse.html        JavaScript-Übung
└── python training/
    ├── frage.py                Frühere Python-Übung
    └── hallo.py                Frühere Python-Übung

Flask-App lokal starten

Vorausgesetzt werden Python 3 und Flask.

cd flask_app
python3 -m venv venv
source venv/bin/activate
python3 -m pip install Flask
python3 app.py

Die Anwendung läuft anschließend auf:

http://localhost:9000/

Der Entwicklungsserver lauscht auf 0.0.0.0 und verwendet Port 9000.

Flask-Routen

Route Methoden Inhalt
/ und /app/ GET, POST Startseite mit Namenseingabe
/raum/<raum_id> und /app/raum/<raum_id> GET, POST Räume, Ausgänge und Rätsel des Stadion-Escape-Rooms

Aufbau der Flask-App

flask_app/app.py

  • Erstellt die Flask-Anwendung.
  • Baut die HTML-Seiten direkt in Python-Strings zusammen.
  • Enthält das gemeinsame Styling direkt in der Konstante STYLE.
  • Nimmt den Namen und Rätselantworten per POST entgegen.
  • Speichert Spielstart und Abschlusszeit in SQLite.
  • Zeigt nach dem gelösten Rätsel eine Highscore-Liste an.

flask_app/init_db.py

Legt die SQLite-Datenbank adventure.db an und füllt sie mit den Räumen, Ausgängen und der Rätselantwort.

Ablauf des Rätsels

  1. Die Startseite wird über / oder /app/ aufgerufen.
  2. Nach der Namenseingabe wird ein Spielstand in der Datenbank angelegt.
  3. Der Link „Zum Stadiontor“ führt in den ersten Raum.
  4. Über Ausgänge bewegt man sich durch Tunnel, Kabine, Kiosk und Nordkurve.
  5. Im Rätselraum liest Flask request.form["antwort"].
  6. Bei der richtigen Antwort wird die Abschlusszeit gespeichert und der Highscore angezeigt.

Das HTML-Grundgerüst, die Navigation und das blaue Stadion-Design werden direkt in app.py erzeugt. Es gibt keine Jinja-Templates für die Flask-App.

Statische Website

Die älteren statischen Seiten bleiben im Hauptverzeichnis erhalten. Sie verwenden gemeinsam css/style.css und js/script.js und enthalten unter anderem:

  • eine persönliche Start- und Vorstellungsseite,
  • eine Projekt-, Kontakt- und Impressumsseite,
  • einen Dark-Mode-Umschalter,
  • einen Notenrechner,
  • eine einfache Textanalyse.

Die statische Website und die Flask-App sind derzeit getrennte Bereiche des Projekts. Die Dateien in den Verzeichnissen css/, img/ und js/ gehören zu den statischen HTML-Seiten.

index.html Startseite

  • Einstiegspunkt der statischen Website,
  • Hero-Bereich mit Hintergrundbild,
  • Begrüßungstext mit Link zu ueber_mich.html,
  • verlinkte Cards zu „Über mich“, Projekten und Kontakt,
  • Navigation mit Dropdown zu den Übungen,
  • Footer mit Links zu Kontakt und Impressum.

ueber_mich.html Über mich

  • persönliche Vorstellungsseite,
  • aktuell mit kurzen Platzhaltertexten,
  • Skill-Badges für HTML, CSS, JavaScript, Python, Webdesign und Linux,
  • gemeinsames Layout, Navigation und Dark Mode.

eis_projekt.html Projektseite

  • Seite für das Glück-Auf-Lernprojekt,
  • Projektinhalt aktuell noch als Platzhalter vorbereitet,
  • verwendet das gemeinsame Layout, die Navigation und den Dark Mode.

kontakt.html Kontakt

  • gestaltetes Kontaktformular,
  • Eingabefelder für Name, E-Mail und Nachricht,
  • Hinweis, dass das Formular aktuell nur ein Layout ist,
  • Absenden-Button aktuell nur visuell vorhanden,
  • keine Backend-Anbindung und keine Formularübertragung.

impressum.html Impressum

  • Impressumsseite für ein privates Lernprojekt,
  • Abschnitte zu Angaben, Kontakt, Verantwortung, Haftung, Links, Urheberrecht und Hinweis,
  • ausschließlich fiktive Platzhalterdaten, die nicht für eine öffentliche Veröffentlichung gedacht sind.

JavaScript-Übungen

Notenrechner

Die Seite uebungen/notenrechner.html bindet js/notenrechner.js ein. Die Oberfläche wird per JavaScript nach dem Seiten-Hero erstellt und verarbeitet zwei Eingaben: erreichte Punkte und maximal erreichbare Punkte.

Aus diesen Werten werden Prozentwert und Bewertung berechnet:

Prozentwert Bewertung
ab 90 % Sehr gut
ab 75 % Gut
ab 60 % Befriedigend
ab 50 % Ausreichend
unter 50 % Nicht bestanden

Das Ergebnis zeigt Prozentwert, Note, Eingabewerte und einen farbigen Fortschrittsbalken in Cards. Vor der Berechnung wird geprüft, ob Punkte und Maximalpunkte gültig sind.

Textanalyse

Die Seite uebungen/textanalyse.html verwendet js/textanalyse.js. Ein eingegebener Text wird direkt im Browser analysiert. Angezeigt werden:

  • Anzahl der Zeichen,
  • Anzahl der Wörter,
  • Anzahl der Großbuchstaben,
  • Anzahl der Sätze.

Auch diese Oberfläche wird dynamisch mit JavaScript erzeugt. Vor der Analyse wird geprüft, ob überhaupt Text eingegeben wurde. Die Resultate erscheinen in einer Card-Übersicht.

Gemeinsames Design der statischen Seiten

css/style.css

Das zentrale Stylesheet enthält unter anderem:

  • das Grundlayout für Body und Navigation,
  • CSS-Variablen für Farben und Overlays,
  • Layouts mit Grid und Flexbox,
  • Hero-Bereiche, Cards, Buttons und Footer,
  • die Google-Fonts-Anbindung für Bebas Neue und Barlow,
  • die Animation fadeUp,
  • Styles für das Dropdown-Menü,
  • spezielle Styles für Kontaktformular und Impressum,
  • responsive Anpassungen,
  • Dark-Mode-Regeln über die Klasse body.dark,
  • wiederverwendbare Klassen wie .page-hero, .page, .cards, .card, .btn und .skill.

js/script.js

Das gemeinsame JavaScript der statischen Seiten:

  • aktiviert den Dark-Mode-Umschalter,
  • speichert die Auswahl in localStorage,
  • wechselt die Beschriftung zwischen „Dark“ und „Light“,
  • öffnet und schließt das Übungen-Dropdown,
  • schließt das Dropdown bei einem Klick außerhalb des Menüs.

Medien

img/Hintergrund.jpg

Das Bild wird als Hintergrund des Hero-Bereichs der statischen Startseite verwendet und liegt unter einem halbtransparenten Overlay.

img/logo.png

Das Logo wird von den statischen Seiten als Favicon eingebunden. Seiten im Hauptverzeichnis verwenden img/logo.png, die Übungsseiten im Unterordner verwenden ../img/logo.png.

Verlinkungsübersicht

Datei oder Ziel Verlinkt beziehungsweise verwendet in Zweck
flask_app/app.py Flask-Routen /, /app/ und /app/raum/<raum_id> Logik, HTML-Ausgabe und Styling des Stadion-Escape-Rooms
flask_app/init_db.py Lokale Vorbereitung der Flask-App Erstellt die SQLite-Datenbank
index.html Navigation aller statischen Seiten Rückkehr zur statischen Startseite
ueber_mich.html Navigation, Startseiten-Button und Startseiten-Card Vorstellungsseite
eis_projekt.html Navigation und Startseiten-Card Projektseite
kontakt.html Navigation, Footer und Startseiten-Card Kontaktseite
impressum.html Navigation und Footer Rechtliche Angaben
uebungen/notenrechner.html Dropdown-Menü JavaScript-Übung Notenrechner
uebungen/textanalyse.html Dropdown-Menü JavaScript-Übung Textanalyse
css/style.css Alle statischen HTML-Seiten Gemeinsames Design
js/script.js Alle statischen HTML-Seiten Dark Mode und Dropdown
js/notenrechner.js uebungen/notenrechner.html Notenrechner-Logik
js/textanalyse.js uebungen/textanalyse.html Textanalyse-Logik
img/Hintergrund.jpg css/style.css über die Klasse .hero Hero-Hintergrundbild
img/logo.png Alle statischen HTML-Seiten Favicon
Google Fonts Flask-App und statische Seiten Schriftarten Bebas Neue und Barlow

Verwendete Technologien

  • Python 3
  • Flask
  • HTML5
  • CSS3 mit Custom Properties, Grid, Flexbox und Animationen
  • JavaScript mit DOM-Manipulation, Events und localStorage
  • Google Fonts: Bebas Neue und Barlow

Aktuelle Hinweise

  • Es gibt derzeit keine requirements.txt; Flask muss lokal manuell installiert werden.
  • Die Styles der Flask-App befinden sich direkt in flask_app/app.py.
  • Das Kontaktformular der statischen Website sendet keine Daten.
  • Die Projektseite enthält noch keinen vollständig ausgearbeiteten Inhalt.
  • Die Angaben im Impressum sind fiktive Platzhalterdaten und nicht für eine öffentliche Veröffentlichung gedacht.
  • Die Übungsseiten erzeugen ihre Eingabeoberflächen per JavaScript.