4.7 KiB
4.7 KiB
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
-
Projektmanagement
- Planung und Organisation
- Meilenstein- und Zeitplan
- Dokumentation
-
Framework-Entwicklung
- Routing-System
- MVC-Architektur (Model, View, Controller)
- Datenbankanbindung (PDO)
- Template-System
-
Blog-Entwicklung
- Benutzeranmeldung (Login/Logout)
- Beitragsverwaltung (Erstellen, Bearbeiten, Löschen)
- Responsive Design
-
Sicherheit
- Passwort-Hashing
- CSRF-Schutz
- Validierung und Fehlerbehandlung
-
Testen
- Funktionstests für Blog-Funktionen
- Manuelle Tests (Usability, Responsivität)
-
Deployment
- Einrichtung der Serverumgebung
- Installation und Konfiguration
- Dokumentation für Installation und Nutzung
-
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 – Programmiersprache für die Serverlogik
- MySQL – Relationale Datenbank
- PDO (PHP Data Objects) – Datenbankzugriff in PHP
- Composer – Paketverwaltung für PHP
- Apache HTTP Server – Webserver
- Nginx – Webserver
- Visual Studio Code – Entwicklungsumgebung
- Bootstrap – Framework für responsives Design