abschluss

This commit is contained in:
2025-06-20 07:55:37 +00:00
parent 497e6a0bdf
commit 6c2e71dd53
34 changed files with 1370 additions and 382 deletions

131
documents/pflichtenheft.md Normal file
View File

@ -0,0 +1,131 @@
# Pflichtenheft Webframework in PHP
## 1. Einleitung
### 1.1 Projektbeschreibung
Ziel des Projekts ist die Entwicklung eines kleinen Webframeworks in PHP. Auf diesem Framework soll ein einfacher Blog mit Benutzeranmeldung implementiert werden.
### 1.2 Zielgruppe
Die Zielgruppe sind Entwickler, die ein leichtgewichtiges Framework für kleine Webanwendungen suchen, sowie Endbenutzer, die den Blog nutzen möchten.
## 2. Anforderungen
### 2.1 Funktionale Anforderungen
#### 2.1.1 Webframework
- **Routing:** Implementierung eines einfachen Routingsystems, das URL-Anfragen an die entsprechenden Controller weiterleitet.
- **MVC-Architektur:** Das Framework soll nach dem Model-View-Controller (MVC) Muster aufgebaut sein.
- **Datenbankanbindung:** Bereitstellung einer einfachen Datenbankanbindung (mit PDO).
- **Template-System:** Ein einfaches Template-System zur Trennung von Logik und Präsentation.
#### 2.1.2 Blog
- **Benutzeranmeldung:** Implementierung eines Login-Systems für registrierte Benutzer.
- **Beitragsverwaltung:** Benutzer sollen Blogbeiträge erstellen, bearbeiten und löschen können.
- **Responsive Design:** Der Blog soll auf verschiedenen Geräten (Desktop, Tablet, Smartphone) gut aussehen.
### 2.2 Nicht-funktionale Anforderungen
- **Sicherheit:** Implementierung von Sicherheitsmaßnahmen (z.B. Passwort-Hashing, CSRF-Schutz).
- **Performance:** Das Framework und der Blog sollen schnell und ressourcenschonend sein.
- **Dokumentation:** Ausführliche Dokumentation des Frameworks und des Blogs.
## 3. Technische Anforderungen
### 3.1 Programmiersprache
- PHP (Version 8.0 oder höher)
### 3.2 Datenbank
- MySQL
### 3.3 Webserver
- Apache oder Nginx
### 3.4 Entwicklungsumgebung
- IDE (Visual Studio Code)
- Composer für die Paketverwaltung
## 4. Zeitplan
### 4.1 Meilensteine
- **Meilenstein 1:** Entwurf des Frameworks (2 Wochen)
- **Meilenstein 2:** Implementierung der Kernfunktionen des Frameworks (4 Wochen)
- **Meilenstein 3:** Entwicklung des Blog-Systems (4 Wochen)
- **Meilenstein 4:** Testen und Dokumentation (2 Wochen)
## 5. Abnahmebedingungen
- Das Projekt gilt als erfolgreich abgeschlossen, wenn alle funktionalen und nicht-funktionalen Anforderungen erfüllt sind und die Software in einer Testumgebung fehlerfrei läuft.
## 6. Projekt-Struktur-Plan
1. **Projektmanagement**
- Planung und Organisation
- Meilenstein- und Zeitplan
- Dokumentation
2. **Framework-Entwicklung**
- Routing-System
- MVC-Architektur (Model, View, Controller)
- Datenbankanbindung (PDO)
- Template-System
3. **Blog-Entwicklung**
- Benutzeranmeldung (Login/Logout)
- Beitragsverwaltung (Erstellen, Bearbeiten, Löschen)
- Responsive Design
4. **Sicherheit**
- Passwort-Hashing
- CSRF-Schutz
- Validierung und Fehlerbehandlung
5. **Testen**
- Funktionstests für Blog-Funktionen
- Manuelle Tests (Usability, Responsivität)
6. **Deployment**
- Einrichtung der Serverumgebung
- Installation und Konfiguration
- Dokumentation für Installation und Nutzung
7. **Abschluss**
- Abnahme durch Auftraggeber
- Abschlussdokumentation
- Projektübergabe
## 7. Anhang
- Glossar der verwendeten Begriffe
- Referenzen zu verwendeten Technologien und Frameworks
## Glossar der verwendeten Begriffe
- **Routing:** Mechanismus zur Zuordnung von URLs zu bestimmten Funktionen oder Controllern in einer Webanwendung.
- **MVC (Model-View-Controller):** Architekturmuster zur Trennung von Datenmodell, Benutzeroberfläche und Steuerungslogik.
- **PDO (PHP Data Objects):** Erweiterung für PHP zur objektorientierten Datenbankanbindung.
- **Template-System:** System zur Trennung von Anwendungslogik und Darstellung (HTML).
- **CSRF (Cross-Site Request Forgery):** Angriffsmethode, bei der unerwünschte Aktionen im Namen eines angemeldeten Nutzers ausgeführt werden.
- **Passwort-Hashing:** Verfahren zur sicheren Speicherung von Passwörtern durch Umwandlung in einen nicht rückrechenbaren Wert.
- **Composer:** Paketverwaltungstool für PHP.
- **Responsive Design:** Gestaltung von Webseiten, die sich an verschiedene Bildschirmgrößen und Geräte anpasst.
## Referenzen zu verwendeten Technologien und Frameworks
- [PHP](https://www.php.net/) Programmiersprache für die Serverlogik
- [MySQL](https://www.mysql.com/) Relationale Datenbank
- [PDO (PHP Data Objects)](https://www.php.net/manual/de/book.pdo.php) Datenbankzugriff in PHP
- [Composer](https://getcomposer.org/) Paketverwaltung für PHP
- [Apache HTTP Server](https://httpd.apache.org/) Webserver
- [Nginx](https://nginx.org/) Webserver
- [Visual Studio Code](https://code.visualstudio.com/) Entwicklungsumgebung
- [Bootstrap](https://getbootstrap.com/) Framework für responsives Design