2026-07-10 16:23:50 +02:00
2026-07-10 16:18:31 +02:00
2026-07-10 16:18:31 +02:00
2026-07-10 16:18:31 +02:00
2026-07-10 16:18:31 +02:00
2026-07-10 16:23:50 +02:00

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
  • Wochenfortschritt im Dashboard gegen das persoenliche Wochenziel
  • 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 Routing
  • app/Controllers/: verarbeitet Anfragen und steuert den Ablauf
  • app/Models/: kapselt Datenbankzugriffe
  • app/Views/: erzeugt die HTML-Ausgabe
  • app/Core/: gemeinsame Kernklassen fuer Datenbank und Views
  • app/helpers.php: Hilfsfunktionen fuer Escaping, Sessions, Flash-Meldungen und CSRF
  • database/schema.sql: Datenbankstruktur mit Startdaten

Datenbank

Die Datenbank besteht aus 5 Tabellen:

  • users: Benutzerkonten
  • categories: Habit-Kategorien
  • habits: Gewohnheiten der Benutzer
  • habit_logs: taegliche Erledigungen
  • reminders: 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.php wird nicht mit Git hochgeladen.

Einrichtung

  1. database/schema.sql in phpMyAdmin importieren.
  2. config/config.example.php zu config/config.php kopieren.
  3. Datenbankdaten in config/config.php eintragen.
  4. Projekt ueber public/index.php starten.

Testablauf

  1. Benutzer registrieren.
  2. Einloggen.
  3. Habit mit Kategorie und Wochenziel erstellen.
  4. Habit im Dashboard filtern.
  5. Habit fuer heute abhaken.
  6. Wochenfortschritt im Dashboard kontrollieren.
  7. Habit bearbeiten und loeschen.
  8. 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.

S
Description
Ein einfacher Habit-Tracker für Schüler zum Erstellen und täglichen Abhaken von Gewohnheiten.
Readme
60 KiB