mlhmz / nhplus Goto Github PK
View Code? Open in Web Editor NEWNHPlus Software der HiTech-GmbH
NHPlus Software der HiTech-GmbH
Momentan ist es so, dass wenn man die NHPlus Anwendung startet und die Datenbank aus irgendwelchen Gründen nicht funktioniert, die Anwendung leer / weiß wird. Besser wäre, wenn eine Fehlermeldung gezeigt werden würde und die Anwendung geschlossen wird.
User-Story
Als Sicherheitsbeauftragter möchte ich, dass man sich in dieser Anwendung einloggen kann, um Sicherheit, Schutz vor unbefugtem Zugriff und Einhaltung des DSGVO-Punktes Sicherheit zu erreichen.
Akzeptanzkriterien
A_1: Beim Starten der Anwendung muss User sich mit Login-Dialog anmelden
A_2: Bis der Benutzer angemeldet ist dürfen keine Daten in die Anwendung geladen werden
A_3: Nutzer kann nur, je nach Berechtigungsstufe, bestimmte Operationen erfüllen
A_4: Nutzer höherer Rechte können Nutzer mit Berechtigungsstufe und Passwort erstellen und verwalten
A_5: Nutzer kann sich ausloggen per Knopfdruck
Tasks
T_1: Modell für Nutzer erstellen (Dabei u.a. ID’s erstellen)
T_2: DAO für Nutzer erstellen
T_3: Datenbanktabelle für Nutzer erstellen
T_4: Nutzer mit anderen Modellen verlinken (z.B. erstellt von)
T_5: Login-Dialog erstellen
T_7: Bei Login, Nutzer-ID in einer Session-Schicht hinterlegen
T_8: Zugriffsberechtigungen mit Enum erstellen, mit Admin
T_9: Benutzerverwaltung für Nutzer einer Admin-Berechtigungsstufe
T_10: Anderen Controller erst zeigen nach Login und Daten soeben erst nach Login laden
T_11: Passwörter hashen
Testfälle
TF1: Einloggen
Vorbedingung: Der Nutzer ist ausgeloggt und startet seine Anwendung
auszuführende Testschritte
TF2: Operation ausführen, die bestimmte Berechtigungen benötigt
Vorbedingung: Es gibt einen Nutzer mit und ohne Berechtigungsstufe
auszuführende Testschritte:
TF3_: Benutzerverwaltung für Admin-Nutzer
Vorbedingung:
Es gibt einen Admin-Benutzer und einen normalen Nutzer
auszuführende Schritte:
TF4: Ausloggen
Vorbedingung:
Nutzer ist eingeloggt
auszuführende Schritte:
User-Story
Hängt ab von #5
Als Datenschutzbeauftragter möchte ich, dass die Patientendaten nach Behandlungsende automatisch gesperrt und getrennt von den aktiven Daten gespeichert werden um der DSGVO gerecht zu werden.
Akzeptanzkriterien
A_1: Wenn das Behandlungsende markiert werden die Daten nach 24 Stunden nicht mehr angezeigt
A_3: Gesperrte Daten werden im Programm nicht mehr mit verarbeitet
Tasks
T_1: Es wird eine Job-Klasse angelegt
T_2: Die Jobklasse bekommt ein Scheduler der im 10 Minuten Takt läuft
T_3: Der Scheduler fragt ab ob ein Patient sperrbereit ist
T_4: Wenn ein Patient sperrbereit ist, bekommt er vom Scheduler ein Sperrflag sowie ein Löschdatum und ist nicht mehr in der Tabelle zu sehen.
Entwickler-Hinweis: Hier könnte der Quartz-Scheduler, eine Java-Library, benutzt werden.
Testfälle
TF1_: Patientendaten werden gesperrt
User-Story
Als Datenschutzbeauftragter möchte ich, dass gesperrte Daten nach 30 Jahren automatisch gelöscht werden um der DSGVO gerecht zu werden.
Akzeptanzkriterien
A_1: Einträge in der Tabelle mit gesperrten Daten werden nach 30 Jahren gelöscht
A_2: Eine routinemäßige Löschung läuft jede 10 Minuten, die überprüft ob Daten 30 Jahre her sind
A_3: Die routinemäßige Löschung beeinträchtigt das Programm nicht von der Performance her
Tasks
T_1: Datums-Feld für Löschung wird in Objekten hinzugefügt
T_2: Cronjob wird in neuen Thread gestartet der jede Tag abfragt, ob ein Datensatz seit mehr als 30 Jahren gesperrt ist
Hinweis: Hier könnte die Quartz Library wieder helfen
Testfälle
TF1_: Gesperrte Daten werden nach 30 Jahren gelöscht
TF2_: Die Löschung beeinträchtigt nicht die Performance
User-Story
Als Verwaltungsfachangestellte möchte ich das Behandlungsende eines Patienten markieren können, um Missverständnisse beim Bearbeiten zu vermeiden
Akzeptanzkriterien
A_1: Behandlungsende kann bei Patienten markiert werden
A_2: Daten der Patienten werden nach 24h gesperrt
A_3: Patient kann in 24h noch entsperrt werden
Tasks
T_1: Behandlungsende Feld in der Datenbank erstellen als Datum
T_2: Knopf / Knöpfe zum Umstellen des Flags erstellen
T_3: Bei Sperren Datum, wann der Nutzer gesperrt werden soll, in Datenbank reinschreiben.
Hinweis:
Der markierte Patient wird in #6 gesperrt
Testfälle
TF1_: Behandlungsende bei Patient markieren
User-Story
Als Datenschutzbeauftragter möchte ich, dass der Vermögensstand aus der Anwendung entfernt wird, um dem DSGVO gerecht zu werden was die Zweckbindung der gesammelten Daten angeht.
Akzeptanzkriterien
A_1: Der Vermögensstand ist nicht mehr in der Anwendung und der Datenbank zu finden.
Tasks
T_1: Aus der Patientendatenbank das Feld für Vermögensstand entfernen.
T_2: Aus der Patientenansicht das Feld für Vermögensstand entfernen.
T_3: Aus dem Patienten-DAO das selektieren des Vermögensstands entfernen.
T_4: Den Vermögensstand aus dem Patienten-Controller entfernen.
T_5: Den Vermögensstand aus der Datenbank entfernen.
Testfälle
TF1_: Feld Vermögensstand fehlt
Momentan ist es so, dass, wenn man beim Erstellen von Patienten sowie von Behandlungen etwas falsch eingetragen hat, dies sich lediglich als Exception sichtbar macht. Dies ist ein unerwünschtes Verhalten und muss behoben werden. Stattdessen sollten Warnings angezeigt werden.
In allen Klassen jeweils ist es möglich SQL-Code zu injizierieren. Dies muss behoben werden.
https://owasp.org/www-community/attacks/SQL_Injection
Als Personalleiter/innen, möchte ich, dass die Angestellten meiner Abteilung und Ich, Zugriff auf die Mitarbeiter / Pfleger haben um bei Änderungen im Personal, diese auch in NHPlus übernehmen.
A_1: Es gibt eine Personalgruppe
A_2: Die Personalgruppe hat Rechte auf die Mitarbeiter
A_3: Die Personalgruppe hat keine Rechte auf die Patienten, Behandlungen sowie User, da sie diese nicht braucht.
T_1: Personalgruppe anlegen
T_2: Personalgruppe in Factory hinzufügen
T_3: Personalgruppe Permissions geben
TF1: Der Personalnutzer kann Pfleger anlegen, bearbeiten und löschen:
Vorbedingung: Es gibt einen Personaltestnutzer.
Auszuführende Schritte:
erwartetes Ergebnis:
Alle Operationen (Anzeigen, Anlegen, Bearbeiten, Löschen) können erfolgreich ausgeführt werden
User-Story
Als Auftraggeber möchte ich, dass die Anwendung um ein Pfleger-Modul erweitert wird, um auch die Pfleger/innen in nhplus verwalten zu können.
Akzeptanzkriterien
A_1: Die Navigationsleiste am linken Rand hat einen Button, über den zu einer Ansicht aller Pfleger mit ID, Nach-und Vornamen sowie Telefonnummer gewechselt wird.
A_2: Die Anzeige einer Behandlung zeigt zusätzlich Nachname, Vorname, Telefon und Label des Pflegers, welcher die Behandlung durchgeführt hat, an.
A_3: Beim Anlegen einer Behandlung soll die entsprechende Pflegekraft mit Hilfe einer Combobox ausgewählt werden können.
Tasks
T_1: Erstellen einer Model-Klasse für die Pfleger/innen.
T_2: Erstellen eines Pfleger/innen-DAO.
T_3: Erstellen einer Controller-Klasse für die Pfleger/innen.
T_4: Hinzufügen des Buttons “Pfleger/innen” in die Navigationsleiste am linken Rand in der Hauptansicht.
T_5: Hinzufügen einer Combobox in der View-Klasse für neue Behandlungen, welche die Namen aller Pfleger zur Auswahl anzeigt.
T_6: Inhalt der Combobox im Behandlungs-DAO berücksichtigen, sodass der Name des Pflegers zu der Behandlung mit gespeichert wird.
T_7: Erweiterung der Ansicht der Behandlungen-View-Klasse um die Daten des durchführenden Pflegers im Format Nachname, Vorname, Telefon, Label zu jeder Behandlung.
Testfälle
TF1_: Button Anzeigen
TF2_: Alle Pfleger anzeigen
TF3_: Pfleger hinzufügen/löschen
TF4_: In der Behandlungs-Ansicht werden Pfleger mit angezeigt
TF5_: Die Combobox beim Anlegen neuer Behandlungen existiert und funktioniert.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.