Compare commits

...

22 Commits

Author SHA1 Message Date
1e3c710d70 ScB-2-4 2025-02-16 21:48:33 +00:00
4acf19848b ScB-1 2025-02-16 21:48:33 +00:00
8a6984a04e RED-5 2025-02-16 21:48:33 +00:00
c01a49da7d RED-4 2025-02-16 21:48:33 +00:00
bf2e0a1aa2 HW-13 2025-02-16 21:48:33 +00:00
f8679af95a HW-12 2025-02-16 21:48:33 +00:00
fc660d86e3 HW-5, HW-6, HW-8 2025-02-16 21:48:33 +00:00
2e647d753d HW3-8 html2md Tabelle 2025-02-16 21:48:33 +00:00
c5e6e3accb bilder von youtrack für wiki (tickets 2025-02-16 21:36:36 +00:00
12248e4c2e pflichtenheft.md aktualisiert
Aft geändert
2025-02-16 21:30:12 +00:00
583e5b3a13 pflichtenheft.md aktualisiert
Hof Aus Aft Pro Fertig
2025-02-16 21:30:12 +00:00
f10b78eb96 Bilder von Youtrack für Wiki 2025-02-16 20:33:29 +00:00
e0d314fd2a Bilder für Wiki 2025-02-16 20:10:51 +00:00
1652c0b79a Ausblick_Frontend
Ausarbeitung der Zeiten fürs Frontend der Phase 0
2025-02-10 13:53:06 +00:00
b28377ee1d Snt-3 im Pflichtenheft eingetragen 2025-02-10 10:03:21 +00:00
0c81576f4b pflichtenheft.md aktualisiert 2025-02-10 09:34:58 +00:00
10fbe5e559 pflichtenheft.md aktualisiert 2025-02-10 09:34:58 +00:00
d3c8ef9adc pflichtenheft.md aktualisiert 2025-02-10 09:34:58 +00:00
f6c221bc7c Neuer Patch
Ismails part
2025-02-10 09:34:58 +00:00
2e7a610833 pflichtenheft.md aktualisiert 2025-02-10 09:34:17 +00:00
831743383f pflichtenheft.md aktualisiert 2025-02-10 09:34:17 +00:00
6462dade43 pflichtenheft.md aktualisiert 2025-02-10 07:32:52 +00:00
9 changed files with 74 additions and 36 deletions

21
Ausblick_Frontend Normal file
View File

@ -0,0 +1,21 @@
**Amar:**
zug1, zug2 : Phase 1, wenn es sich ausgeht
zug6 müssen funktionieren: Phase0 : 2h
zug3 -zug4 zusammen nachher : Phase 1, wenn es sich ausgeht
**Adam:**
Aus1,Aus2, kann erst machen, wenn Danis angefangen(Datenform ?) : 4h
Aft1, Aft2, Aft3 gleichzeitig mit Danis , Anmeldeformular, Absage, Zusage Formular : 3h
**Ismail:**
Sw1 -Sw2 warten bis Adam und Amar fertig 5h
Dsc1 , Dsc2 wenn Adam und Amar fertig sind 5h
Sw3 anschauen Octane 14h

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

2
Wiki-Bilder/Readme.md Normal file
View File

@ -0,0 +1,2 @@
# Einführung
Hier kann man alle Bilder hochladen die für die Wiki-Pages benötigt werden

Binary file not shown.

After

Width:  |  Height:  |  Size: 846 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 889 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 KiB

View File

@ -71,8 +71,9 @@
*Phase 2: Schülerzugang braucht mehr Nutzer…. Zugriffe / Tag steigen auch.*
| **300 aktuellen Nutzern** <br>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 |
|Anforderung|ID|
| --- | --- |
| **300 aktuellen Nutzern** <br>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** <br>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** <br>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 |
@ -80,7 +81,13 @@
Phase 2: Schülerzugang braucht mehr Nutzer…. Zugriffe / Tag steigen auch.
<table><tbody><tr><th><p><strong>Die Anwendung wird auf einem Cloud-Server betrieben, der skalierbar ist, um den Anforderungen eines wachsenden Benutzerstamms gerecht zu werden.</strong></p></th><th><p>HW-4</p></th></tr><tr><td><p><strong>Hochverfügbar: 99.5%</strong></p><p>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.</p></td><td><p>HW-5</p></td></tr><tr><td><p><strong>Datenbank und Anwendung muss redundant und gegen Ausfall eines Servers gesichert sein.</strong></p><p>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:</p><ul><li>Datenbankreplikation</li><li>Regelmäßige Backups und Datenwiederherstellung</li></ul></td><td><p>HW-6</p></td></tr><tr><td><p><strong>.Net Runtime muss unterstützt werden</strong><br>Die Anwendung muss die .NET Runtime unterstützen, um eine reibungslose Ausführung von .NET-basierten Anwendungen zu ermöglichen.</p></td><td><p>HW-7</p></td></tr><tr><td><p><strong>Sicherheit und administrativer Zugriff:</strong></p><p>Der Zugriff auf die Anwendung und die Infrastruktur muss jederzeit gegeben sein. Dies kann durch die Implementierung von:</p><ul><li>SSH-Zugriff für Administratoren</li><li>VPN-Verbindung (Virtual Private Network) für eine sichere und verschlüsselte Verbindung</li><li>Zugriffskontrolle und Authentifizierung, um den Zugriff auf autorisierte Personen zu beschränken</li></ul><p>erreicht werden.</p></td><td><p>HW-8</p></td></tr></tbody></table>
|Anforderung|ID|
| --- | --- |
| **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%** <br>Damit diese Anforderung auch im Falle eines gröberen Ausfalls eingehalten werden kann, muss es diverse Dokumentation und Anleitungen zum Wiederherstellungsprozesses geben. Es wird ein eigenes Desaster Recovery Handbuch geben. Damit diverse Probleme schnell erkannt werden, wird es ein rudimentäres Logging geben. (Wie viele Requests? Ressourcenverbrauch? Durchschnittliche antwortzeit des Servers...) Sollte einer dieser Werte auffällig weit aus der Norm fallen, wird der Absolventenverein, sowie diese Diplomarbeitsgruppe automatisch benachrichtigt, damit mit untersuchungen / gegenmaßnahmen in angriff genommen.<br> *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.** <br> Die Datenbank wird auf beiden Servern repliziert vorhanden sein. Ob das ein warm-standby, hot-standby, oder gar eine Multi-Master Replizierung wird, muss noch entschieden werden. Im Falle eines Ausfalls einer der beiden DBs, soll die andere automatisch zum neuen Master "promoted" werden, wodurch die Anwendung ohne einen groß Merkbaren ausfall direkt weiter ausgeführt werden kann. <br> Außerdem soll regelmäßig ein Backup von der gesamten Datenbank gemacht werden, welches auf einem unabhängigen File Server/Provider gelagert wird, um im Falle eines Datenverlustes die DB wiederher zu stellen. *<br> 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:</p><ul><li>Datenbankreplikation</li><li>Regelmäßige Backups und Datenwiederherstellung</li></ul>* | HW-6 |
| **.Net Runtime muss unterstützt werden** <br> Die Anwendung muss die .NET Runtime unterstützen, um eine reibungslose Ausführung von .NET-basierten Anwendungen zu ermöglichen. | HW-7 |
| **Sicherheit und administrativer Zugriff:** <br> Der Administrative zugriff auf das System geschieht über eine SSH Verbindung, welche nur duch eine VPN (Wireguard) aufgebaut werden kann. Die Authentifizierung (der VPN und SSH) wird über Schlüsselpaare gemacht, um sicherer gegenüber bruteforce Angriffe zu sein. <br> Der Zugriff auf die Anwendung und die Infrastruktur muss jederzeit gegeben sein. Dies kann durch die Implementierung von:</p><ul><li>SSH-Zugriff für Administratoren</li><li>VPN-Verbindung (Virtual Private Network) für eine sichere und verschlüsselte Verbindung</li><li>Zugriffskontrolle und Authentifizierung, um den Zugriff auf autorisierte Personen zu beschränken</li></ul> erreicht werden. | HW-8 |
## Anforderungen an den Bedienrechner / das mobile Endgerät
@ -91,9 +98,9 @@ Phase 2: Schülerzugang braucht mehr Nutzer…. Zugriffe / Tag steigen auch.
## Anforderungen an das Backup, Recovery und Desaster-Recovery
| **Automatisierte Datensicherung**<br><br>Zur Erhöhung der Datensicherheit soll über das Komplettsystem eine automatisierte Datensicherung erfolgen. (Versionen / Binaries der Anwendungen, Konfigurationsdateien und Nutzerdaten) | HW-12 |
| **Automatisierte Datensicherung**<br>Zur Erhöhung der Datensicherheit soll über das Komplettsystem eine automatisierte Datensicherung erfolgen. Versionen / Binaries der Anwendungen, Konfigurationsdateien und Nutzerdaten, die Datenbank... Diese Dateien werdenauf einem unbhängigen File Server gelagert. Die Binaries sollen nur bei Updates unserer Software ausgetauscht werden, Konfigurationen bei Änderung erneuert gesichert und die Datenbank mit Nutzerdaten in einem regelmäßigen Zeitfenster. (Vielleicht misbrauchen wir einfach ein Git Repository, das ist vorallem für die Versionierung und Automatisierung dieser Backups sehr gut geeignet) | HW-12 |
| --- | --- |
| **Wiederherstellungszeitraum**<br><br>Die Wiederherstellung des Servers im Falle eines Ausfalls (des Rechenzentrums) muss innerhalb von **einem Tag** gewährleistet sein. Also nach 24 Stunden muss das System wieder in einen benutzbaren Zustand gebracht werden | HW-13 |
| **Wiederherstellungszeitraum**<br><br> <>Das gehört mMn. nach oben zu allgemeine Anforderungen und ausgetauscht mit HW-5<> Die Wiederherstellung des Servers im Falle eines Ausfalls (des Rechenzentrums) muss innerhalb von **einem Tag** gewährleistet sein. Also nach 24 Stunden muss das System wieder in einen benutzbaren Zustand gebracht werden | HW-13 |
| **Dokumentation zum Wiederherstellungsverfahren muss vorhanden sein.**<br><br>Schritt für Schritt Anweisungen zum Wiederherstellen des Systems | HW-14 |
## Anforderungen an Redundanz und Verfügbarkeit
@ -109,31 +116,36 @@ Redundanzeigenschaften Bespr. Mit Hr. Prof. Gürth
### Verfügbarkeitsanforderungen
| **99% / Jahr (87.6h)**<br><br>Das System soll weniger als 90 Stunden im Jahr ausfallen. | RED-4 |
| **99% / Jahr (87.6h)**<br>Durch eine schnelle Wiederherstellungszeit und klar vorgegebene Disaster Recovery Dokumentation und resilienz in der Architektur des Systems, sowie ein Monitoring und Logging zur frühen Erkennung etwaiger Probleme werden die 99% / Jahr eingehalten werden.<br>Das System soll weniger als 90 Stunden im Jahr ausfallen. | RED-4 |
| --- | --- |
| **Wiederherstellungszeit: the next business day**<br><br>Das System soll bis zum übernächsten Werktag wieder in einen Nutzbaren zustand bringbar sein. | RED-5 |
| **Wiederherstellungszeit: the next business day**<br>Durch weitgehende automatisierte Skripte soll der Wiederherstellungsprozess vereinfacht werden. Ein Desaster-Recovery Handbuch liegt bei, um den Benutzer schritt für Schritt durch den Wiederherstellungsprozess zu begleiten.<br>Das System soll bis zum übernächsten Werktag wieder in einen Nutzbaren zustand bringbar sein. | RED-5 |
| | |
## Schnittstellen
### Schnittstellen zu eigenen Systemen
| RestAPI (Frontend / Backend)<br><br>Zwischen Datenbank und C#<br><br>Die Umsetzung einer RESTAPI umfasst die Planung von Endpunkten, Backend-Entwicklung, Datenbankanbindung | SnT-1 |
| Anforderung | ID |
| --- | --- |
| RestAPI (Frontend / Backend)<br><br>1. Zielsetzung <br>Die geplante REST API soll in die Oqtane-CMS-Umgebung integriert werden, um eine dynamische Kommunikation zwischen dem CMS und einer Website zu ermöglichen. Sie dient dazu, Inhalte und Funktionen des CMS über die API für die Website verfügbar zu machen und ermöglicht dynamische CRUD-Operationen (Create, Read, Update, Delete) direkt aus dem CMS heraus.<br><br>2. Aufgabenbeschreibung<br>Die Aufgabe umfasst:<br>Integration in Oqtane: Erweiterung des Oqtane-CMS mit zusätzlichen Modulen und APIs.<br>Entwicklung der REST API: Bereitstellung von Endpunkten zur Interaktion zwischen CMS-Daten und Website.<br>Frontend-Integration: Anbindung der Website an die API, um CMS-Inhalte dynamisch darzustellen.<br>Sicherheitsimplementierung: Absicherung der API und des Datenflusses zwischen CMS und Website.<br><br>3. Sicherheitsanforderungen<br>Authentifizierung:<br>Verwendung von Oqtane's integriertem Benutzermanagement und JWT für Authentifizierung.<br>Sicherstellung, dass Benutzerrollen (z. B. Admin, Editor, User) berücksichtigt werden.<br>Autorisierung:<br>Zugriff auf Endpunkte wird basierend auf Benutzerrollen gesteuert.<br>Sensible Aktionen (z. B. Inhalte löschen) nur für berechtigte Benutzer möglich.<br>Eingabedatenvalidierung:<br>Eingaben im Frontend und Backend validieren.<br>API-Schutz:<br>Schutz gegen CSRF, XSS, und andere Angriffe.<br>Nutzung von HTTPS.<br><br>4. Nicht-funktionale Anforderungen<br>Performance: Antwortzeiten der API < 300ms für häufige Anfragen.<br>Kompatibilität: Vollständig kompatibel mit Oqtane-Modulen und Standard-Datenstrukturen.<br>Skalierbarkeit: Möglichkeit, neue Module und API-Endpunkte ohne größere Umbauten zu integrieren.<br>Internationalisierung: Unterstützung mehrsprachiger Inhalte.<br><br>5. Technische Umsetzung<br>5.1. Backend (Oqtane CMS)<br>Framework: ASP.NET Core, integriert in Oqtane.<br>Architektur:<br>Erweiterung des Oqtane-CMS durch Module.<br>Nutzung der Oqtane-Service-API und Datenzugriff über die vorhandene Architektur.<br>Erstellung benutzerdefinierter APIs mit .Controllers und Abbildung auf Oqtane-Tabellen.<br>5.2. Frontend<br>Technologien:<br>JavaScript-Frameworks wie React, Angular oder Vue.js.<br>Integration der REST API über Bibliotheken wie Axios oder die Fetch API.<br>Darstellung der Inhalte aus Oqtane in dynamischen Komponenten (z. B. Listen, Detailansichten).<br>API-Integration:<br>Frontend ruft Inhalte direkt von der REST API ab.<br>Dynamische Aktualisierung der Inhalte durch Benutzeraktionen (z. B. Formularübermittlung).<br>5.3. Sicherheit<br>Authentifizierung:<br>Authentifizierung über JWT-Token (Login-Endpunkte in Oqtane).<br>Speicherung von Token im sicheren Speicher (z. B. HttpOnly Cookies).<br>Eingabeverarbeitung:<br>Validierung von Daten im Frontend und Backend.<br>Schutz vor schädlichen Nutzereingaben (z. B. SQL-Injection).<br><br>6. Erfolgskriterien<br>Die Website kann nahtlos mit der Oqtane-REST API interagieren.<br>Die API erfüllt alle funktionalen Anforderungen und ist in die Oqtane-Datenstruktur integriert.<br>Sichere und performante Bereitstellung der API.<br>Modularer Aufbau, der zukünftige Erweiterungen unterstützt.<br><br> | SnT-1 |
### Schnittstellen zu anderen Systemen
| SMTP (Email versand)<br><br>C# (Backend) zum Mailserver<br><br>Die Umsetzung von SMTP für den E-Mail-Versand umfasst die Konfiguration eines SMTP-Servers, die Erstellung von E-Mail-Nachrichten im richtigen Format, die Verwendung von SMTP-Befehlen (wie EHLO, MAIL FROM, RCPT TO, DATA), das Senden der E-Mail über den Server. | SnT-2 |
| Anforderung | ID |
| --- | --- |
| LinkedÌn OAuth (Phase 2, oder später)<br><br>Backend zu LinkedIn<br><br>Die Umsetzung von LinkedIn OAuth für die Authentifizierung umfasst die Registrierung einer Anwendung im LinkedIn Developer Portal, die Umleitung des Benutzers zur LinkedIn-Login-Seite zur Zustimmung, das Erhalten eines Zugriffstokens durch den Austausch eines Autorisierungscodes, das Stellen von API-Anfragen mit dem Zugriffstoken und das sichere Management des Tokens zur Optimierung der Benutzererfahrung. | SnT -3 |
| SMTP (Email versand)<br><br>1. Zielsetzung<br>Die Implementierung eines SMTP-basierten E-Mail-Versands in der C#-Backend-Anwendung ermöglicht das Versenden von E-Mails über einen konfigurierten<br> Mailserver. Dies umfasst sowohl systemgenerierte E-Mails (z. B. Bestätigungen, Benachrichtigungen) als auch benutzergenerierte Inhalte.<br>Das Ziel ist eine zuverlässige, sichere und skalierbare Lösung für den E-Mail-Versand.<br><br>2. Aufgabenbeschreibung<br>Die Aufgabe umfasst:<br>Konfiguration des SMTP-Servers: Festlegung von Parametern wie Host, Port, Authentifizierung und Verschlüsselung.<br>Erstellung von E-Mail-Nachrichten: Gestaltung der E-Mails im Text- und HTML-Format.<br>Integration in die C#-Backend-Anwendung: Nutzung von SMTP-Befehlen über .NET-Bibliotheken.<br>Fehlerbehandlung und Logging: Sicherstellung eines robusten Versandprozesses und Nachverfolgung fehlerhafter E-Mails.<br>Sicherheitsmaßnahmen: Schutz der E-Mail-Kommunikation und Verhinderung von Missbrauch.<br><br>3. Dynamischer Versand<br>Benachrichtigungs-E-Mails:<br>Beispiele: Willkommens-E-Mails, Passwort-Zurücksetzen, Bestellbestätigungen.<br>Dynamische Platzhalter (z. B. {Name}, {Bestellnummer}) für personalisierte Inhalte.<br>Massen-E-Mails:<br>Versand an mehrere Empfänger (z. B. Newsletter).<br>Nutzung von BCC oder sequentiellem Versand.<br>3.1 Fehler- und Zustellungsmanagement<br>Protokollierung von fehlgeschlagenen E-Mails (z. B. ungültige Adresse, Verbindung zum SMTP-Server fehlgeschlagen).<br>Rückmeldung an die Anwendung, wenn der Versand erfolgreich war.<br>Möglichkeit zur späteren Wiederholung fehlgeschlagener E-Mails.<br><br>4. Nicht-funktionale Anforderungen<br>Performance:<br>E-Mails sollen innerhalb von 3 Sekunden pro Nachricht versendet werden.<br>Unterstützung von mindestens 100 gleichzeitigen E-Mails bei Massenversand.<br>Skalierbarkeit:<br>Vorbereitung auf den Versand von bis zu 10.000 E-Mails pro Tag.<br>Sicherheit:<br>Verschlüsselung der Verbindung zum SMTP-Server (TLS/SSL).<br>Schutz vor Spam und Missbrauch (z. B. Rate-Limiting).<br>Kompatibilität:<br>Unterstützung moderner E-Mail-Clients (z. B. Gmail, Outlook, Thunderbird).<br>Sicherstellung der Anzeige von HTML-E-Mails auf Desktop- und Mobilgeräten.<br><br>5. Technische Umsetzung<br>5.1. Backend<br>Framework: ASP.NET Core.<br>Bibliotheken:<br>Verwendung von .NET System.Net.Mail oder externen Bibliotheken wie MailKit oder FluentEmail für erweiterten SMTP-Support.<br>Architektur:Erstellung eines SMTP-Services:Methoden für das Versenden von einfachen und komplexen E-Mails.Unterstützung für Anhänge und Templates.<br><br>5.2. Sicherheit<br>Schutz der Zugangsdaten:<br>Verwendung eines Secret Managers oder von Umgebungsvariablen für SMTP-Zugangsdaten.<br>Rate Limiting:<br>Begrenzung der Anzahl der E-Mails pro Zeitspanne, um Serverüberlastung zu vermeiden.<br>Spam-Prävention:<br>Konfiguration von SPF, DKIM und DMARC auf der Mailserver-Seite.<br><br>6. Erfolgskriterien<br>Alle E-Mails werden zuverlässig und sicher über den SMTP-Server versendet.<br>Personalisierte Nachrichten und Anhänge werden korrekt verarbeitet.<br>Robustheit gegen typische Fehler und Schutz vor Missbrauch.<br><br>| SnT-2 |
| LinkedÌn OAuth (Phase 2, oder später)<br><br>Backend zu LinkedIn<br><br>1. Zielsetzung<br>Implementierung von LinkedIn OAuth 2.0 für die Authentifizierung und den Abruf von Profildaten in der C#-Backend-Anwendung.<br><br>2. Anforderungen<br>Registrierung der App im LinkedIn Developer Portal.<br>OAuth 2.0 Authentifizierungsablauf:<br>Weiterleitung zur LinkedIn-Login-Seite.<br>Empfang des Autorisierungscodes.<br>Austausch des Codes gegen ein Zugriffstoken.<br>Abruf von Benutzerinformationen (Vorname, Nachname, E-Mail).<br>Sicheres Token-Management (kein Speichern von Zugangsdaten in der Datenbank).<br><br>3. Technische Umsetzung<br>Backend: ASP.NET Core<br>API-Endpunkte:<br>/auth/linkedin (Weiterleitung zur LinkedIn-Login-Seite).<br>/auth/linkedin/callback (Empfang des Codes).<br>/api/user/profile (Abruf von LinkedIn-Daten mit Token).<br>Sicherheit:<br>Nutzung von HTTPS und PKCE.<br>Speicherung von Tokens nur im Cache (z. B. Redis).<br>Einschränkung der API-Berechtigungen (r_liteprofile, r_emailaddress).<br><br>4. Erfolgskriterien<br>Benutzer können sich sicher über LinkedIn anmelden.<br>Zugriffstoken werden sicher verarbeitet.<br>API-Datenabruf funktioniert zuverlässig.<br> | SnT -3 |
# Anforderungen an die Software
## Allgemeine Anforderungen
| Mit allen Modernen Webbrowser kompatibel (Chrome, Firefox, Safari und Edge)<br><br>Dass die Website oder Webanwendung so entwickelt wird, dass sie in den gängigsten und aktuellen Webbrowsern einwandfrei funktioniert. | SW-1 |
| --- | --- |
| Barrierefreiheit (WAI-ARIA-Standard) ...<br><br>Bezieht sich auf die Verwendung von ARIA-Attributen, um Webinhalte und für Menschen mit Behinderungen zugänglich zu machen. Um insbesondere dynamische Inhalte und moderne interaktive Webelemente (wie Dropdown-Menüs, Sliders,) für Menschen mit Einschränkungen nutzbar zu machen, die Screenreader oder andere Hilfstechnologien verwenden. | SW-2 |
| Die Website oder Webanwendung wird so entwickelt, dass sie in den aktuellen und vorherigen Versionen der gängigsten Webbrowser einwandfrei funktioniert: </p><p> Google Chrome (Desktop und Mobile) <br>Mozilla Firefox (Desktop und Mobile)<br>Safari (macOS und iOS)<br>Microsoft Edge (Chromium-basiert)</p><p> 1. Programmiersprachen und Standards: <br> -Die Entwicklung erfolgt auf Basis moderner Technologien wie HTML5, CSS3 für eine plattformübergreifende Funktionalität.</p><p> 2. Frameworks und Bibliotheken: <br> -Frameworks wie React, Angular oder Vue.js (für die Frontend-Entwicklung) sowie CSS-Frameworks wie Bootstrap oder TailwindCSS können zum Einsatz kommen.</p><p> 3. Build-Tools: <br> -Tools wie Webpack, Vite oder Parcel werden zur Optimierung der Assets (z. B. Minifizierung und Bundling von Dateien) verwendet,um die Performance auf verschiedenen Browsern zu gewährleisten. <br><br> | SW-1 |
| Barrierefreiheit (WAI-ARIA-Standard) ...</p><p> <b> 1. Verwendung von ARIA-Attributen: </b> <br> -Semantik und Bedienbarkeit durch role, aria-label, aria-expanded, aria-live etc. verbessern.<br>-Dynamische Inhalte und interaktive Elemente mit Attributen wie aria-controls oder aria-describedby ausstatten. </p><p> <b> 2. Technologien und Tools:</b> <br>-Unterstützung durch Frameworks (z. B. React, Angular) und CSS-Frameworks (z. B. Bootstrap). <br>-Einsatz von Tools wie Axe, Lighthouse oder eslint-plugin-jsx-a11y zur Validierung. </p><p> <b> 3. Tastaturbedienbarkeit und Kontraste:</b> <br>-Sicherstellen, dass alle Inhalte per Tastatur erreichbar sind.<br> -Einhalten der Kontrastvorgaben gemäß WCAG 2.1 Stufe AA. <br><br> | SW-2 |
| **CMS**: <br>Das System soll einen redaktionellen Schülerzugagng bieten, damit die Diplomarbeiten von Schülern selbst eingepflegt werden können. | SW-3 |
## Zugriffsverwaltung
@ -223,7 +235,7 @@ Validierung der Eingaben (z.B. E-Mail-Adresse, Datum) vor der Erstellung und dem
<p>Frontend:</p>
<p>Die Magic Link Authentifizierung ist eine Methode der Benutzeranmeldung, bei der anstelle eines Passworts ein einmaliger Login-Link an die E-Mail-Adresse des Benutzers gesendet wird. Wenn der Benutzer auf diesen Link klickt, wird er automatisch und sicher in die Anwendung eingeloggt.</p>
<p>Backend:</p>
<p>Benutzerregistrierung:
<p>Benutzerregistrierung::
Implementierung einer Funktion zur Registrierung potenzieller Benutzer, die ihre E-Mail-Adresse und andere erforderliche Informationen erfasst.
E-Mail-Versand:
Nach der Registrierung muss eine E-Mail an die angegebene Adresse gesendet werden, die einen Authentifizierungslink enthält.
@ -296,11 +308,11 @@ Protokollierung aller Authentifizierungsversuche und der zugehörigen LinkedIn-D
## Hall of Fame (Phase 2)
| PDF-Generierung<br><br>Frontend: <br>Die PDF-Generierung im Frontend der Hall of Fame für Treffen ermöglicht es Nutzern, ihre persönlichen Erfolge in einem ansprechenden Dokument festzuhalten. Jedes PDF enthält ein Bild der Person sowie eine Übersicht über ihre Schullaufbahn, berufliche Stationen und besondere Leistungen. Diese Dokumente können dann ausgedruckt und aufgehängt werden | HoF-1 |
| PDF-Generierung<br><br>Frontend: <br>Das System muss eine PDF-Generierung im Frontend der Hall of Fame für Treffen ermöglichen. Nutzer sollen ihre persönlichen Erfolge in einem ansprechenden Dokument festhalten können. Jedes PDF soll ein Bild der Person sowie eine Übersicht über ihre Schullaufbahn, berufliche Stationen und besondere Leistungen enthalten. Diese Dokumente sollen anschließend ausgedruckt und zur Präsentation verwendet werden können. | HoF-1 |
| --- | --- |
| Online Hall of Fame<br><br>Frontend: <br>Die Online Hall of Fame im Frontend für Treffen bietet eine Plattform, auf der Nutzer ihre Erfolge und besonderen Leistungen präsentieren können. | HoF-2 |
| OptIn Modell für Benutzer<br><br>Frontend: <br>Das Opt-In-Modell im Frontend der Hall of Fame für Treffen ermöglicht es Nutzern, aktiv zu entscheiden, ob sie in die Ruhmeshalle aufgenommen werden möchten. Durch eine einfache Zustimmung können sie ihre Erfolge und Beiträge sichtbar machen, während sie gleichzeitig die Kontrolle über ihre Daten behalten und sicherstellen, dass nur die gewünschten Informationen geteilt werden. | HoF-3 |
| Löschantrag<br><br>Frontend: <br>Im Frontend der Hall of Fame für Treffen haben Nutzer die Möglichkeit, einen Löschantrag zu stellen, um ihre Einträge zu entfernen oder bestimmte Informationen zu löschen. Diese Funktion bietet den Nutzern die Kontrolle über ihre Präsenz und ermöglicht es ihnen, ihre Daten nach Bedarf anzupassen, während sie gleichzeitig die Möglichkeit haben, ihre Erfolge zu verwalten. | HoF-4 |
| Online Hall of Fame<br><br>Frontend: <br>Das System muss eine Online Hall of Fame im Frontend bereitstellen, die es Nutzern ermöglicht, ihre Erfolge und besonderen Leistungen zu präsentieren. Diese Plattform soll eine ansprechende und motivierende Darstellung von Nutzerbeiträgen bieten, sodass herausragende Leistungen sichtbar gemacht und gewürdigt werden können. | HoF-2 |
| OptIn Modell für Benutzer<br><br>Frontend: <br>Das System muss ein Opt-In-Modell im Frontend der Hall of Fame für Treffen bereitstellen, das es Nutzern ermöglicht, aktiv zu entscheiden, ob sie in die Ruhmeshalle aufgenommen werden möchten. Durch eine einfache Zustimmung können Nutzer ihre Erfolge und Beiträge sichtbar machen, während sie gleichzeitig die Kontrolle über ihre Daten behalten und sicherstellen, dass nur die gewünschten Informationen geteilt werden. | HoF-3 |
| Löschantrag<br><br>Frontend: <br>Das System muss ein Opt-In-Modell im Frontend der Hall of Fame für Treffen bereitstellen, das es Nutzern ermöglicht, aktiv zu entscheiden, ob sie in die Ruhmeshalle aufgenommen werden möchten. Durch eine einfache Zustimmung können Nutzer ihre Erfolge und Beiträge sichtbar machen, während sie gleichzeitig die Kontrolle über ihre Daten behalten und sicherstellen, dass nur die gewünschten Informationen geteilt werden. | HoF-4 |
## Firmen und Jobstellenmarkt (Phase 2)
@ -311,10 +323,13 @@ Protokollierung aller Authentifizierungsversuche und der zugehörigen LinkedIn-D
## Premiumbereich (Phase 2)
| Verwaltung der Premiumkunden<br><br>Die Verwaltung eines Premium-Kunden umfasst die Identifizierung und Segmentierung, das Erstellen eines individuellen Profils, das Anbieten maßgeschneiderter Dienstleistungen, regelmäßige Kommunikation, exklusive Angebote, das Sammeln von Feedback und die Überwachung der Kundenzufriedenheit. | PRE-1 |
| <b>Verwaltung der Premiumkunden</b> </p><p> 1. Benutzerverwaltung:<br> - Identifikation und Segmentierung der Premiumkunden.<br> -Erstellung und Verwaltung individueller Kundenprofile.<b> <p/><p> 2. Serviceverwaltung: <br> -Bereitstellung maßgeschneiderter Dienstleistungen und Angebote. <br> -Exklusive Inhalte oder Angebote für Premiumkunden.<br> </p><p> 3. Kommunikationssystem:<b> -Regelmäßige und personalisierte Kommunikation über E-Mail, Push-Benachrichtigungen oder Messaging-Dienste.<b> 4. Feedback- und Zufriedenheitstools:<b> -Sammlung von Kundenfeedback <br> -Tools zur Überwachung und Analyse der Kundenzufriedenheit.</p><p> Technologien: <br> -Datenbank: MySQL, PostgreSQL oder MongoDB zur Speicherung von Kundeninformationen und Präferenzen.<br> -CRM-System: Salesforce, HubSpot oder eine Eigenentwicklung zur Kundenverwaltung.<br> -Kommunikation: SMTP (z. B. SendGrid) für E-Mails,Websockets für Echtzeitkommunikation.<br> -Datenanalyse: Tools wie Power BI oder Google Analytics zur Zufriedenheitsüberwachung.</p><p>
| PRE-1 |
| --- | --- |
| Ingenieurantrag<br><br>Ein Ingenieurantrag umfasst die Vorbereitung der Unterlagen, das Ausfüllen des Antragsformulars, die Einreichung bei der Behörde, die Prüfung und Genehmigung des Antrags sowie die Dokumentation für zukünftige Referenzen. | PRE-2 |
| Matura & Klassentreffen organisieren<br><br>Die Organisation eines Matura- und Klassentreffens umfasst die Festlegung von Datum und Ort, die Erstellung einer Gästeliste, das Versenden von Einladungen, die Planung des Programms und die Koordination von Verpflegung und Dekoration. | PRE-3 |
| <b>Ingenieurantrag <b> </p><p> -Ein Ingenieurantrag umfasst die Vorbereitung der Unterlagen, das Ausfüllen des Antragsformulars, die Einreichung bei der Behörde, die Prüfung und Genehmigung des Antrags sowie die Dokumentation für zukünftige Referenzen.</p><p> Technologien und Komponenten:<br> -Dokumentenmanagementsystem (DMS): Für die Verwaltung und Archivierung der erforderlichen Unterlagen.<br> -Online-Formularsystem: Zur Eingabe und Übermittlung der Antragdaten.<br> -Behördenportale: Nutzung digitaler Plattformen für die Einreichung.<br> -Projektmanagement-Tool: Zur Nachverfolgung der Bearbeitungsschritte und Fristen.<br> -Kommunikationsplattformen: Für Rückfragen mit Behörden. | PRE-2 |
| <b>Matura & Klassentreffen organisieren</b></p><p> -Die Organisation eines Matura- und Klassentreffens umfasst die Festlegung von Datum und Ort, die Erstellung einer Gästeliste, das Versenden von Einladungen, die Planung des Programms und die Koordination von Verpflegung und Dekoration.</p><p> <b>Technologien und Komponenten:</b><br> -Doodle oder ähnliche Umfragetools: Zur Abstimmung von Datum und Ort.<br>-Excel/Google Sheets: Für die Erstellung und Verwaltung der Gästeliste.<br> -E-Mail-Marketing-Tools: Zum Versenden von Einladungen.<br> -Eventmanagement-Plattformen: Für Programmentwurf und Aufgabenverteilung.<br> -Cloud-basierte Kalender und Tools: Für die Koordination von Verpflegung und Dekoration. | PRE-3 |
## Auswertungen
@ -322,9 +337,9 @@ Mehr Prosa (Unterscheidung Phase 1 & 2)
| <br>Dashboard<br>Frontend: <br>Anforderung:<br>Das Frontend der Webanwendung soll ein Dashboard bereitstellen, das die letzten Anmeldeaktivitäten des Benutzers anzeigt, schnelle Optionen zur Sicherheitsverwaltung bietet und Benachrichtigungen zu neuen Login-Versuchen ermöglicht. Das Dashboard soll die Benutzerfreundlichkeit und Transparenz im Umgang mit sicherheitsrelevanten Informationen gewährleisten.<br>Beschreibung der Funktionalität: <br>1. Anzeige der letzten Anmeldeaktivitäten: <br>- Das Dashboard zeigt eine übersichtliche Liste der letzten Anmeldeaktivitäten, einschließlich Datum, Uhrzeit, Gerät/Browser und Standort (basierend auf der IP-Adresse).<br>- Ungewöhnliche oder verdächtige Aktivitäten werden visuell hervorgehoben (z. B. durch farbliche Markierungen oder Warnsymbole). <br>- Eine Funktion zur Markierung von Aktivitäten als „verdächtig“ ermöglicht dem Benutzer, ungewöhnliche Logins direkt zu melden<br>2. Sicherheitsverwaltung:<br>- Das Dashboard enthält direkte Links oder Schaltflächen zu wichtigen Sicherheitsfunktionen, darunter:<br>- Änderung des Passworts<br>- Aktivierung/Deaktivierung der Zwei-Faktor-Authentifizierung (2FA)<br>- Übersicht und Verwaltung aktiver Sitzungen mit der Möglichkeit, einzelne Sitzungen zu beenden<br>- Eine Funktion zur Anzeige und Verwaltung von vertrauenswürdigen Geräten wird bereitgestellt.<br>3. Benachrichtigungen bei neuen Login-Versuchen:<br>- Das Dashboard zeigt Benachrichtigungen zu neuen Login-Versuchen in Echtzeit an, falls diese erkannt werden.<br>- Bei neuen Login-Versuchen aus unbekannten Standorten oder Geräten wird eine zusätzliche Sicherheitsabfrage bereitgestellt (z. B. über E-Mail oder SMS).<br>4. Benutzerfreundlichkeit und Usability:<br>- Die Darstellung der Informationen erfolgt in einem klar strukturierten und leicht verständlichen Format (z. B. Tabellen oder Karten).<br>- Die Sicherheitsoptionen sind intuitiv zugänglich und mit kurzen Erklärungen versehen, um die Benutzerfreundlichkeit zu erhöhen.<br>- Das Design ist responsive und für die Nutzung auf verschiedenen Geräten (Desktop, Tablet, Mobil) optimiert.<br>5. Barrierefreiheit:<br>- Das Dashboard erfüllt Standards zur Barrierefreiheit und unterstützt z. B. Screenreader oder Tastatur-Navigation.<br>- Visuelle Warnhinweise (z. B. zu verdächtigen Aktivitäten) werden durch alternative Texte und Symbole ergänzt<br>Akzeptanzkriterien:<br>- Das Dashboard zeigt die letzten Anmeldeaktivitäten vollständig und korrekt an, einschließlich aller relevanten Details.<br>- Sicherheitsfunktionen wie Passwortänderung, 2FA-Verwaltung und Sitzungsübersicht sind direkt zugänglich und funktionieren einwandfrei.<br>- Benachrichtigungen zu neuen Login-Versuchen werden in Echtzeit angezeigt und ermöglichen eine schnelle Reaktion des Benutzers.<br>- Das Dashboard ist auf verschiedenen Geräten benutzerfreundlich und barrierefrei bedienbar.<br><br>Backend:<br><br>Ein Backend-Dashboard bündelt Systemdaten wie Nutzeraktivität, Serverstatus und Verkaufszahlen in Echtzeit. Es visualisiert KPIs über Diagramme und Tabellen, ermöglicht schnelle Analysen und unterstützt präzise Entscheidungen. Durch Zugriffsrechte und performante Datenbanken bleibt das Dashboard sicher und effizient die zentrale Kontrollstelle für Systemauswertungen | AUS-1 |
| --- | --- |
| Auswertungen erstellen<br><br>Frontend: <br>Erstelle präzise Auswertungen deiner Anmeldedaten: Analysiere Login-Häufigkeit, erkenne verdächtige Aktivitäten und gewinne Einblicke in Nutzerverhalten. Optimiere deine Sicherheitsstrategie<br><br>Backend:<br><br>Für Auswertungen im Backend sind strukturierte Daten, Filter und Algorithmen zur KPI-Berechnung nötig. Diagramme und Tabellen visualisieren die Ergebnisse. Zugriffsrechte sichern die Daten, eine performante Datenbank sorgt für schnelle Analysen so werden Rohdaten in präzise Systemauswertungen verwandelt. | AUS-2 |
| Auswertugnen erstellen 2 (Phase 2)<br><br>Frontend: <br>Login-Standorte und verwendete Geräte aufzeigen. Finde heraus, zu welchen Zeiten die meisten Anmeldungen stattfinden und entdecke potenzielle Sicherheitslücken durch Vergleich der Nutzeraktivitäten. Erhalte zudem detaillierte Statistiken zu fehlgeschlagenen Login-Versuchen und häufig genutzten Wiederherstellungsfunktionen, um gezielt Sicherheitsmaßnahmen zu verbessern.<br><br>Backend:<br><br>Für Backend-Auswertungen benötigt man zuverlässige Datenquellen, Filter und Algorithmen zur Berechnung von Metriken. Eine schnelle Datenbank ermöglicht effiziente Verarbeitung, Visualisierungstools wandeln Ergebnisse in Diagramme und Tabellen um. Zugriffsrechte sichern die Daten so entsteht eine präzise und sichere Analysebasis. | AUS-3 |
| Chart generierung (Phase 2)<br><br>Frontend: <br>Erstelle anschauliche Charts zu Anmeldedaten: Visualisiere Login-Zeiten, regionale Verteilungen und die Anzahl erfolgreicher sowie fehlgeschlagener Anmeldeversuche. Gewinne schnell wertvolle Einblicke in Nutzeraktivitäten und erkenne Trends auf einen Blick.<br><br>Backend:<br><br>Für die Chart-Generierung im Backend benötigt man Rohdaten, die kontinuierlich aus Datenquellen geladen und gefiltert werden. Algorithmen verdichten diese Daten und bereiten sie in aggregierter Form auf. Eine Charting-Bibliothek übernimmt die Visualisierung und wandelt Daten in Balken-, Linien- oder Kreisdiagramme um. Caching sorgt dabei für Geschwindigkeit, und Zugriffsrechte schützen die Daten. Das Ergebnis: klare, visuell aufbereitete Informationen für schnelle Entscheidungen. | AUS-4 |
| Auswertungen erstellen<br><br>Frontend: <br>Das System muss präzise Analysen der Anmeldedaten ermöglichen. Dazu gehören die Erfassung und Auswertung der Login-Häufigkeit, die Identifikation verdächtiger Aktivitäten sowie die Bereitstellung von Einblicken in das Nutzerverhalten. Die Ergebnisse sollen in einer übersichtlichen und interaktiven Darstellung visualisiert werden, um eine optimierte Sicherheitsstrategie zu unterstützen.<br><br>Backend:<br><br>Für Auswertungen im Backend sind strukturierte Daten, Filter und Algorithmen zur KPI-Berechnung nötig. Diagramme und Tabellen visualisieren die Ergebnisse. Zugriffsrechte sichern die Daten, eine performante Datenbank sorgt für schnelle Analysen so werden Rohdaten in präzise Systemauswertungen verwandelt. | AUS-2 |
| Auswertugnen erstellen 2 (Phase 2)<br><br>Frontend: <br>Das System muss detaillierte Analysen zu Login-Standorten und verwendeten Geräten bereitstellen. Es soll ermöglichen, Zeiträume mit der höchsten Anmeldeaktivität zu identifizieren und potenzielle Sicherheitslücken durch den Vergleich von Nutzeraktivitäten aufzudecken. Zusätzlich müssen detaillierte Statistiken zu fehlgeschlagenen Login-Versuchen sowie häufig genutzten Wiederherstellungsfunktionen erfasst und visualisiert werden, um gezielte Sicherheitsmaßnahmen abzuleiten.<br><br>Backend:<br><br>Für Backend-Auswertungen benötigt man zuverlässige Datenquellen, Filter und Algorithmen zur Berechnung von Metriken. Eine schnelle Datenbank ermöglicht effiziente Verarbeitung, Visualisierungstools wandeln Ergebnisse in Diagramme und Tabellen um. Zugriffsrechte sichern die Daten so entsteht eine präzise und sichere Analysebasis. | AUS-3 |
| Chart generierung (Phase 2)<br><br>Frontend: <br>Das System muss eine visuelle Aufbereitung der Anmeldedaten in Form von Charts ermöglichen. Dies umfasst die Darstellung von Login-Zeiten, regionalen Verteilungen sowie der Anzahl erfolgreicher und fehlgeschlagener Anmeldeversuche. Die Visualisierungen sollen eine schnelle Analyse der Nutzeraktivitäten ermöglichen und Trends auf einen Blick erkennbar machen.<br><br>Backend:<br><br>Für die Chart-Generierung im Backend benötigt man Rohdaten, die kontinuierlich aus Datenquellen geladen und gefiltert werden. Algorithmen verdichten diese Daten und bereiten sie in aggregierter Form auf. Eine Charting-Bibliothek übernimmt die Visualisierung und wandelt Daten in Balken-, Linien- oder Kreisdiagramme um. Caching sorgt dabei für Geschwindigkeit, und Zugriffsrechte schützen die Daten. Das Ergebnis: klare, visuell aufbereitete Informationen für schnelle Entscheidungen. | AUS-4 |
## Datenschutz & Informationssicherheit
@ -334,28 +349,28 @@ Mehr Prosa (Unterscheidung Phase 1 & 2)
## Schwarzes Brett (Phase 2)
| **Feed**<br><br>Eine Seite auf den Mitteilungen und Ankündigungen gemacht werden. Hier kann man Events anzeigen lassen, Posts anderer Mitglieder usw. | ScB-1 |
| **Feed**<br>Es muss ein Interface / eine Schnittstelle für alle Elemente, welche am Schwarzen Brett auftauchen geschaffen werden. Dann muss eine API Route für das Abrufen der einzelnen Einträge geschaffen werden. Die gesammte Entwicklung wird in einem Oqtane Modul geschehen. Der Feed priorisiert die Posts vom Absolventenverein und muss die Sichtbarkeitsstufe des Posts berücksichtigen.<br>Eine Seite auf den Mitteilungen und Ankündigungen gemacht werden. Hier kann man Events anzeigen lassen, Posts anderer Mitglieder usw. | ScB-1 |
| --- | --- |
| **Posten**<br><br>Jeder darf posten, solange ihm in der Vergangenheit dieses Privileg nicht weggenommen wurde. Diese Posts werden dann in dem Feed angezeigt. Ein Post kann eine Sichbarkeitsstufe haben (standardmäßig: öffentlich = jeder angemeldete Benutzer) | ScB-2 |
| **Werbung**<br><br>Firmen können Job Inserate schalten, Diplomarbeitskooperationen anbieten usw. Wir stellen die Schnittstelle für diese Firmen bereit, aber um die Abrechnung muss sich gesondert jemand anderer kümmern | ScB-3 |
| **Meldungsvorgang**<br><br>Man kann unangemessene Inhalte melden, diese Meldungen werden dann von Hand durchgeschaut, ob diese den Regeln widersprechen, und kann dem Benutzer über eine Rollenänderung das Privileg des Postens / Interagieren mit anderen Nutzern auf der Seite entfernt werden. | ScB-4 |
| **Posten**<br>Es wird eine neue API Route in dem Modul implementiert, die es ermöglicht eigene Einträge auf dem schwarzen Brett zu posten. Hierfür braucht man nichts wirklich ausgefallenes.<br>Jeder darf posten, solange ihm in der Vergangenheit dieses Privileg nicht weggenommen wurde. Diese Posts werden dann in dem Feed angezeigt. Ein Post kann eine Sichbarkeitsstufe haben (standardmäßig: öffentlich = jeder angemeldete Benutzer) | ScB-2 |
| **Werbung**<br>Um Werbung auf dem schwarzen Brett anbieten zu können, muss mitgezählt werden, welche Posts geladen / gesehen worden sind. Es wird auch eine "Abrechnungsseite" geben, auf der die Kosten Vorgerechnet werden. Um die Abrechnung muss sich der Absolventen Verein selber kümmern.<br>Firmen können Job Inserate schalten, Diplomarbeitskooperationen anbieten usw. Wir stellen die Schnittstelle für diese Firmen bereit, aber um die Abrechnung muss sich gesondert jemand anderer kümmern | ScB-3 |
| **Meldungsvorgang**<br>Es werden neue Knöpfe bei den Posts hinzugefügt, mit denen man einen Post melden kann. Optional mit Angabe eines Grundes. Dieser Post wird sofort offline genommen und dann zur Durchsicht von Seiten des Absolventenvereins markiert. Je nach dem, was der AV dann Beschließt, wird dem Benutzer dann das Recht auf Posten entzogen.<br>Man kann unangemessene Inhalte melden, diese Meldungen werden dann von Hand durchgeschaut, ob diese den Regeln widersprechen, und kann dem Benutzer über eine Rollenänderung das Privileg des Postens / Interagieren mit anderen Nutzern auf der Seite entfernt werden. | ScB-4 |
## Anmeldetool für Treffen
| Event erstellen<br><br>Frontend: <br>Erstelle gezielte Events rund um die Anmeldung: aktiviere Erinnerungen zur Passwortaktualisierung oder plane Warnungen bei mehrfach fehlgeschlagenen Anmeldungen. So behältst du die Kontrolle über alle sicherheitsrelevanten Ereignisse.<br><br>Backend:<br><br>Für die Event-Erstellung im Anmeldetool-Backend benötigt man eine Eingabemaske, eine Datenbank zur Speicherung der Eventdaten und Algorithmen zur Verwaltung von Anmeldungen. Zugriffsrechte sichern die Bearbeitung, und automatische Bestätigungen erleichtern die Teilnehmerverwaltung. | AfT-1 |
| Event erstellen<br><br>Frontend: <br>Das System muss die Erstellung und Verwaltung sicherheitsrelevanter Events im Zusammenhang mit Anmeldungen ermöglichen. Dazu gehören Erinnerungen zur Passwortaktualisierung sowie Warnmeldungen bei mehrfach fehlgeschlagenen Anmeldeversuchen. Diese Funktionen sollen helfen, sicherheitskritische Ereignisse frühzeitig zu erkennen und präventive Maßnahmen zu ergreifen.<br><br>Backend:<br><br>Für die Event-Erstellung im Anmeldetool-Backend benötigt man eine Eingabemaske, eine Datenbank zur Speicherung der Eventdaten und Algorithmen zur Verwaltung von Anmeldungen. Zugriffsrechte sichern die Bearbeitung, und automatische Bestätigungen erleichtern die Teilnehmerverwaltung. | AfT-1 |
| --- | --- |
| Einladungen verschicken<br><br>Frontend: <br>Versende Einladungen für neue Nutzer direkt über das Anmelde-Tool: Ermögliche einfachen Zugang, verfolge den Einladungsstatus und erhalte Benachrichtigungen bei erfolgreicher Anmeldung.<br><br>Backend:<br><br>Für das Versenden von Einladungen im Backend werden Eventdaten aus der Datenbank abgerufen, personalisierte Einladungen erstellt und per E-Mail oder SMS verschickt. Eine API für den Nachrichtentransport und Zugriffsrechte zur Verwaltung sind notwendig. | AfT-2 |
| Einladung beantworten (zu/absagen)<br><br>Frontend: <br>Antworte direkt auf Einladungen: Nimm Einladungen mit einem Klick an oder lehne sie ab. Verwalte deine offenen Einladungen zentral und behalte den Überblick über deine Zugänge sicher und unkompliziert.<br><br>Backend:<br><br>Für das Beantworten von Einladungen im Backend benötigt man eine Datenbank, um die Teilnahmeantworten (Zusage/Absage) zu speichern. Ein Algorithmus verarbeitet die Rückmeldungen und aktualisiert den Eventstatus. Benachrichtigungen informieren den Organisator über Änderungen, während Zugriffsrechte sicherstellen, dass nur berechtigte Teilnehmer ihre Antwort einreichen können. | AfT-3 |
| Kategorisierung (Phase 2)<br><br>Frontend: <br>Die Kategorisierung der Anmeldetools für Treffen ermöglicht eine schnelle Auswahl zwischen „Neue Veranstaltung erstellen“, „An Treffen teilnehmen“ und „Veranstaltungen verwalten“. So wird der Anmeldeprozess intuitiv und effizient. Die Kategorisierung im Frontend der Anmeldetools für Treffen ermöglicht es Nutzern, Veranstaltungen übersichtlich zu filtern und schnell zu erkennen, wer das Event erstellt hat.<br><br>Backend:<br><br>ür die Kategorisierung im Backend eines Anmeldetools werden Kategorien in der Datenbank definiert und mit den Events verknüpft. Ein Algorithmus ordnet jedes Event der entsprechenden Kategorie zu, basierend auf festgelegten Kriterien. Eine benutzerfreundliche Schnittstelle ermöglicht das Hinzufügen oder Bearbeiten von Kategorien. Zugriffsrechte stellen sicher, dass nur autorisierte Nutzer Änderungen vornehmen können. | AfT-4 |
| Zielgruppenfilter (Phase 2)<br><br>Frontend: <br>Der Zielgruppenfilter im Frontend der Anmeldetools für Treffen ermöglicht es Nutzern, gezielt Veranstaltungen zu finden, die ihren Interessen entsprechen. Durch einfache Auswahlmöglichkeiten wird der Zugang zu relevanten Treffen erleichtert, sodass jeder schnell die passenden Optionen entdecken kann.<br><br>Backend:<br><br>Für einen Zielgruppenfilter im Backend eines Anmeldetools werden Teilnehmerdaten erfasst und in der Datenbank gespeichert. Ein Algorithmus analysiert diese Daten und filtert Teilnehmer nach festgelegten Kriterien wie Interessen, Demografie oder Eventpräferenzen. Eine benutzerfreundliche Oberfläche ermöglicht das Erstellen und Anpassen von Zielgruppen. Zugriffsrechte sichern die Daten und stellen sicher, dass nur berechtigte Nutzer die Filter anwenden können. | AfT-5 |
| Einladungen verschicken<br><br>Frontend: <br>Das System ermöglicht die Erstellung und Verwaltung von Events. Administratoren können Events anlegen, Teilnehmer sich anmelden und Benachrichtigungen erhalten. Alle Events und Anmeldungen werden protokolliert.<br><br>Backend:<br><br>Für das Versenden von Einladungen im Backend werden Eventdaten aus der Datenbank abgerufen, personalisierte Einladungen erstellt und per E-Mail oder SMS verschickt. Eine API für den Nachrichtentransport und Zugriffsrechte zur Verwaltung sind notwendig. | AfT-2 |
| Einladung beantworten (zu/absagen)<br><br>Frontend: <br>Das System muss Nutzern ermöglichen, Einladungen direkt anzunehmen oder abzulehnen. Offene Einladungen sollen zentral verwaltet und der Status jederzeit einsehbar sein. Dies gewährleistet eine sichere und unkomplizierte Verwaltung der Zugangsberechtigungen.<br><br>Backend:<br><br>Für das Beantworten von Einladungen im Backend benötigt man eine Datenbank, um die Teilnahmeantworten (Zusage/Absage) zu speichern. Ein Algorithmus verarbeitet die Rückmeldungen und aktualisiert den Eventstatus. Benachrichtigungen informieren den Organisator über Änderungen, während Zugriffsrechte sicherstellen, dass nur berechtigte Teilnehmer ihre Antwort einreichen können. | AfT-3 |
| Kategorisierung (Phase 2)<br><br>Frontend: <br>Das System muss eine Kategorisierung der Anmeldetools für Treffen ermöglichen, um eine intuitive und effiziente Nutzung zu gewährleisten. Nutzer sollen zwischen den Optionen „Neue Veranstaltung erstellen“, „An Treffen teilnehmen“ und „Veranstaltungen verwalten“ wählen können. Zudem soll eine übersichtliche Filterung von Veranstaltungen möglich sein, sodass schnell erkennbar ist, wer das Event erstellt hat.<br><br>Backend:<br><br>ür die Kategorisierung im Backend eines Anmeldetools werden Kategorien in der Datenbank definiert und mit den Events verknüpft. Ein Algorithmus ordnet jedes Event der entsprechenden Kategorie zu, basierend auf festgelegten Kriterien. Eine benutzerfreundliche Schnittstelle ermöglicht das Hinzufügen oder Bearbeiten von Kategorien. Zugriffsrechte stellen sicher, dass nur autorisierte Nutzer Änderungen vornehmen können. | AfT-4 |
| Zielgruppenfilter (Phase 2)<br><br>Frontend: <br>Das System muss einen Zielgruppenfilter für Anmeldetools bereitstellen, der es Nutzern ermöglicht, gezielt Veranstaltungen zu finden, die ihren Interessen entsprechen. Durch intuitive Auswahlmöglichkeiten soll der Zugang zu relevanten Treffen erleichtert werden, sodass passende Optionen schnell entdeckt werden können.<br><br>Backend:<br><br>Für einen Zielgruppenfilter im Backend eines Anmeldetools werden Teilnehmerdaten erfasst und in der Datenbank gespeichert. Ein Algorithmus analysiert diese Daten und filtert Teilnehmer nach festgelegten Kriterien wie Interessen, Demografie oder Eventpräferenzen. Eine benutzerfreundliche Oberfläche ermöglicht das Erstellen und Anpassen von Zielgruppen. Zugriffsrechte sichern die Daten und stellen sicher, dass nur berechtigte Nutzer die Filter anwenden können. | AfT-5 |
## Profilverwaltung
| Profil erstellen<br><br>Frontend: <br>Die Profilverwaltung im Frontend für Treffen erlaubt Nutzern, ein individuelles Profil zu erstellen, das ihre Interessen und Präferenzen widerspiegelt. Mit einfachen Eingabefeldern können sie persönliche Informationen und vergangene Veranstaltungen hinzufügen, um passende Treffen zu finden.<br><br>Backend:<br><br>Für die Profilverwaltung im Backend werden Eingabefelder für persönliche Informationen benötigt, die in einer Datenbank gespeichert werden. Ein Algorithmus validiert die Eingaben und stellt sicher, dass alle erforderlichen Daten korrekt erfasst werden. Zugriffsrechte sichern, dass nur autorisierte Nutzer Profile erstellen können, während eine Schnittstelle das Hinzufügen oder Bearbeiten von Profilen ermöglicht. | Pro-1 |
| Profil erstellen <br><br>Frontend: <br>Das System muss eine Profilverwaltung im Frontend bieten, die es Nutzern ermöglicht, ein individuelles Profil zu erstellen. Nutzer sollen ihre Interessen, Präferenzen sowie persönliche Informationen einfach eingeben können. Zudem sollen sie vergangene Veranstaltungen hinzufügen können, um passende Treffen basierend auf ihren Präferenzen schnell zu finden.<br><br>Backend:<br><br>Für die Profilverwaltung im Backend werden Eingabefelder für persönliche Informationen benötigt, die in einer Datenbank gespeichert werden. Ein Algorithmus validiert die Eingaben und stellt sicher, dass alle erforderlichen Daten korrekt erfasst werden. Zugriffsrechte sichern, dass nur autorisierte Nutzer Profile erstellen können, während eine Schnittstelle das Hinzufügen oder Bearbeiten von Profilen ermöglicht. | Pro-1 |
| --- | --- |
| Profil bearbeiten<br><br>Frontend: <br>Die Profilbearbeitung im Frontend der Profilverwaltung für Treffen ermöglicht es Nutzern, ihre Informationen schnell und unkompliziert zu aktualisieren. Mit intuitiven Eingabefeldern können sie Interessen, persönliche Daten und vergangene Veranstaltungen anpassen, um stets ein aktuelles und relevantes Profil zu präsentieren.<br><br>Backend:<br><br>Für das Bearbeiten von Profilen im Backend werden Editierfunktionen und eine Datenbank benötigt, die die Änderungen speichert. Ein Algorithmus stellt sicher, dass nur gültige Eingaben übernommen werden. Zugriffsrechte kontrollieren, dass nur autorisierte Nutzer ihre eigenen Profile bearbeiten können. Eine benutzerfreundliche Schnittstelle ermöglicht das einfache Aktualisieren der Profilinformationen. | Pro-2 |
| Profil mit LinkedIn automatisch abgleichen lassen<br><br>Frontend: <br>Die Funktion zum automatischen Abgleich des Profils mit LinkedIn im Frontend der Profilverwaltung für Treffen erleichtert Nutzern die Erstellung und Aktualisierung ihrer Informationen. Durch einen einfachen Klick werden relevante Daten wie berufliche Erfahrungen und Interessen nahtlos übernommen, sodass das Profil stets aktuell und ansprechend bleibt.<br><br>Backend:<br><br>Für den automatischen Abgleich mit LinkedIn wird eine API benötigt, die Profilinformationen aus LinkedIn abruft und in die Datenbank überträgt. Ein Algorithmus aktualisiert die Profildaten entsprechend. Zugriffsrechte stellen sicher, dass nur autorisierte Nutzer den Abgleich durchführen können. | Pro-3 |
| Profil verwaltung<br><br>Frontend: <br>Die Profilverwaltung im Frontend für Treffen bietet Nutzern eine benutzerfreundliche Oberfläche, um ihre Informationen mühelos zu verwalten. Hier können sie persönliche Daten, Interessen und vergangene Veranstaltungen anpassen, um ein ansprechendes und relevantes Profil zu präsentieren, das ihre Teilnahme an zukünftigen Treffen optimiert.<br><br>Backend:<br><br>Für die Profilverwaltung im Backend werden eine Datenbank zur Speicherung der Profildaten, APIs zur Verwaltung und Aktualisierung dieser Informationen sowie Algorithmen zur Validierung der Eingaben benötigt. Eine Benutzeroberfläche ermöglicht das Bearbeiten und Anzeigen der Profile, während Zugriffsrechte sicherstellen, dass nur autorisierte Nutzer auf ihre eigenen Daten zugreifen oder Änderungen vornehmen können. | Pro-4 |
| Profil bearbeiten<br><br>Frontend: <br>Das System muss eine einfache und benutzerfreundliche Profilbearbeitung im Frontend ermöglichen. Nutzer sollen ihre Informationen schnell und unkompliziert aktualisieren können, einschließlich Interessen, persönlicher Daten und vergangener Veranstaltungen. Die Eingabefelder müssen intuitiv gestaltet sein, sodass Nutzer ihr Profil stets aktuell und relevant halten können.<br><br>Backend:<br><br>Für das Bearbeiten von Profilen im Backend werden Editierfunktionen und eine Datenbank benötigt, die die Änderungen speichert. Ein Algorithmus stellt sicher, dass nur gültige Eingaben übernommen werden. Zugriffsrechte kontrollieren, dass nur autorisierte Nutzer ihre eigenen Profile bearbeiten können. Eine benutzerfreundliche Schnittstelle ermöglicht das einfache Aktualisieren der Profilinformationen. | Pro-2 |
| Profil mit LinkedIn automatisch abgleichen lassen<br><br>Frontend: <br>Das System muss eine Funktion zum automatischen Abgleich des Profils mit LinkedIn bieten. Durch einen einfachen Klick sollen relevante Daten, wie berufliche Erfahrungen und Interessen, nahtlos übernommen werden. Diese Funktion erleichtert die Erstellung und Aktualisierung des Profils, sodass es stets aktuell und ansprechend bleibt.<br><br>Backend:<br><br>Für den automatischen Abgleich mit LinkedIn wird eine API benötigt, die Profilinformationen aus LinkedIn abruft und in die Datenbank überträgt. Ein Algorithmus aktualisiert die Profildaten entsprechend. Zugriffsrechte stellen sicher, dass nur autorisierte Nutzer den Abgleich durchführen können. | Pro-3 |
| Profil verwaltung<br><br>Frontend: <br>Das System muss eine benutzerfreundliche Profilverwaltung im Frontend bieten, die es Nutzern ermöglicht, ihre Informationen mühelos zu verwalten. Nutzer sollen persönliche Daten, Interessen und vergangene Veranstaltungen anpassen können, um ein ansprechendes und relevantes Profil zu erstellen. Dieses Profil soll die Teilnahme an zukünftigen Treffen optimieren und eine gezielte Auswahl von relevanten Veranstaltungen erleichtern.<br><br>Backend:<br><br>Für die Profilverwaltung im Backend werden eine Datenbank zur Speicherung der Profildaten, APIs zur Verwaltung und Aktualisierung dieser Informationen sowie Algorithmen zur Validierung der Eingaben benötigt. Eine Benutzeroberfläche ermöglicht das Bearbeiten und Anzeigen der Profile, während Zugriffsrechte sicherstellen, dass nur autorisierte Nutzer auf ihre eigenen Daten zugreifen oder Änderungen vornehmen können. | Pro-4 |
# Datenbank