Giter Site home page Giter Site logo

digital-scouts / dpsg-nami-app Goto Github PK

View Code? Open in Web Editor NEW
12.0 3.0 0.0 113.05 MB

NaMi App um Mitglieder des Stammes mobil und auch offline zu verwalten

Home Page: https://digital-scouts.github.io/dpsg-nami-app/

License: Other

Kotlin 0.05% Swift 0.14% Objective-C 0.01% Dart 97.31% HTML 1.30% Ruby 0.66% Shell 0.54%
mobile app nami dpsg scout

dpsg-nami-app's Introduction

NaMi

Watch

Master Release Commit

Develop Test Commit

Die NaMi ist die Namentliche Mitgliedermeldung des Pfadfinderverbandes DPSG (Deutsche Pfadfinderschaft Sankt Georg).

Lizenz

Lizenz

Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.

Mitwirken

Tester

Bevor die App kostenlos in den Stores verfügbar sein soll, wollen wir noch testen ob alles wie gewünscht funktioniert. Unterschiedliche Datenkonstellationen könnten zu uns noch unbekannten Fehlern führen. Um diese zu finden brauchen wir dich.

Generell suchen wir jeden, der Interesse hat sich mit einer neuen App auseinander zu setzten, Feedback zu bestehenden Funktionen zu geben und ggf. Umfragen zu zukünftigen Funktionen teil zu nehmen.

Vorraussetzungen:

  • Du bist Mitglied in einer Gruppierung
  • Du hast NaMi Rechte andere Mitglieder zu sehen
  • Android mit PlayStore Konto oder iPhone mit Apple-ID

Testversion der App laden: Android oder iOS

Neben Feedback zur aktuell Version der würden wir mit gelegtlichen Umfragen gerne mehr zum allgemeinen Nutzerverhalten erfahren. Schreibe mir eine Mail ([email protected]) wenn du bereit bist due Zukunft der App mitzugestalten.

Entwickler

Setup

Aktuelle Funktionen

  • Mitglieder auflisten, sortieren und filtern
  • Details von Mitgliedern ansehen. Adresse auf der Karte anzeigen. Über Buttons anrufen, E-Mails schreiben.
  • Über Grafiken und Auflistung den Tätigkeitsverlauf eines Mitglieds ansehen.
  • Mitgliedsdaten sind offline verfügbar und können nach belieben synchronisiert werden
  • Statistiken geben einen Einblick die aktuelle Mitgliederanzahl, Altersstruktur und Stufenwechsel

Geplante Funktionen

  • Mitglieder bearbeiten und anlegen per Texterkennung
  • Stufenwechsel durchführen
  • Führungszeugniss Antragsunterlagen herrunterladen

Nami Rechte

Um die App und deren Funktion verwenden zu können sind bestimmte NaMi-Rechte Vorraussetzung.

Vorraussetzung für die App

  • 5: Personen - mitglied_READ,
  • 36: Organisation - gruppierung_READ,
  • 58: Personen - taetigkeitassignment_READ,
  • 118: Personen - mitglied_SHOW_TAB,
  • 139: Personen - taetigkeitassignment_SHOW_TAB,
  • 314: Mgl-Verwaltung - Rechte anzeigen,

Mitglied bearbeiten

  • 4: Personen - mitglied_UPDATE,
  • 57: Personen - taetigkeitassignment_UPDATE,

Stufenwechsel durchführen

  • 57: Personen - taetigkeitassignment_UPDATE,
  • 59: Personen - taetigkeitassignment_CREATE,

Mitglied anlegen

  • 6: Personen - mitglied_CREATE,
  • 59: Personen - taetigkeitassignment_CREATE,
  • 313: Mgl-Verwaltung - Kontoverbindung anzeigen
  • 316: Mgl-Verwaltung - Mgl. Beitragskonto

Mitglied verewaltung (Admin)

  • 312: Mgl-Verwaltung - Mitgliedschaft beenden
  • 315: Mgl-Verwaltung - Mgl. übernehmen
  • 320: Mgl-Verwaltung - Mgl. Aktivieren
  • 455: Mgl-Verwaltung - Gruppierung bearbeiten

Führungszeugnis Unterlagen ansehen/herrunterladen

  • 473: Mgl-Verwaltung - Eigene SGB VIII-Bescheinigungen ansehen,
  • 474: Mgl-Verwaltung - Eigene SGB VIII-Bescheinigungen herunterladen,

dpsg-nami-app's People

Contributors

dependabot[bot] avatar jannecklange avatar vinzent03 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dpsg-nami-app's Issues

Meldung Stufenwechsel abgeschlossen

Voraussetzung: #77

Nachdem das für den Stufenwechsel gespeicherte Datum verstrichen ist soll der Nutzer darauf hingewiesen werden und zum durchführen des Stufenwechsel motiviert werden. Es scheint ein Banner über den die Stufenwechsel Seite geöffnet werden kann.

Figma Prototype

Wann erscheint der Hinweis?

  • Die Meldung soll einmal beim öffnen der App angezeigt
    • Wenn Daten im Hintergrund synchronisiert werden, dann danach
  • Frühestens am Tag des Stufenwechsel und spätestens eine Woche nach dem Stufenwechsel
  • Der Button Später erinnern führt dazu, dass die Meldung beim nächsten öffnen oder nach 3 Stunden erneut angezeigt wird

Was ist Inhalt vom Banner?

  • Text könnte wie folgt sein: Heute ist | Gestern war | Vor X Tagen war Stufenwechsel. Führe jetzt einen Stufenwechsel durch.
  • Button Erneut erinnern -> Schließt das Banner vorübergehend
  • Button Abbrechen -> Schließt die Meldung
  • Button Stufenwechsel prüfen -> Öffnen Stufenwechsel Seite

Seite: Stufenwechsel prüfen
Seite 1:

  • Liste mit Mitgliedern die wechseln können, sortieret nach Stufe und Alter. Mitglieder können selektiert werden
  • Button: Weiter

Seite 2:

  • Überprüfe die ausgewählten Mitglieder, Stufenwechsel kann in der App nicht rückgängig gemacht werden.
  • Liste ausgewählte Mitglieder aus
  • Button: Stufenwechsel durchführen -> Stufenwechsel durchführen

Seite 3:

  • Statusbericht Success/Fail
  • Stufenwechsel wurde erfolgreich durchgeführt
  • Auflisten welche Mitglieder gewechselt worden (Wenn fehlschlage dabei waren markieren und hervorheben)
  • Im Hintergrund alle Mitglieder aktualisieren
  • Button: Abschließen -> Schließt Modal

Stufenwechsel Datum

Anstelle des aktuellen Textes "dd-mm" füsStufenwechsel-Datum in den Einstellungen soll das konkrete Datum "dd-mmm-YYYY" gespeichert werden.

Mitgliedsfilter speichern

Der Filter soll gespeichert werden können. Der gespeicherte Filter wird als neuer Toggle neben den Filter in der Liste angezeigt (siehe Bild).
Beim öffnen der Liste ist der Filter angewendet.

Meldung Daten wurden geändert

Beim Start der App werden alle 24 Stunden die Daten im Hintergrund aktualisiert. Wenn dabei Mitglieder geändert worden sind, soll eine Meldung erscheinen die es ermöglicht die Änderungen aufzulisten.

Dazu müssen kurzfristig die alte und die neue Version des Mitglieds gespeichert werden um diese in dieser Meldung oder #76 anzuzeigen

Die Änderungen werden nach Klick auf den Hinweis in einem Modal aufgelistet.

NaMi sendet teilweise falsches Geburtsdatum

Die Nami sendet gelegentlich ein offensichtlich falsches Geburtsdatum. Der Fehler wird bereits von der App erkannt und geloggt.
Tritt der Fall auf, dann soll das Mitglied direkt erneut aus der NaMi geladen und der Fehler somit korrigiert werden.

Der retry soll nur einmalig geschehen. Sollte das Datum tatsächlich falsch in Datenbank stehen, darf es nicht zu einer Endlosschleife führen.

Tatsächlich ist das Mitglied am 26.10.2007 Geboren

Stufen Altersbereiche einstellbar

In meinem Stamm werden Rover zum Beispiel erst ab 16 Jahren. Daher ist die Stufenwechselempfehlung weniger hilfreich.
Ich würde also in den Einstellungen die Möglichkeit bieten, für alle Stufen die Altersbereiche zu editieren. Als Standardwerte werden dabei die aktuellen verwendet.

Meldung zum ersten Start der App

Voraussetzung: #77

Wird die App das erste mal gestartet, soll nach dem Login eine Begrüßungsseite/-modal erscheinen.

Auf dieser Seite sollen Initiale einstellungen vorgenommen werden

  • #77
  • Ort des Stammesheims

Mitglied - Tätigkeiten - Tätigkeiten aus anderen Gruppierungen kennzeichnen

Aktuell sind Tätigkeiten in der aktuellen Gruppierung nicht von der in einer anderen Gruppierung zu unterscheiden.

Sind Tätigkeiten aus anderen Gruppierungen, soll die Gruppierung ebenfalls angezeigt werden.

Bei Tätigkeiten aus der aktuellen Gruppierung soll die Gruppierung weiterhin nicht angezeigt werden.

Altersdurchschnitt für Stufen

Könnte der Altersdurchschnitt für die Leitendenrunde errechnet und dargestellt werden? Ebenso für alle Stufen gemeinsam (wäre interessant zu wissen, wie der Altersmittelpunkt in Gruppen und Leitung aussieht).

Details - PieChart für Leitende

Aktuell zeigt das PieChart auf der Mitgliedsdetails Seite nur die Stufen und die Leitungszeit an. Ist man schon länger Leiter wird das Chart immer grauer. Als LeiterIn soll man mehr Infos über den eigenen Tätigkeitsverlauf erhalten.

  • Mitglieder sehen wie jetzt ihre Stufenzeiten.
  • Wenn man Leitung wird ändert sich die Darstellung sobald man länger Leitet als man Mitglied war.
  • Die Stufenzeit wird in einem Küchenstück zusammengefasst und die Stufen in denen man geleitet hat oder andere Tätigkeiten aufgeschlüsselt.
  • Bei parallelen Tätigkeiten ist wie bisher zu verfahren (periodisieren oder parallel anzeigen)

Meldung Stufenwechsel abgeschlossen - Nach Änderung von anderen

Voraussetzung: #75 #74

Nach dem Stufenwechsel wird eine Meldung angezeigt (#74). Die Meldung bekommt eine Erweiterung, wenn durch jemand anderen bereits ein Stufenwechsel durchgeführt worden ist (Wird ermittelt durch: #75).

In der Stufenwechsel Meldung sollen gerade gewechselte Mitglieder aufgelistet werden.

Die Auflistung der Mitglieder ist nur einmalig geplant. Die Änderungen an Mitglieder werden nicht langfristig gespeichert.

Speichern und senden von LoadData Log

Um im Falle eines Fehlers während des Landes das Problem analysieren zu können, sollen die Nutzer Log Daten senden können.

  • Schreibe immer log Daten
    • Datum + Uhrzeit
    • Ladeart Komplett / Einfach / Background
    • Requests / Result
      • Login (Mitgliedsnummer, Success)
      • Gruppierung (Komplett)
      • Member (id letzte 3 Stellen, mglType, status, stufe)
      • Tätigkeiten (taetigkeit, untergliederung, isActive)
      • Rechte (Komplett)
  • Füge dem LoadingScreen im Fehlerfall die Option zum senden der Logs hinzu
    • Bei Klick auf den Button; Informiere den Nutzer darüber welche Daten geteilt werden (Mitgliedsnummer, ID, eigene Rechte, eigene aktive Tätigkeiten, Gruppierung, Mitglieder und Tätigkeiten ohne Personenbezogene Daten)
  • Sende die Logs per Mail
  • Lösche Logs die älter als [1 Jahr] sind

Mitglieder ohne Eintrittsdatum

Anscheinend ist das Eintrittsdarum kein Pflichtfeld in der Nami. Vom System wird in so einem Fall der 1. Januar 1599 gesetzt. Das Eintrittsdatum wird in den Details als "X Pfadfinderjahre" angezeigt.

Anstelle dafür das Eintrittsdatum zu nutzen, soll die aktive Zeit anhand der Tätigkeiten errechnet werden. So wird auch eine inaktive Zeit herausgerechnet.

Bildschirmfoto 2024-04-06 um 12 31 12

Stufenwechsel Datum aktualisieren

Voraussetzung: #74

Nach einem Stufenwechsel muss das Datum für den nächsten Stufenwechsel gesetzt werden. Klickt man in der Meldung von #74 auf Abbrechen oder führt einen Stufenwechsel durch, dann erscheint ein weiterer Banner: "Das Datum für den nächsten Stufenwechsel ist nicht gesetzt."

Figma Prototype

  • Buttons Später und Jetzt Aktualisieren // Kein Abbrechen Button?
  • Nach klick auf aktualisieren öffnet sich ein Modal um das Datum zu setzten.
  • Textinhalt ungefähr: "Ein möglichst genaues Datum für den nächsten Stufenwechsel sorgt für aktuelle Statistiken und Empfehlungen für zukünftige Stufenwechsel. Bist du dir nicht sicher, wann der nächste Wechsel ist genügt ein ungefähres Datum. Das Datum kann jederzeit in den Einstellungen angepasst werden."
  • DateInput um neues Datum einzutragen, vorausgefüllt mit selben Wochentag in einem Jahr (+52 Wochen)

In den Statistiken Mitgliedsdetails öffnen

In den Statistiken/Stufenwechel möchte ich auf ein Mitglied klicken können um die Details zu öffnen.

Von Wiredash: Eine Verknüpfung wäre in den Statistiken praktisch: Heißt beim Tippen auf die Mitgliederverteilung gleich zu sehen wer zur jeweiligen Stufe gehört & auch direkt auf einzelne Mitgliedsdaten dann danach zugreifen zu können (dann geht das suchen schneller).

Einstellungen - Ort des Stammheims

In den Mitgliedsdetails wird auf einer Karte die Adresse des Mitglieds in Relation zum Stammheim angezeigt. Der Ort des Stammheims ist aktuell statisch festgelegt.

  • Die Adresse soll in den Einstellungen festgelegt werden.
  • Die Adresse ist leer, wenn sie nicht explizit einstellt worden ist.
  • Die Karte zeigt nur die Adresse des Mitglieds auf der Karte an, wenn keine Adresse festgelegt worden ist.
Bildschirmfoto 2024-03-27 um 22 28 31

Statistik - dynamische Spannweiten

Stufenverteilung: Leere Stufen nicht anzeigen.

Altersverteilung: Das jüngste und das älteste Mitglied definiert die Grenzen der Grafik um leere Bereiche zu vermeiden.

image

Leitung einer Stufe aus Tätigkeit erkennen

In den Tätigkeiten ist gespeichert, ob das Mitglied eine Stufe leitet. Das soll in der Mitgliedsliste ersichtlich sein.
Der Farbbalken soll dann in Gelb+Stufenfarbe dargestellt werden.

Depends on: #10

Details PieChart - Parallele Zeiten priorisieren

Welche und wie viele Tätigkeiten ein Mitglied parallel hat ist theoretisch nicht limitiert. Die Grafik muss damit klar kommen und etwas sinnvolles anzeigen.

  • Wenn technisch möglich sollen parallele Tätigkeiten parallel angezeigt werden (Leitung einer Stufe und Vorstand oder Rover und Leiter)
  • wenn nicht müssen parallele Tätigkeiten periodisiert werden (Die Tätigkeit als Vorstand sollte mehr gewürdigt werden als die Leitung einer Stufe).
  • Wie bisher sollen Mitgliedszeiten in einer Stufe farblich getrennt gekennzeichnet werden. Leitungstätigkeiten werden zusammengefasst (mit #59 wird die Funktionalität erweitert).
  • Das PieChart soll zusammengerechnet immer die Anzahl der aktiven Jahre ergeben.
  • Tätigkeiten mit einer Dauer unter einem Monat werden nicht in der Grafik berücksichtigt.
  • Die Grafik wird erst angezeigt, wenn mehr als ein Element in ihr ist. (Die Grafik hat keinen Mehrwert, wenn ein Wö nur Wö ist)

Beispiel 1: Du bist seit 10 Jahren dabei, hast 4 Jahre Jufis, 4 Jahre Pfadis geleitet warst parallel 5 Jahre Materialwart und jetzt seit 4 Jahren Vorstand? Dann werden 4 Jahre Jufi, 2 Jahre Pfadi, 4 Jahre Vorstand angezeigt (oder 2 Jahre Pfadi und Vorstand parallel), der Materialwart wird nicht angezeigt)

Beispiel 2: In den 10 Jahren hast du erst eine Stufe geleitet und dann nur noch den Materialwart übernommen? Dann wird such der Materialwart im Chart angezeigt.

Mitgliedsdetails aus Mitgliedsliste Laden

Um die Anzahl der Requests an die NaMi zu verringern sollen die Details eines Mitglieds aus der Liste der Mitglieder gelesen werden und nicht durch einen extra aufruf an die NaMi.

Mitgliedsdetails: Stufenwechsel aktivieren

Die Funktion zum Stufenwechsel in den Tätigkeiten eines Mitglieds aktivieren.

  • Hat ein Nutzer die Rechte einen Stufenwechsel durchzuführen, dann wird das Tätigkeit-Element vorgeschlagene zukünftige Tätigkeit (mit Wechseln-Button) angezeigt.

Bearbeitung von Mitgliedern explizit aktivieren

Die Bearbeitung von Mitgliedern muss bewusst erfolgen. Außdem soll vorsichtigen Nutzern die Angst genommen werden versehentlich was falsch zu machen.
Daher soll die Bearbeitung von Mitgliedern zuerst in den Einstellungen aktiviert werden.

Danach Tauchern auch erst die entsprechenden Funktionen (Stufenwechsel, Mitglied anlegen) auf.

Offline-Mode gegen Syncronisation ändern

Da die Syncronisation sowieso nur in größeren Zeitintervallen notwendig ist,
soll der Offline Switch gegen einen "Jetzt Syncronisieren" Button getasucht werden. Das Syncronisieren wird einmal im Monat angefragt.

Allgemeine graphische Änderungen

  • Das Home/Dashboard verschwindet. Die Mitgliedsliste ist über das Seitentüre direkt zu erreichen
  • Das Filtermenü benötigt einen neuen Anstrich
  • Die Mitgliedsdetails benötigen einen neuen Anstrich

Nutzung der App ohne Rechte

Mit der Implementierung des eigenen Profiles soll es möglich sein die App auch zu nutzen ohne Rechte zu haben andere Mitglieder zu sehen. In diesem Fall wird die Mitgliedsliste ausgeblendet.

Nami Token aktualisieren

Aktuell wird der Nami-Cookie-Token nur beim Login gesetzt. Wenn dieser Abgelaufen ist schlagen die requests zur Nami (zB Sync) fehl.

Schlägt ein request fehlt, soll versucht werden den Token zu aktualisieren und den Request erneut versuchen

Tab auf Loginseite führt zu Fehler

Nach dem Logout kann man im Feld Mitgliedsnummer auf der Loginseite nicht mit Tab ins Passwort Feld springen.

Prio gering, Handy nutzt in der Regel kein Tab

════════ Exception caught by services library ══════════════════════════════════
Tried to get the bounds of a focus node that didn't have its context set yet.
The context needs to be set before trying to evaluate traversal policies. Setting the context is typically done with the attach method.
'package:flutter/src/widgets/focus_manager.dart':
Failed assertion: line 837 pos 7: 'context != null'



════════ Exception caught by services library ══════════════════════════════════
The following assertion was thrown while processing the key message handler:
Tried to get the bounds of a focus node that didn't have its context set yet.
The context needs to be set before trying to evaluate traversal policies. Setting the context is typically done with the attach method.
'package:flutter/src/widgets/focus_manager.dart':
Failed assertion: line 837 pos 7: 'context != null'

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.yml


KeyMessage: KeyMessage([KeyDownEvent#f4e8e(physicalKey: PhysicalKeyboardKey#e9c9a(usbHidUsage: "0x0007002b", debugName: "Tab"), logicalKey: LogicalKeyboardKey#1ba88(keyId: "0x100000009", keyLabel: "Tab", debugName: "Tab"), character: "	", timeStamp: 44:59:40.115807)])

Biometrischer Login

Um die Nutzung der App zu schützen soll der Nutzer nach dem ersten Login gefragt werden, ob die App mit einem Biometrischen Login geschützt werden soll.
Die Option kann in den Einstellungen nachträglich aktiviert werden.

Mitgliedsliste - Alle Mitglieder auf einer Karte suchen und auswählen

  • In der Mitgleidsliste kann eine Karte geöffnet werden auf der alle Mitglieder zu sehen sind.
  • Die Marker haben die Farbe der Stufe des Mitglieds
  • Ab einer Zoomstufe oder wenn der Platz da ist soll der Marker mit dem Namen des Mitglieds benannt werden
  • Klickt man auf einen Marker werden die Mitgliedsdetails geöffnet

Alle Daten bei Logout löschen

Damit es durch den wechsel eines Nutzers nicht zu falschen Daten kommt, sollen alle gespeicherten Daten gelöscht werden, wenn der Nutzer sich abmeldet.

Zu Prüfen: Was passiert, wenn Zugangsdaten nicht gespeichert worden sind und das Token ausgelaufen ist?

  • Wenn dann ein Login notwendig ist, darf sich nur der vorherige Nutzer anmelden oder muss explizit abgemeldet werden, oder
  • Die Daten werden standartmäßig gelöscht.

Nach Sync Daten direkt anzeigen

Nach dem Synchronisieren von Daten muss der Mitglieder Tab erst neu geladen werden um Änderungen zu sehen. Diese Daten sollte automatisch neu geladen werden.

Profil mit allen Daten zur eigenen Person

Die Seite Profil soll im Gegensatz zu den einfachen Details eines Mitglieds alle vorhandenen Informationen anzeigen.

  • Stammdaten
  • Adress- und Kontaktdaten
  • alle Tätigkeiten
  • Führungszeugnis
  • Eigene Rechte (+ Erklärung)

Optional:

  • Kontoverbindung (Wenn möglich - Rechte?)
  • Version / Änderungsdatum / ggf Änderungshistorie
  • Ausbildung

Zeige Syncronisationsstatus

Dem Nutzer sollte der aktuelle Status der Syncronisation angezeigt werden, damit dieser weiß, wann die Daten aktuell sind.

Debug Feature Toggle

Um die App für einen Release sauber zu bekommen müssen aktuell unfertige Funktionen in einem Release Build ausgeblendet werden.

  • Mitglied bearbeiten
  • Stufenwechsel
  • leere Seiten

Loading Screen

Der LodingScreen ist bisher ohne Design eingebaut. Es gibt keine Vorgaben ans Design.

Aktuell

Führungszeugnis Antragsunterlagen

Im eigenen Profil soll die Möglichkeit bestehen Führungszeugnis-Antragsunterlagen runterladen und Bescheinigungen einsehen zu können.

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.