Compare commits

...

4 Commits

Author SHA1 Message Date
aa64fbad73 Merge branch 'main' into kreuzer-patch-1 2025-02-24 10:34:59 +00:00
de7f95381d Update Firmen & Jobstellenmarkt
Präzisierung im Laufe des Projektes.
Technologie: Postgres entfernt.
Umstellung in gescheite Tabellen
2025-02-24 10:26:41 +00:00
b6d87ac8c5 pflichtenheft.md aktualisiert 2025-02-24 10:26:41 +00:00
870d5a951e Snt-1 und SnT-2 bearbeitet 2025-02-24 09:48:32 +00:00

View File

@ -135,13 +135,13 @@ Redundanzeigenschaften Bespr. Mit Hr. Prof. Gürth
| 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 |
| 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>Frontend basiert auf Blazor und HTML<br>Um die Implementierung kümmert sich weitgehende Oqtane<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
| Anforderung | ID |
| --- | --- |
| 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 |
| SMTP (Email versand)<br><br>1. Zielsetzung<br>Die Implementierung eines E-Mail-Versands mit der Brevo Gratis-Version in einer C#-Backend-Anwendung ermöglicht das Versenden von E-Mails über den Brevo SMTP-Server. Ziel ist eine zuverlässige, sichere und skalierbare Lösung unter Berücksichtigung des Limits von 300 E-Mails pro Tag.<br><br>2. Aufgabenbeschreibung<br>Konfiguration des Brevo SMTP-Servers: Festlegung von Host, Port, Authentifizierung und Verschlüsselung.<br>Erstellung von E-Mails: Gestaltung im Text- und HTML-Format.<br>Integration in die C#-Backend-Anwendung: Nutzung von SMTP-Befehlen.<br>Fehlerbehandlung und Logging: Protokollierung fehlerhafter E-Mails.<br>Sicherheit: Schutz der E-Mail-Kommunikation und Verhinderung von Missbrauch.<br>3. dynamischer Versand<br><br>Benachrichtigungs-E-Mails: Willkommens-E-Mails, Passwort-Zurücksetzen, Bestellbestätigungen mit dynamischen Platzhaltern.<br>Massen-E-Mails: Versand an mehrere Empfänger unter Beachtung des Limits von 300 E-Mails pro Tag.<br>3.1 Fehler- und Zustellungsmanagement<br>Protokollierung fehlgeschlagener E-Mails.<br>Rückmeldung bei erfolgreichem Versand.<br>Möglichkeit zur Wiederholung fehlgeschlagener E-Mails.<br><br>4. Nicht-funktionale Anforderungen<br>Performance: Versand innerhalb von 3 Sekunden pro Nachricht.<br>Skalierbarkeit: Planung für ein Upgrade bei höherem Bedarf.<br>Sicherheit: TLS/SSL-Verschlüsselung und Schutz durch Rate-Limiting.<br>Kompatibilität: Anzeige von HTML-E-Mails auf verschiedenen Geräten.<br><br>5. Technische Umsetzung<br>5.1. Backend<br>Framework: ASP.NET Core.<br>Architektur: Erstellung eines SMTP-Services mit Methoden für den Versand einfacher und komplexer E-Mails mit Anhängen und Templates.<br><br>5.2. Sicherheit<br>Schutz der Zugangsdaten: Nutzung eines Secret Managers oder Umgebungsvariablen.<br>Rate Limiting: Einhaltung des Tageslimits von 300 E-Mails.<br>Spam-Prävention: Konfiguration von SPF, DKIM und DMARC.<br><br>6. Erfolgskriterien<br>Alle E-Mails werden zuverlässig und sicher über Brevo versendet.<br>Personalisierte Nachrichten und Anhänge werden korrekt verarbeitet.<br>Robuster Versandprozess mit Fehlerhandling 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
@ -429,11 +429,14 @@ Protokollierung aller Authentifizierungsversuche und der zugehörigen LinkedIn-D
| Löschantrag<br><br>Frontend: <br>Das Frontend stellt eine intuitive Oberfläche bereit, über die Nutzer Löschanträge für ihre Einträge oder bestimmte Informationen stellen können. Die Funktion ist leicht zugänglich, responsiv und informiert den Nutzer über den Status des Antrags.| HoF-4 |
## Firmen und Jobstellenmarkt (Phase 2)
**Präzisierung im laufe des Projektes**
| Agenturschnittstellen (API & GUI) | JOB-1 |
| Anforderung | ID |
| --- | --- |
| Job / Mitarbeiterbörse / Praktikabörse | JOB-2 |
| Privatsphäre Einstellungen | JOB-3 |
| **Agenturschnittstellen (API & GUI)**<br>-Bereitstellung von APIs (JSON)<br>-GUI mit Dashboard Benutzerrollen und Statistiken (responsive Design) | JOB-1 |
| **Job / Mitarbeiterbörse / Praktikabörse**<br>-Plattform für Stellenangebote, Bewerberprofile und Praktika mit Such- und Filterfunktionen<br>-Benutzerrollen (Arbeitgeber, Arbeitnehmer, Administratoren) und Bewerbungsmanagement | JOB-2 |
| **Privatsphäreeinstellungen (Opt-In)**<br>-DSGVO-konformes Opt-In-System für Datenverarbeitung, Protokollierung und Widerruf<br>-Sichtbarkeitsoptionen für Profile und Einbindung von Datenschutzeinstellungen | JOB-3 |
## Premiumbereich (Phase 2)