Initial habit tracker project
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# 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 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. Habit bearbeiten und loeschen.
|
||||
7. 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.
|
||||
Reference in New Issue
Block a user