132 lines
4.7 KiB
Markdown
132 lines
4.7 KiB
Markdown
# 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
|