Files
blog/documents/lastenheft.md
2025-06-20 07:55:37 +00:00

117 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Lastenheft Blogsystem
## 1. Zielbestimmung
Das zu entwickelnde System ist ein webbasiertes Blogsystem, das es autorisierten Benutzern ermöglicht, Blogbeiträge zu erstellen, zu bearbeiten und zu löschen. Besucher können die Beiträge lesen. Das System soll einfach bedienbar, sicher und erweiterbar sein.
## 2. Produkteinsatz
- **Zielgruppe:** Autoren (Lehrkräfte, Schüler, Redaktion), Leser (Öffentlichkeit)
- **Betriebssystem:** Linux-Server
- **Zugriff:** Webbrowser (Desktop und mobil)
- **Sprache:** Deutsch
## 3. Produktübersicht
Das Blogsystem bietet folgende Kernfunktionen:
- Anzeige einer Übersicht aller Blogposts
- Detailansicht einzelner Blogposts
- Benutzer-Login/-Logout
- Erstellung, Bearbeitung und Löschung von Blogposts (nur für eingeloggte Nutzer)
- Schutz vor CSRF-Angriffen
## 4. Produktfunktionen
- **Blogübersicht:**
Besucher sehen eine Liste aller veröffentlichten Beiträge mit Titel, Vorschau, Datum und Autor.
- **Detailansicht:**
Besucher können einzelne Beiträge vollständig lesen.
- **Benutzerverwaltung:**
Nutzer können sich einloggen und ausloggen.
- **Beitragserstellung:**
Eingeloggte Nutzer können neue Beiträge verfassen.
- **Beitragsbearbeitung:**
Eingeloggte Nutzer können bestehende Beiträge bearbeiten.
- **Beitragslöschung:**
Eingeloggte Nutzer können Beiträge löschen.
- **Sicherheit:**
CSRF-Schutz bei Formularen, Passwort-Hashing, Session-Management.
## 5. Nicht-funktionale Anforderungen
- **Benutzerfreundlichkeit:**
Intuitive Bedienung, responsive Design.
- **Performance:**
Schnelle Ladezeiten, auch bei vielen Beiträgen.
- **Sicherheit:**
Schutz vor gängigen Webangriffen (CSRF, XSS, SQL-Injection).
- **Wartbarkeit:**
Klare Code-Struktur, Dokumentation, Erweiterbarkeit.
## 6. Schnittstellen
- **Datenbank:**
MySQL/MariaDB für Speicherung von Nutzern und Beiträgen.
- **Webserver:**
Apache/Nginx mit PHP-Unterstützung.
## 7. Lieferumfang
- Quellcode des Blogsystems
- Installationsanleitung
- Datenbankschema
- Kurzanleitung für Nutzer
## 8. Abgrenzung
- Keine Kommentarfunktion
- Keine Medienverwaltung (Bilder, Videos)
- Keine Benutzerregistrierung über die Oberfläche
## 9. Installationsanleitung (Kurzfassung)
1. **Voraussetzungen:**
- Linux-Server mit Apache oder Nginx
- PHP (mindestens Version 7.4)
- MySQL oder MariaDB
- Git (optional)
2. **Quellcode bereitstellen:**
- Repository klonen oder Quellcode entpacken:
`git clone <REPOSITORY-URL>`
- Dateien ins Webverzeichnis kopieren.
3. **Datenbank einrichten:**
- Neue Datenbank und Benutzer anlegen.
- Das mitgelieferte SQL-Schema importieren:
`mysql -u <user> -p <datenbankname> < schema.sql`
4. **Konfiguration:**
- Zugangsdaten zur Datenbank in der Konfigurationsdatei eintragen (`.env`).
5. **Berechtigungen setzen:**
- Schreibrechte für Upload- oder Cache-Verzeichnisse vergeben (falls benötigt).
6. **Webserver neu laden:**
- Apache/Nginx neu starten:
`sudo systemctl reload apache2` oder `sudo systemctl reload nginx`
## 10. Kurzanleitung für Nutzer
- **Anmelden:**
Über die Login-Seite mit Benutzername und Passwort anmelden.
- **Blogbeiträge lesen:**
Die Startseite zeigt eine Übersicht aller veröffentlichten Beiträge. Ein Klick auf den Titel öffnet die Detailansicht.
- **Neuen Beitrag erstellen:**
Nach dem Login auf „Neuer Beitrag“ klicken, Titel und Inhalt eingeben und speichern.
- **Beitrag bearbeiten/löschen:**
Eigene Beiträge können nach dem Login bearbeitet oder gelöscht werden.
- **Abmelden:**
Über den „Logout“-Button oben rechts abmelden.
---