Giter Club home page Giter Club logo

termine-granger's Introduction

Termine Granger

The application was developed as part of a study program at a German university and is therefore only documented in German.

Aufgabenplanung und -verwaltung

Prototyp für den Kurs Softwareengineering I (3. + 4. Semester) an der DHBW Karlsruhe

Release

Aktuellste freigegebene Version unter termine-granger.web.app

Installation

  • 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
    • Des Weiteren müssen hierfür die "Experimental Web Platform features" über "chrome://flags" aktiviert werden
    • Ob die Konfiguration erfolgreich war, lässt sich mit der offiziellen demo von Web.dev überprüfen
    • Es muss tatsächlich Google Chrome selbst sein. Nicht alle Chromium Browser sind kompatibel.

Empfehlung: Google Chrome unter Windows und verwendung der installierten Anwendung, nicht der Webseite.

Anleitung

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.

Demodaten

Um schnell mehrere Aufgaben zu erstellen:

  • Eine neue Aufgabe erstellen (Titel erforderlich) und Speichern
  • Die "Aufteilen"-Funktion nutzen
    1. Aufgabe bearbeiten (Listeneintrag nach links schieben und auf bearbeiten-Schaltfläche klicken)
    2. Nach unten scrollen und "Aufteilen" auswählen
    3. Als Untergrenze die gewünschte Anzahl an aufgaben festlegen
    4. 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

Löschen aller Daten:

  • 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

Sourcecode

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 eine page verwendet werden
    • datetime: Komponente zur Auswahl von Datum + Uhrzeit. Ermöglicht auch das löschen der Eingabe über einen Button
    • duration: 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 oben
    • task: Komponente um eine Aufgabe oder Gruppe als Listeneintrag darzustellen. Ermöglicht das Bearbeiten/Öffnen
  • _pages: Einzelne Ansichten der App
    • input: 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
  • events: Observables für die interne Verarbeitung von Änderungen an Aufgaben / der Oberfläche
  • home: Die Einstiegsseite (also auch eine page) der App.

Jasmine-Test

Ein Exemplarischer Test für die Funktion addOrChange (taskList) ist in der Datei data.service.spec.ts

termine-granger's People

Contributors

pa-ssch avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.