The application was developed as part of a study program at a German university and is therefore only documented in German.
Aufgabenplanung und -verwaltung
Aktuellste freigegebene Version unter termine-granger.web.app
- Die App ist mit allen Browsern, die PWAs unterstützen aufrufbar (siehe Release)
- Unterstützt der Browser disese Technologien nicht, ist der Funktionsumfang eingeschränkt
- In jedem Fall ist das installieren der App empfohlen (Meldung kommt automatisch vom Browser)
- Für die Erinnerungen-Funktion muss die neuste Version von Google Chrome verwendet werden
Empfehlung: Google Chrome unter Windows und verwendung der installierten Anwendung, nicht der Webseite.
Die App ist intuitiv gestaltet, sodass (vorallem wenn die Anforderungen bekannt sind) eine Anleitung nicht nötig ist. Falls jedoch trotzdem Fragen auftreten, kann das Dokument Anleitung.pdf herbeigezogen werden.
- Eine neue Aufgabe erstellen (Titel erforderlich) und Speichern
- Die "Aufteilen"-Funktion nutzen
- Aufgabe bearbeiten (Listeneintrag nach links schieben und auf bearbeiten-Schaltfläche klicken)
- Nach unten scrollen und "Aufteilen" auswählen
- Als Untergrenze die gewünschte Anzahl an aufgaben festlegen
- Obergrenze >= Untergrenze wählen
- Unteraufgaben sind erstellt
- So ist es leider nicht möglich, Aufgaben auf oberster Ebene zu erstellen
- Einzelne Unteraufgaben können durch das ändern der Gruppe auf "n.a." auf die oberste Ebene verschoben werden
- In den DevTools (bei Chrome F12) kann die IndexedDB Datenbank (TG_DB) gelöscht werden
- Für diesen Schritt muss man sich auf einer Seite der Domain termine-granger.web.app befinden
- Die Datenbank wird nach einer Aktualisierung der Seite neu erstellt
Der relevante Sourcecode befindet sich unter src/app
Zusätzlich ist unter src/assets/js/notification.js der Code für das Verwalten von Push-Benachrichtigungen
Bezüglich der Lesbarkeit ist es sinnvoll, den Sourcecode herunterzuladen und mit Visual Studio Code zu öffnen. Es wird TypeDoc verwendet und oft wird die #region-Funtkion eingesetzt, um den Code zu strukturieren.
Die Strukturierung des Quellcodes sollte einfach zu verstehen sein. Ansonsten hier nochmal eine kurze Zusammenfassung:
_components
: Steuerelemente, welche entweder von anderen Steuerelementen oder einepage
verwendet werdendatetime
: Komponente zur Auswahl von Datum + Uhrzeit. Ermöglicht auch das löschen der Eingabe über einen Buttonduration
: Komponente zur Auswahl einer Dauer + Einheit (z.B. 5 & Minuten, 2 & Stunden, ...)task-list
: Komponente zum Darstellen von Aufgaben. Ermöglicht manuelles aktualisieren durch wischen von obentask
: Komponente um eine Aufgabe oder Gruppe als Listeneintrag darzustellen. Ermöglicht das Bearbeiten/Öffnen
_pages
: Einzelne Ansichten der Appinput
: Eingabemaske für die Bearbeitung einer Aufgabe.list
: Darstellung von Unteraufgaben (Page ist nicht für die Hauptaufgabenliste!)
data
:- Datenklassen (
Reminder
&Task
) - Benötigte typen, welche nicht durch typescript verfügbar sind
- Datenbankanbindung (
data.service.ts
) mit requests- Die Requests sind zwecks Übersichtlichkeit in eigenen Dateien, gehören jedoch zur Klasse
DataService
- Die Requests sind zwecks Übersichtlichkeit in eigenen Dateien, gehören jedoch zur Klasse
- Datenklassen (
events
:Observables
für die interne Verarbeitung von Änderungen an Aufgaben / der Oberflächehome
: Die Einstiegsseite (also auch einepage
) der App.
Ein Exemplarischer Test für die Funktion addOrChange
(taskList) ist in der Datei data.service.spec.ts