IncidArch-Blog

Software Requirements Specification v4

Inhaltsverzeichnis

1. Einführung

1.1 Zweck

In dieser Software-Anforderungsspezifikation (SRS) werden sämtliche Anforderungen für die Applikation “IncidArch” umfassend dargelegt. Sie vermittelt eine umfassende Übersicht über das Projekt sowie dessen Vision. Zudem werden ausführliche Einblicke in die geplanten Features und die Rahmenbedingungen des Entwicklungsprozesses gewährt. Diese SRS ist ein entscheidendes Dokument, das als Leitfaden für das gesamte Projekt dient.

1.2 Umfang

Das Projekt wird als Android-App, iPhone-App und als Website umgesetzt.

Das Verbandsbuch-System soll folgende Hauptfunktionen bieten:

1.3 Definitionen, Akronyme und Abkürzungen

SRS Software Requirements Specification
DGUV Deutsche Gesetzliche Unfallversicherung
DSGVO Datenschutz-Grundverordnung
FAQ Häufig gestellte Fragen
API Application Programming Interface

1.4 Übersicht

Die folgende Übersicht bietet eine Zusammenfassung des SRS-Dokuments und seiner Struktur. Das SRS-Dokument legt detaillierte Anforderungen für die Anwendung “IncidArch” fest und bietet Einblicke in die Projektvision, geplante Funktionen und die Rahmenbedingungen für die Entwicklung.

Das Dokument gliedert sich in die folgenden Abschnitte:

Das SRS-Dokument bietet eine klare Roadmap für das Projekt und informiert alle Beteiligten ausführlich über die Anforderungen und den eingesetzten Technologiestack.

2. Gesamtbeschreibung

2.1 Vision

Befreien Sie sich von der Last handschriftlich ausgefüllter Unfallberichte und dem Chaos von Papierstapeln mit schwer entzifferbaren Vorfällen. Digitale Unfallprotokolle sind nicht nur auf dem Vormarsch – sie sind bereits hier und erleichtern Ihren Alltag erheblich. Erfüllen Sie Ihre Dokumentationspflicht nach DGUV § 24 Abs. 6 einfach, sicher und digital. Alle Daten werden nach DSGVO ausschließlich in Europa verarbeitet und gespeichert. Schluss mit dem lästigen Papierkram und herzlich willkommen zu einer effizienteren, modernen und rechtlich konformen Lösung.

2.2 Use Case Diagram

Use Case Diagram

2.3 Technologie Stack

Der Technologie Stack den wir benutzen:

Typescript (als Basis & einzige Sprache)
👇
Supabase (Datenbank und Backend) 👇 Deno (modern TS Runtime für Supabase Edge-Functions) 👇
React Native (Frontend)
👇 Expo (Frontend)


Github Actions (CI/CD)
Jira (Development & PM)

2.4 Story-Points (Aufwandschätzung)

Bei der Aufwandsschätzung verwenden wir folgende Skala: story point matrix

3. Architectural Goals and Constraints

Da das Thema Sicherheit nicht zuletzt wegen der DSGVO ein akutes Thema ist,
setzen wir bei der Entwicklung auf Eigenentwicklung und vorerst auf Applikation-Layer-Encryption,
sodass wir stets die Kontrolle über die Datenflüsse haben
und nicht zu sehr auf Black-Box-Bibliotheken vertrauen müssen.

Im Sinne der Benutzbarkeit und Transparenz setzen wir zudem auf eine konsistente Dokumentation,
sowie Best-Practices (aus dem UX-Feld und während der Entwicklung).

4. Spezifische Anforderungen

4.1 Funktionalität

In diesem Abschnitt wird die verschiedenen Anwendungsfälle und ihre Funktionalität erläutert, die im Use-Case-Diagramm dargestellt sind. Bis Dezember planen wir die Implementierung von:

Bis Juni möchten wir implementieren:

4.1.1 Ein Konto erstellen

Diese Funktion ermöglicht es Benutzern, ein neues Konto im Verbandsbuch-System zu erstellen. Benutzer können ihre persönlichen Informationen angeben, um ein Konto zu registrieren. Nach erfolgreicher Registrierung werden sie in der Lage sein, sich im System anzumelden und auf die Funktionen zuzugreifen.

Ein Konto erstellen

4.1.2 Einloggen

Die Einloggen-Funktion ermöglicht es Benutzern, sich in ihr Verbandsbuch-Konto anzumelden. Benutzer müssen ihre Anmeldeinformationen eingeben, um auf die Funktionen des Systems zuzugreifen. Nach dem erfolgreichen Login können sie auf ihre Verbandsbuch-Ereignisse und andere relevante Informationen zugreifen.

Einloggen

4.1.3 Ausloggen

Die Ausloggen-Funktion ermöglicht es Benutzern, sich sicher aus ihrem Verbandsbuch-Konto abzumelden. Dies ist wichtig, um die Sicherheit und Privatsphäre der Benutzer zu gewährleisten. Nach dem Ausloggen haben Benutzer keinen Zugriff auf ihr Konto, es sei denn, sie melden sich erneut an.

Ausloggen

4.1.4 Erstellen eines neuen Verbandsbuch-Ereignisses

Diese Funktion ermöglicht Benutzern, ein neues Verbandsbuch-Ereignis zu erstellen. Benutzer können Daten wie Datum, Uhrzeit, Ort, Art des Vorfalls und eine Beschreibung des Vorfalls eingeben. Nach dem Erstellen des Ereignisses wird es im Verbandsbuch sichtbar sein.

Erstellen eines neuen Verbandsbuch-Ereignisses

4.1.5 Bearbeiten von Verbandsbuch-Ereignissen

Die Funktion “Bearbeiten von Verbandsbuch-Ereignissen” ermöglicht es Benutzern, bestehende Ereignisse im Verbandsbuch zu bearbeiten. Sie können Daten wie Datum, Uhrzeit, Ort, Art des Vorfalls und die Beschreibung des Vorfalls aktualisieren. Die vorgenommenen Änderungen werden im Verbandsbuch gespeichert.

Bearbeiten von Verbandsbuch-Ereignissen

4.1.6 Dashboard-Überblick über Verbandsbuch-Ereignisse

Diese Funktion bietet den Benutzern einen zentralen Dashboard-Überblick über alle Verbandsbuch-Ereignisse. Das Dashboard enthält Filter- und Suchfunktionen, um Ereignisse für verschiedene Zeiträume und Kategorien anzuzeigen. Darüber hinaus können Diagramme und Grafiken zur Visualisierung von Trends und Mustern angezeigt werden.

Dashboard-Überblick über Verbandsbuch-Ereignisse

4.1.7 Generieren von Berichten über Verbandsbuch-Ereignisse

Benutzer mit Administratorrechten können Berichte über Verbandsbuch-Ereignisse generieren. Diese Berichte können anhand von verschiedenen Kriterien, wie Datum oder Art des Vorfalls, erstellt werden. Die Berichte können in verschiedenen Formaten (PDF, Excel) heruntergeladen werden und enthalten umfassende Informationen zu den Ereignissen.

Generieren von Berichten über Verbandsbuch-Ereignisse

4.1.8 Verwalten von Benutzerrollen und Rechten im Verbandsbuch-System

Diese Funktion ermöglicht es Systemadministratoren, Benutzerrollen zu erstellen, zu bearbeiten und zu löschen. Es gibt vordefinierte Rollen wie “Mitarbeiter,” “Sicherheitsbeauftragter” und “Manager,” die unterschiedliche Rechte haben. Administratoren können individuellen Benutzern oder Benutzergruppen Rollen und Berechtigungen zuweisen. Rollen bestimmen, welche Aktionen ein Benutzer im Verbandsbuch-System ausführen kann, wie das Erstellen, Bearbeiten oder Löschen von Ereignissen.

Verwalten von Benutzerrollen und Rechten im Verbandsbuch-System

4.1.9 Erhalten von automatischen Benachrichtigungen für schwerwiegende Vorfälle

Sicherheitsbeauftragte können automatische Benachrichtigungen erhalten, wenn schwerwiegende Vorfälle im Verbandsbuch registriert werden. Diese Benachrichtigungen enthalten wichtige Details wie den Zeitpunkt des Vorfalls, die Art des Vorfalls und den Standort. Die Benachrichtigungen sind anpassbar, sodass der Sicherheitsbeauftragte die Kategorien festlegen kann, für die er Benachrichtigungen erhalten möchte. Die Benachrichtigungen werden in Echtzeit gesendet, um eine schnelle Reaktion auf schwerwiegende Vorfälle zu ermöglichen. Der Sicherheitsbeauftragte kann die Benachrichtigungseinstellungen nach Bedarf ändern.

Erhalten von automatischen Benachrichtigungen für schwerwiegende Vorfälle

4.1.10 Erwerben eines Kontingents, um Archivierungen vorzunehmen.

Da wir eine SaaS-Anwendung anstreben, ist ein Bezahlvorgang von Nöten, um die Archivierungs-Kosten zu decken (von bswp. S3-Storage). Der Bezahlvorgang beschreibt dabei den Use-Case,
in dem der Benutzer ein Archivierungs-Kontingent erwirbt, um später Vorfälle archivieren zu können.

Erhalten von automatischen Benachrichtigungen für schwerwiegende Vorfälle

4.2 Benutzerfreundlichkeit

4.2.1 Intuitive Benutzeroberfläche

Unsere oberste Priorität besteht darin, eine Benutzeroberfläche zu schaffen, die auf Anhieb verständlich und leicht zu bedienen ist. Unser Ziel ist es, dass Benutzer die App ohne aufwendige Schulungen nutzen können.

4.3 Hohe Verfügbarkeit

4.3.1 Kontinuierliche Erreichbarkeit

Wir setzen alles daran, sicherzustellen, dass die IncidArch-Anwendung rund um die Uhr verfügbar ist. Hierbei setzen wir auf innovative Technologien, permanente Systemüberwachung, clevere Caching-Strategien und eine zuverlässige Fehlerbehandlung, um sicherzustellen, dass Benutzer jederzeit auf die App zugreifen können, ohne Unterbrechungen befürchten zu müssen.

4.3.2 Datensicherheit

Ein essenzielles Ziel ist es, sicherzustellen, dass keinerlei Daten verloren gehen. Dies ist von entscheidender Bedeutung, um die Integrität der erfassten Informationen zu gewährleisten. Unser System wird robuste Backup- und Wiederherstellungsmechanismen implementieren, um die Sicherheit und Verfügbarkeit der Daten zu gewährleisten.

4.4 Leistung und Effizienz

4.4.1 Skalierbarkeit

Unsere Plattform wird darauf ausgelegt sein, mühelos mit steigender Nutzerzahl mitzuwachsen. Das System soll in der Lage sein, Anfragen von Tausenden von Nutzern gleichzeitig zu verarbeiten.

4.4.2 Ressourcenoptimierung

Wir optimieren die Nutzung vom Speicher, um den Speicherbedarf unserer Anwendung zu minimieren.

4.4.3 Schnelligkeit und Reaktionsfähigkeit

Wir halten die Reaktionszeit der App auf Anfragen so kurz wie möglich, um ein optimales Nutzererlebnis sicherzustellen.

4.5 Qualitätskontrolle und Nutzerfeedback

4.5.1 Ständige Anwendungsoptimierung

Unser Team wird kontinuierlich daran arbeiten, die Anwendung zu optimieren und sicherzustellen, dass sie den höchsten Qualitätsstandards entspricht. Wir werden regelmäßig Leistungsüberprüfungen und Qualitätstests durchführen, um mögliche Engpässe oder Verbesserungsmöglichkeiten zu identifizieren.

4.5.2 Nutzerfeedback-Integration

Wir schätzen das Feedback unserer Benutzer sehr. Um sicherzustellen, dass die Anwendung ihren Anforderungen entspricht, werden wir aktiv auf das Feedback unserer Benutzer hören und gezielte Verbesserungen basierend auf deren Bedenken und Anregungen umsetzen.

4.6 Ressourcen für eine reibungslose Nutzung

Unsere App wird mit einer umfangreichen Wissensdatenbank ausgestattet sein, um sicherzustellen, dass die Benutzer schnell und einfach Antworten auf ihre Fragen finden können. Wir werden Tutorials, Anleitungen und Tipps bereitstellen, um die Benutzer bei der effizienten Nutzung der Anwendung zu unterstützen und häufig auftretende Probleme zu lösen.

4.7 Gekaufte Komponenten

Wir haben derzeit keine gekauften Komponenten. Wenn in Zukunft gekaufte Komponenten vorhanden sind, werden wir sie hier auflisten.

4.8 Schnittstellen

4.8.1 Benutzeroberflächen

Die zu implementierenden Benutzeroberflächen sind:

  1. Anmeldungsseite: Die Seite, auf der Benutzer sich in ihrem Verbandsbuch-Konto anmelden können, indem sie ihre Anmeldeinformationen eingeben.

  2. Registrierungsseite: Die Seite, auf der Benutzer ein neues Konto erstellen können, indem sie persönliche Informationen eingeben.

  3. Haupt-Dashboard: Ein Dashboard, das einen Überblick über alle Verbandsbuch-Ereignisse bietet. Dieses Dashboard enthält Filter- und Suchfunktionen sowie Diagramme zur Visualisierung von Trends.

  4. Seite zur Ereigniserstellung: Eine Seite, auf der Benutzer neue Verbandsbuch-Ereignisse erstellen können, indem sie Datum, Uhrzeit, Ort, Art des Vorfalls und eine Beschreibung eingeben.

  5. Seite zur Bearbeitung von Ereignissen: Eine Seite, auf der Benutzer bestehende Verbandsbuch-Ereignisse bearbeiten können, um Informationen zu aktualisieren.

  6. Berichterstellungsoberfläche: Eine Oberfläche, auf der Administratoren benutzerdefinierte Berichte über Verbandsbuch-Ereignisse generieren können.

  7. Benutzerverwaltungsseite: Eine Seite, auf der Systemadministratoren Benutzerrollen und Berechtigungen verwalten können.

  8. Benachrichtigungseinstellungsseite: Eine Seite, auf der Sicherheitsbeauftragte Benachrichtigungseinstellungen anpassen können, um Benachrichtigungen für schwerwiegende Vorfälle zu konfigurieren.

4.8.2 Hardware-Schnittstellen

Sind clientseitig entsprechend der React Native Dokumentation zu verwenden.

4.8.3 Kommunikationsschnittstellen

Es wird hauptsächlich das Hyper-Text-Transfer-Protocol (HTTP) verwendet,
um die Backend <-> Frontend-Kommunikation zu ermöglichen.
Standardmäßig werden wir REST/JSON verwenden
und da Hono zudem das Remote-Procedure-Call-Protokoll (RPC) ermöglicht,
bietet sich eine weitere alternative in einem (noch) kompakteren Datenformat als JSON an,
zumal wir primär mit JSON arbeiten werden.

4.9 Lizenzanforderungen

Wir verwenden ausschließlich FOSS unter freien Lizenzen,
wie der MIT-Lizenz.

4.10 Rechtliche, Urheberrechts- und andere Hinweise

Unsere Ausarbeitungen sind zunächst unserem, individuellen Urheberrecht nach geschützt,
solange wir uns nicht im Konsens auf eine Lizenzänderung geeinigt haben.

4.11 Unterstützende Informationen

Für weitere Informationen können Sie das IncidArch Team kontaktieren oder unseren IncidArch Blog überprüfen. Die Teammitglieder sind: