Folgende Informationen werden vom Auftraggeben vorgegeben:


 Allgemeine Projektinformationen

  • - Projektname: Entwicklung einer Datenbank für eine Praktikabörse
  • - Projektziel: Aufbau einer leistungsfähigen und benutzerfreundlichen Datenbank, die mögliche Praktika und Bewerbungen effizient verwaltet und alle notwendigen Funktionalitäten für Arbeitgeber und Praktikasuchende bereitstellt.
  • - Projektbeteiligte: Auftraggeber(Umschulungsanbieter etc.), Entwicklerteam, zukünftige Benutzer (z. B. Arbeitgeber, Arbeitssuchende, Administratoren)
  • - Projektlaufzeit: 6 Mannmonate für die Entwicklung und Implementierung der Datenbank im Rahmen eines Gesamtptojektes1.
 2. Anforderungen an die Datenbank

Hier sind zunächst grobe Anforderungen seitens der Auftraggeber aufgelistet.
Der Auftraggeber bitte aber ausdrücklich um Hilfe bei der Ausarbeitung detailierter Anforderungen und der Aufnahme sinnvoller Finuktionen in den Projektumfang.

# 2.1 Funktionale Anforderungen
  • - Benutzerverwaltung:
    •   - Anlegen, Bearbeiten und Löschen von Benutzerkonten (Arbeitgeber, Arbeitssuchende, Administratoren).
    •   - Verwaltung von Benutzerrechten und Rollen (z. B. Administrator mit erweiterten Rechten, Standardbenutzer).
  • - Praktika-Stellenverwaltung:
    •   - Erstellen, Bearbeiten und Löschen von Stellenanzeigen durch Arbeitgeber.
    •   - Speichern von Stellenanzeigen mit Attributen wie Jobtitel, Beschreibung, Anforderungen, Standort, Gehalt, Bewerbungsfrist.
  • - Bewerbungsverwaltung:
    • - Such- und Filterfunktionen:
      •   - Implementierung einer Suchfunktion für Suchende, um nach Anzeigen basierend auf Kriterien wie Jobtitel, Standort, Branche,  etc. zu suchen.
      •   - Möglichkeit für Praktiksuchende, sich auf offene Praktika zu bewerben.
      •   - Möglichkeit für Ssuchende, ihren Bewerbungsstatus einzusehen.
  • - Benachrichtigungssystem:
  •   - E-Mail-Benachrichtigungen an Suchende über neue passende Stellenanzeigen.
  • - Reporting und Analyse:
  •   - Bereitstellung von Berichten für Administratoren über die Anzahl der Anzeigen in verschiedenen Stati, die Anzahl der Bewerbungen, Benutzeraktivitäten, etc.
# 2.2 Nicht-funktionale Anforderungen
  • - Leistungsanforderungen:
    •   - Die Datenbank muss in der Lage sein, eine große Anzahl von Anzeigen und Bewerbungen zu verarbeiten, ohne an Leistung zu verlieren2.
    •   - Antwortzeiten bei Such- und Filteranfragen sollen unter 2 Sekunden liegen.
  • - Sicherheitsanforderungen:
    •   - Implementierung von Zugriffskontrollen, um unbefugten Zugriff auf sensible Daten (z. B. Bewerberprofile) zu verhindern.
    •   - Verschlüsselung sensibler Daten wie Passwörter und personenbezogene Informationen.
    •   - Regelmäßige Sicherungen der Datenbank, um Datenverluste zu verhindern.
  • - Verfügbarkeitsanforderungen:
    •   - Die Datenbank muss eine hohe Verfügbarkeit bieten (mindestens 99,9 %), um sicherzustellen, dass Benutzer jederzeit darauf zugreifen können.
    • - Skalierbarkeit:
    •   - Die Datenbank soll skalierbar sein, um bei steigender Anzahl von Nutzern, Anzeigen und Bewerbungen weiterhin eine hohe Performance zu gewährleisten.
  • - Benutzerfreundlichkeit3:
    •   - Intuitive Benutzeroberflächen für alle Benutzergruppen (Arbeitgeber, Arbeitssuchende, Administratoren).
    •   - Einfache Navigation und übersichtliche Darstellung von Informationen.

 3. Schnittstellenanforderungen1
  • - API-Schnittstellen:
  •   - Definition von Schnittstellen zur Integration der Datenbank mit externen Systemen (z. B. Unternehmens-Websites, externe Bewerbungsplattformen).
  • - Integration mit externen Systemen:
  •   - Anbindung an gängige Jobportale oder Social-Media-Plattformen zum automatisierten Bezug von Stellenanzeigen.
 4. Qualitätsanforderungen
  • - Wartbarkeit: Die Datenbank muss einfach zu warten sein, einschließlich klarer Dokumentation, regelmäßiger Updates und leichter Erweiterbarkeit.
  • - Datenkonsistenz: Mechanismen zur Sicherstellung der Datenkonsistenz, z. B. durch Transaktionen, die den ACID-Eigenschaften (Atomicity, Consistency, Isolation, Durability) entsprechen.
Anmerkungen:
1) Rahmen des Gesamtptojektes:
Hinweis zum Teilprojekt "Datenbankmodellierung":

Wir möchten darauf hinweisen, dass die Erstellung des Datenbankmodells und des zugehörigen Entity-Relationship-Modells (ERM) lediglich ein Teil des umfassenden Gesamtprojekts ist. Das Gesamtprojekt umfasst die Entwicklung einer vollständigen Stellenbörse, einschließlich eines Backends, Frontends sowie einer Benutzeroberfläche (GUI), die auf verschiedenen Geräten verwendet werden kann.

Einige Aspekte des Datenbankmodells, wie beispielsweise spezifische Datenstrukturen des Frontends und Optimierungen für die Performance, können erst im Kontext der Gesamtplanung final festgelegt werden. Diese Aspekte hängen eng mit der Implementierung der Anwendung und den funktionalen Anforderungen zusammen, die in den weiteren Projektphasen definiert werden.

Der Fokus dieses Teilprojekts liegt daher auf der ersten Erstellung des Datenbankmodells, das als solides Fundament für die weitere Entwicklung dient. Im Laufe des Gesamtprojekts werden wir die Datenbankstruktur kontinuierlich verfeinern und anpassen, um die spezifischen Anforderungen der Anwendung bestmöglich zu unterstützen.

2) Leistungsanforderungen
Schätzung der Transaktionslast:
Durchschnittliche Transaktionslast pro Benutzer:
durchschnittliche Anzahl von Transaktionen, die jeder Benutzer pro Minute durchführen wird  4 Abfragen/Minute.
Anzahl der gleichzeitigen Benutzer: 100
    Gesamte Transaktionslast:  400 tpmC  durch Anwender
dazu maximal 100 Einfügungen durch automatisierte Übernahme neuer Angebote.
tpmC Schätzung: 500 tpmC
 Puffer und Spitzenlast: bei 50% mehr Belastung ergibt sich ein tpmC von 750.

Obwohl das aktuelle Datenbankprojekt nur eine Last von etwa 500 tpmC (Transaktionen pro Minute C) aufweist, gibt es einen entscheidenden Grund, das Projekt in der Cloud zu hosten: der potenziell nicht abschätzbare Erweiterungsbedarf.

Unsere Anwendung könnte in Zukunft einem erheblichen Anstieg der Benutzerzahlen und der Transaktionslast ausgesetzt sein, sei es durch Unternehmenswachstum, neue Features oder unerwartete Marktchancen. Die Cloud bietet uns die nötige Flexibilität und Skalierbarkeit, um auf solche Entwicklungen schnell und effizient reagieren zu können, ohne dass dabei umfangreiche Investitionen in physische Infrastruktur notwendig sind.

Mit einer Cloud-Lösung können wir die Ressourcen dynamisch anpassen, um sowohl die aktuellen Anforderungen zu erfüllen als auch auf zukünftige, möglicherweise erhebliche Erweiterungen vorbereitet zu sein. Darüber hinaus profitieren wir von der hohen Verfügbarkeit, Sicherheit und den umfassenden Verwaltungsdiensten, die moderne Cloud-Plattformen bieten. Diese Vorteile ermöglichen es uns, uns auf die Weiterentwicklung unserer Anwendung zu konzentrieren, während die Cloud die technische Grundlage bietet, die für Wachstum und Flexibilität erforderlich ist.




Zuletzt geändert: Sonntag, 25. August 2024, 09:44