readme change
This commit is contained in:
@@ -1,77 +0,0 @@
|
|||||||
# 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.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user