**Projekt Absolventenverein**
**Lastenheft**
**Inhaltsverzeichnis**
- [Zweck des Dokumentes und Scope](#zweck-des-dokumentes-und-scope)
- [Zweck des Dokumentes](#zweck-des-dokumentes)
- [Scope und Abgrenzung](#scope-und-abgrenzung)
- [Grundlagen](#grundlagen)
- [Verwendete Normen und mitgeltende Dokumente](#verwendete-normen-und-mitgeltende-dokumente)
- [Hardwareanforderungen](#hardwareanforderungen)
- [Allgemeine Anforderunge](#allgemeine-anforderunge)
- [Anforderungen an Server](#anforderungen-an-server)
- [Anforderungen an den Bedienrechner / das mobile Endgerät](#anforderungen-an-den-bedienrechner--das-mobile-endgerät)
- [Anforderungen an das Backup, Recovery und Desaster-Recovery](#anforderungen-an-das-backup-recovery-und-desaster-recovery)
- [Anforderungen an Redundanz und Verfügbarkeit](#anforderungen-an-redundanz-und-verfügbarkeit)
- [Redundanzeigenschaften](#redundanzeigenschaften)
- [Verfügbarkeitsanforderungen](#verfügbarkeitsanforderungen)
- [Schnittstellen](#schnittstellen)
- [Schnittstellen zu eigenen Systemen](#schnittstellen-zu-eigenen-systemen)
- [Schnittstellen zu anderen Systemen](#schnittstellen-zu-anderen-systemen)
- [Anforderungen an die Software](#anforderungen-an-die-software)
- [Allgemeine Anforderungen](#allgemeine-anforderungen)
- [Zugriffsverwaltung](#zugriffsverwaltung)
- [Hall of Fame (Phase 2)](#hall-of-fame-phase-2)
- [Firmen und Jobstellenmarkt (Phase 2)](#firmen-und-jobstellenmarkt-phase-2)
- [Premiumbereich (Phase 2)](#premiumbereich-phase-2)
- [Auswertungen](#auswertungen)
- [Datenschutz \& Informationssicherheit](#datenschutz--informationssicherheit)
- [Schwarzes Brett (Phase 2)](#schwarzes-brett-phase-2)
- [Anmeldetool für Treffen](#anmeldetool-für-treffen)
- [Profilverwaltung](#profilverwaltung)
- [Datenbank](#datenbank)
- [Dokumentation](#dokumentation)
- [Projektdokumentation](#projektdokumentation)
# Zweck des Dokumentes und Scope
## Zweck des Dokumentes
*Der Zweck dieses Dokuments ist die Beschreibung der Anforderungen an die Hardware und an die Web-Anwendung für den Absolventenverband.*
*Das Ziel dieses Lastenhefts ist die detaillierte Beschreibung der Anforderungen an die zu entwickelnde Applikation für den Absolventenverband. Diese Applikation soll es ermöglichen, Absolventen zu verwalten, Veranstaltungen zu organisieren, eine Jobbörse zu integrieren und die Kommunikation innerhalb des Verbands zu verbessern. Dabei sollen verschiedene Rollen- und Berechtigungskonzepte berücksichtigt werden, und die Applikation soll in mehreren Phasen umgesetzt werden, wobei Funktionalitäten priorisiert werden.*
*Die Applikation soll eine zentrale Plattform für Absolventen sein, über die sie sich registrieren, austauschen und auf relevante Angebote zugreifen können. Kernkomponenten wie das Anmeldetool für Treffen, die Hall of Fame und der Jobstellenmarkt werden ergänzt durch optionale Funktionen wie die Integration von LinkedIn für Profilabgleiche und einen Premiumbereich für zahlende Nutzer.*
## Scope und Abgrenzung
*Abgrenzung / Was kommt in Phase 1 hinein?*
*Das Projekt umfasst die Entwicklung der Applikation mit den Funktionen für die Verwaltung von Absolventenprofilen, die Organisation von Veranstaltungen, die Darstellung der Hall of Fame, sowie die Integration eines Firmen- und Jobstellenmarkts. Die Zugriffsverwaltung sowie die Sicherheit der Daten (DSGVO-konform) sind wesentliche Bestandteile. Optional sind Erweiterungen wie ein Schülerzugang oder die Integration eines CMS für redaktionelle Beiträge. Nicht in den Scope fallen jedoch Zahlungsprozesse für den Premiumbereich und externe Lösungen für den Eventkalender (V-Calendar, V-Event), die separat betrachtet werden.*
# Grundlagen
## Verwendete Normen und mitgeltende Dokumente
*Die bestehenden Gesetze und technischen Regelwerke sind zu beachten. Insbesondere sind im Kontext des gegenständlichen Dokumentes die folgenden Normen zu berücksichtigen:*
*Die Applikation muss unter Beachtung der folgenden Normen und rechtlichen Vorgaben entwickelt werden:*
*- DSGVO (Datenschutz-Grundverordnung): Es dürfen nur notwendige personenbezogene Daten gespeichert werden, wie E-Mail, Telefonnummer und Land/Bundesland. Ein Opt-In-Verfahren wird für die Speicherung von Nutzerdaten angewendet, und es muss die Möglichkeit zur Löschung von Einträgen geben (Rückwirkend möglich)*
*- NIS 2 Richtlinie (Netz- und Informationssicherheit); Als digitaler Dienstanbieter müssen Sicherheitsanforderungen eingehalten werden. Besonders die sichere Aufbewahrung und Verwaltung von Nutzerdaten, sowie der Schutz vor Datenverlust sind hier entscheidend.*
*Weitere Bestimmungen, wie die Handhabung der Benutzerrechte und Datenschutzrichtlinien im Zusammenhang mit Drittanbieter-APIs (z. B. LinkedIn-OAuth), müssen ebenfalls geprüft und eingehalten werden.*
# Hardwareanforderungen
## Allgemeine Anforderunge
*Phase 2: Schülerzugang braucht mehr Nutzer…. Zugriffe / Tag steigen auch.*
| **300 aktuellen Nutzern**
Das System muss mindestens 300 aktuelle Benutzer unterstützen, die das System administrieren, bearbeiten und nutzen können. Nicht jeder Benutzer benötigt ein eigenes Profil. | HW-1 |
| --- | --- |
| **ca. 50 Zugriffe / Tag**
Das System muss in der Lage sein, ca. 50 aktive Benutzer pro Tag (tendenziell steigend) zu unterstützen, ohne dass die Systemleistung beeinträchtigt wird. Die Systemressourcen sollten ausreichend dimensioniert sein, um eine reibungslose und effiziente Nutzung durch die Benutzer zu gewährleisten. | HW-2 |
| **Einfach skalierbar**
Das System muss einfach skaliert werden können, um aufsteigende Anforderungen und Benutzerzahlen reagieren zu können. Dies sollte ohne wesentliche Änderungen an der Systemarchitektur oder -Infrastruktur möglich sein, um eine flexible und kosteneffiziente Anpassung an zukünftige Bedürfnisse zu ermöglichen. | HW-3 |
## Anforderungen an Server
Phase 2: Schülerzugang braucht mehr Nutzer…. Zugriffe / Tag steigen auch.
Die Anwendung wird auf einem Cloud-Server betrieben, der skalierbar ist, um den Anforderungen eines wachsenden Benutzerstamms gerecht zu werden. | HW-4 |
---|---|
Hochverfügbar: 99.5% Das System muss eine Verfügbarkeit von mindestens 99,5% aufweisen. Dies bedeutet, dass das System innerhalb eines Jahres höchstens 43,8 Stunden (0,5% von 8760 Stunden) nicht verfügbar sein darf. | HW-5 |
Datenbank und Anwendung muss redundant und gegen Ausfall eines Servers gesichert sein. Die Datenbank und die Anwendung müssen redundant und gegen Ausfälle gesichert sein, um Datenverluste und Systemausfälle zu vermeiden. Dies umfasst die Implementierung von:
| HW-6 |
.Net Runtime muss unterstützt werden | HW-7 |
Sicherheit und administrativer Zugriff: Der Zugriff auf die Anwendung und die Infrastruktur muss jederzeit gegeben sein. Dies kann durch die Implementierung von:
erreicht werden. | HW-8 |
Benutzername und Passwort Authentifizierung Im Frontend Beschreibung: Die Benutzername- und Passwort-Authentifizierung ermöglicht es Nutzern, sich in einer Anwendung zu identifizieren, indem sie ihre Anmeldedaten über ein Formular eingeben. Das Frontend sendet die Daten sicher an das Backend, das die Authentifizierung übernimmt. Bei erfolgreicher Anmeldung erhält der Nutzer Zugriff auf geschützte Bereiche der Anwendung. Voraussetzungen:
1. Backend-Anforderungen:
2. Frontend-Anforderungen: Benötigte Komponenten:
1. Login-Formular:
2. HTTP-Client:
3. Token-Management:
4. Routing: Technologien:
1. Framework:
2. HTTP-Anfragen:
3. Sicherheitsmaßnahmen:
4. Styling:
5. Token-Handling:
6. Datenbank: Backend: Überprüft die empfangenen Anmeldedaten, in dem er nach vorhandenen Benutzernamen sucht. Anschließend wird das eingegebene Passwort mit den Daten in der Datenbank überprüft. | ZUG-1 |
---|---|
Passwort zurücksetzen Im Frontend Beschreibung: Die Passwort-Zurücksetzen-Funktion im Frontend ermöglicht es Benutzern, über eine Benutzeroberfläche einen Token-basierten Prozess zur Passwortänderung zu starten. Benötigte Komponenten: 1. Eingabefeld für die E-Mail-Adresse. 2. Formular zur Eingabe des neuen Passworts nach Token-Bestätigung. 3. Fehler- und Erfolgsmeldungen zur Benutzerführung. Technologien:
1. Framework:
2. HTTP-Anfragen:
3. Sicherheitsmaßnahmen:
4. Styling:
5. Token-Handling:
6. Datenbank:
Backend: Das neu festgelegte Passwort überschreibt den dazugehörigen Datenbankeintrag. Der Link zum Passwortreset, sofern man sich ganz aus der Applikation ausgesperrt hat, wird per E-Mail zugestellt. |
ZUG-2 |
Rollen Im Frontend Beschreibung: Die Implementierung von Rollen im Frontend dient der Steuerung von Benutzerzugriffen und Funktionen basierend auf deren Berechtigungen. Rollen legen fest, welche Inhalte und Aktionen für bestimmte Benutzergruppen sichtbar oder ausführbar sind. Benötigte Komponenten: 1. Rollenbasierte Navigation 2. Zugriffskontroll-Guard 3. UI-Elemente basierend auf Benutzerrolle Technologien:
1. Framework:
2. HTTP-Anfragen:
3. Sicherheitsmaßnahmen:
4. Styling:
5. Token-Handling:
6. Datenbank: Backend: Die Rollen erlauben es Benutzern verschiedene Berechtigungen zu erlangen. Hierfür muss im Backend ein Konzept zur Verteilung und Überprüfung von Rollen implementiert werden. |
ZUG-3 |
Benutzerverwaltung (für Admins) Im Frontend Beschreibung: Die Benutzerverwaltung erlaubt Administratoren, Benutzerkonten zu verwalten, einschließlich Erstellung, Bearbeitung, Aktivierung/Deaktivierung und Löschung von Benutzern sowie Zuweisung von Rollen und Berechtigungen. Benötigte Komponenten: 1. Liste der Benutzer mit Rollen und Status 2. Buttons zum Bearbeiten und Löschen von Benutzern 3. Such- und Filterfunktionen für Benutzer Technologien:
1. Framework:
2. HTTP-Anfragen:
3. Sicherheitsmaßnahmen:
4. Styling:
5. Token-Handling:
6. Datenbank: Backend: Alle Einträge, die in der Weboberfläche (Admin-Bereich) geändert werden, werden übers Backend in der DB gespeichert, hier muss man ganz Besonders auf die Rechteverteilung aufpassen, dass keine ungewollten Änderungen von dritten eingetragen werden. |
ZUG-4 |
Einladung an die EDU-Adresse (Phase 2) Im Frontend Beschreibung: In Phase 2 wird die Möglichkeit geschaffen, Benutzern eine Einladung zur Registrierung oder Teilnahme über eine EDU-E-Mail-Adresse zu senden. Diese Einladung erfolgt in Form einer E-Mail, die den Benutzer zur Anmeldung auf der Plattform einlädt. Benötigte Komponenten: 1. Eingabefeld für die EDU-E-Mail-Adresse 2. Button zum Versenden der Einladung 3. Bestätigungs- und Fehlermeldungen für den Versand Technologien:
1. Framework:
2. HTTP-Anfragen:
3. Sicherheitsmaßnahmen:
4. Styling:
5. Token-Handling:
6. Datenbank: Backend: Es werden alle nötigen Schritte für die Erstellung einer Einladung durchgeführt, damit diese dann per E-Mail versendet werden kann. |
ZUG-5 |
Magic Link Authentifizierung Im Frontend Beschreibung: Die Magic Link Authentifizierung ermöglicht es Benutzern, sich ohne Passwort anzumelden, indem sie auf einen Link klicken, der ihnen per E-Mail zugeschickt wird. Dieser Link ist temporär und führt den Benutzer direkt zur Anwendung, wenn er gültig ist. Benötigte Komponenten: 1. Eingabefeld für die E-Mail-Adresse 2. Button zum Anfordern des Magic Links 3. Weiterleitung zur Bestätigungsseite nach Klick auf den Magic Link Technologien:
1. Framework:
2. HTTP-Anfragen:
3. Sicherheitsmaßnahmen:
4. Styling:
5. Token-Handling:
6. Datenbank: Backend: Ein potenzieller Benutzer bekommt per E-Mail einen Link zugesendet, womit er sich authentifizieren kann. |
ZUG-6 |
2FA Authentifizierung (Phase 2) Im Frontend Beschreibung: In Phase 2 wird die Zwei-Faktor-Authentifizierung (2FA) implementiert, um die Sicherheit des Benutzerkontos zu erhöhen. Nach der Eingabe des Benutzernamens und Passworts wird ein zweiter Authentifizierungsfaktor benötigt, wie ein einmaliger Code, der an das Handy des Benutzers gesendet wird. Benötigte Komponenten: 1. Eingabefeld für den OTP (One-Time-Password) 2. Button zur Bestätigung des OTPs 3. Fehler- und Erfolgsmeldungen für die OTP-Verifizierung Technologien:
1. Framework:
2. HTTP-Anfragen:
3. Sicherheitsmaßnahmen:
4. Styling:
5. Token-Handling:
6. Datenbank: Backend: Nach erfolgreicher Eingabe der Anmeldedaten wird über eine andere Kommunikationsoberfläche ein Code übermittelt auf einem anderen Gerät generiert, der wiederum eingegeben werden muss, um seine Identität zu bestätigen. |
ZUG-7 |
OAuth (Phase 2) Im Frontend Beschreibung: In Phase 2 wird die OAuth-Authentifizierung implementiert, die es Benutzern ermöglicht, sich über Drittanbieter wie Google, Facebook oder andere Plattformen anzumelden. Dabei wird der Benutzer direkt zu einer externen OAuth-Plattform weitergeleitet, um sich zu authentifizieren, und anschließend wieder zurück zur Anwendung. Benötigte Komponenten: 1. Button für die Auswahl des OAuth-Anbieters (z. B. Google, Facebook) 2. Weiterleitung zur OAuth-Anmeldeseite des Anbieters 3. Empfang und Verarbeitung des Tokens nach erfolgreicher Anmeldung Technologien:
1. Framework:
2. HTTP-Anfragen:
3. Sicherheitsmaßnahmen:
4. Styling:
5. Token-Handling:
6. Datenbank: Backend: Authentifizierung mittels LinkedIn Account. Hierfür muss im Backend ein Mapping geführt werden, welcher LinkedIn Account, zu welchem von unseren Accounts gehört. In einer weiteren Ausbaustufe kann man vielleicht gleich das ganze Profil von LinkedIn mit dem eigenen Abgleichen. |
ZUG-8 |