2.4 KiB
2.4 KiB
Habit Tracker
Habit Tracker ist eine PHP-Webanwendung, mit der Benutzer eigene Gewohnheiten anlegen, bearbeiten, filtern und taeglich abhaken koennen.
Funktionen
- Registrierung und Login mit Passwort-Hashing
- Geschuetzter Benutzerbereich per Session
- Habits erstellen, bearbeiten, loeschen und fuer heute abhaken
- Kategorien und Statusfilter im Dashboard
- Tagesprotokoll ueber
habit_logs - Responsive Oberflaeche fuer Desktop und Smartphone
- Serverseitige Validierung und klare Fehlermeldungen
- Schutz gegen SQL-Injection durch PDO Prepared Statements
- Schutz gegen XSS durch escaped HTML-Ausgabe
- CSRF-Schutz fuer schreibende Formulare
Technik
- PHP
- HTML/CSS
- SQL
- MySQL/PDO
- MVC-Struktur
MVC-Struktur
public/index.php: Einstiegspunkt und Routingapp/Controllers/: verarbeitet Anfragen und steuert den Ablaufapp/Models/: kapselt Datenbankzugriffeapp/Views/: erzeugt die HTML-Ausgabeapp/Core/: gemeinsame Kernklassen fuer Datenbank und Viewsapp/helpers.php: Hilfsfunktionen fuer Escaping, Sessions, Flash-Meldungen und CSRFdatabase/schema.sql: Datenbankstruktur mit Startdaten
Datenbank
Die Datenbank besteht aus 5 Tabellen:
users: Benutzerkontencategories: Habit-Kategorienhabits: Gewohnheiten der Benutzerhabit_logs: taegliche Erledigungenreminders: vorbereitete Erinnerungen pro Habit
Sicherheit
- Passwoerter werden mit
password_hash()gespeichert. - Login prueft Passwoerter mit
password_verify(). - SQL-Abfragen nutzen vorbereitete PDO-Statements.
- Ausgaben werden mit
htmlspecialchars()escaped. - Schreibende Formulare nutzen CSRF-Tokens.
- Nach erfolgreichem Login wird die Session-ID erneuert.
- Die echte
config/config.phpwird nicht mit Git hochgeladen.
Einrichtung
database/schema.sqlin phpMyAdmin importieren.config/config.example.phpzuconfig/config.phpkopieren.- Datenbankdaten in
config/config.phpeintragen. - Projekt ueber
public/index.phpstarten.
Testablauf
- Benutzer registrieren.
- Einloggen.
- Habit mit Kategorie und Wochenziel erstellen.
- Habit im Dashboard filtern.
- Habit fuer heute abhaken.
- Habit bearbeiten und loeschen.
- Seite auf Smartphone-Breite pruefen.
Bewertungsbezug
Das Projekt zeigt eine klare MVC-Aufteilung, Datenbankarbeit mit mehreren verknuepften Tabellen, serverseitige Validierung, Sicherheitsmassnahmen gegen XSS, SQL-Injection und CSRF sowie eine responsive Benutzeroberflaeche.