Skip to content

Das kannst du tun - mit eigenen Inhalten (Taschenhelfer) #13

Description

@tjorbo
Aufgaben des Product-Owners

Definition of Ready (DoR) v1

  • Story mit Stakeholdern abstimmen
  • Notwendige Designs für die Devs ausreichend definieren
  • Wert (Nutz-, Kunden- und Wissens-Wert) mit Stakeholder abstimmen
  • Größe (Aufwand, Komplexität) mit DEVs abstimmen
  • Quality Attribute Scenarios (QAS) abstimmen

Story

Als Feuerwehrmitglied möchte ich wissen, was ich nach außergewöhnlichen Belastungen tun kann und die Dinge um eigene Ideen ergänzen, um sie nach einer außergewöhnlichen Belastung umzusetzen. Außerdem möchte ich meine eigenen Vorsätze eintragen, um im Bedarfsfall erinnert zu werden.

Technische Details

Image

Design

https://www.figma.com/design/9tfOiZ7fXraAh0otAPs4kl/Eike-App-2.0?node-id=3-6

Akzeptanzkriterien

Design

  • Das Design für ein "Ding" wurde erstellt
  • Das Design ist mit den Stakeholdern abgestimmt
  • Das Design ist mit dem Team abgestimmt

Dev

  • Der Screen "Meine 7 Sachen" ist dem Design entsprechend umgesetzt

Definition of Done (DoD) v2

  • Es existiert mindestens ein automatisierter Akzeptanztest pro Akzeptanzkriterium
  • Der Autor hat den Code selbst überprüft
  • Das Aussehen der App entspricht den besprochenen Design-Entwürfen (z. B. aus Figma)
  • Alle Entscheidungen wurden mit Kontext im Issue vermerkt.
  • Das Design wurde mit einem Gerät jeder Geräteklasse (in der README) geprüft.

Activity

  1. added theissue type on Oct 10, 2025
  2. changed the title [-]Design: Das kannst du tun (mit eigenen Inhalten)[/-] [+]Design: Das kannst du tun - mit eigenen Inhalten[/+] on Oct 10, 2025
  3. moved this from 🆕 Create to ⚖️Triage in EikeAppon Oct 10, 2025
  4. moved this from ⚖️Triage to 🔎Prepare in EikeAppon Oct 10, 2025
  5. removed
    questionFurther information is requested
    on Oct 21, 2025
  6. changed the title [-]Design: Das kannst du tun - mit eigenen Inhalten[/-] [+]Das kannst du tun - mit eigenen Inhalten[/+] on Oct 26, 2025
  7. moved this from 🔎Prepare to 📨 Soon in EikeAppon Nov 4, 2025
  8. changed the title [-]Das kannst du tun - mit eigenen Inhalten[/-] [+]Das kannst du tun - mit eigenen Inhalten (Taschenhelfer)[/+] on Nov 5, 2025
  9. moved this from 📨 Soon to 📋 Backlog in EikeAppon Nov 5, 2025
  10. 19 remaining items

  11. dennisprzytarski commented on Jan 2, 2026

    @dennisprzytarski
    Contributor

    @nemacke (& @tjorbo) Die Icons sind aktuell als jpgs mit weißem Hintergrund angelegt. Entweder wir geben die transparent als png aus oder direkt mit dem blauen Hintergrund und Rest außenrum transparent, weil der blaue Hintergrund einen Noise-Effekt hat. Dieser lässt sich nicht einfach durch Farbangabe reproduzieren.
    Müsste dem im Content Repo aktualisiert werden.

    Image Image
  12. dennisprzytarski commented on Jan 3, 2026

    @dennisprzytarski
    Contributor

    @tjorbo bzgl Datenspeicherung:
    secured_storage_flutter funktioniert von Haus aus ohne Biometrie, kann also jederzeit optional dazugeschaltet werden.

    Ich würde dann jetzt für Tipps und Kontakte (und später Chats) drift einbauen und die DB mit sqlcipher_flutter_libs verschlüsseln wie es hier drin steht: https://drift.simonbinder.eu/platforms/encryption/
    Den Schlüssel hinterlege ich dann im secure_storage_flutter, wo man später auch andere Keys und Tokens hinterlegen kann bei Bedarf.
    Die unkritischen App-Einstellungen werden in shared_preferences hinterlegt.

  13. moved this from 📋 Backlog to 🏗 In Bearbeitung in EikeAppon Jan 6, 2026
  14. nemacke commented on Jan 26, 2026

    @nemacke

    Image

    Image

    Image

    Image

    Image

    Image

    Image

  15. dennisprzytarski commented on Feb 1, 2026

    @dennisprzytarski
    Contributor

    @tjorbo hier die Infos zur Speicherung:

    Für PO: Welche Daten werden lokal verarbeitet?

    Grundsatz

    • Alle Daten werden lokal auf dem Gerät gespeichert.
    • Es findet in der aktuellen Implementierung keine Übertragung an Server/Cloud statt.
    • Biometrie wird nicht von der App gespeichert; die App nutzt nur die vom Betriebssystem bereitgestellte Authentifizierung.

    Kategorien gespeicherter Daten

    A) Vom Nutzer eingegebene Inhalte (verschlüsselt in der App-Datenbank)

    1. Kontaktdaten Einsatznachsorgeteam

      • Teamname
      • Telefonnummer
      • E-Mail-Adresse
    2. Persönliche Notizen zu den “7 Tipps”

      • Freitext pro Tipp (1–7), vom Nutzer eingegeben

    Schutz

    • Speicherung erfolgt in einer verschlüsselten lokalen Datenbank (SQLCipher).
    • Zugriff ist nur innerhalb der App möglich.

    B) Sicherheits-/Konfigurationsdaten (Secure Storage)

    1. Verschlüsselungs-Schlüssel (technischer Key)

      • Zweck: Entschlüsselung der lokalen Datenbank
      • Wird nur lokal im sicheren Gerätespeicher abgelegt (Keychain/Keystore).
    2. App-Lock Einstellung

      • Ob die optionale App-Sperre aktiviert ist (ja/nein)
      • Ebenfalls im sicheren Gerätespeicher.

    C) Technischer Marker (SharedPreferences)

    • Ein Flag/Marker, ob es sich um den ersten App-Start nach Installation handelt
      (nur zur technischen Initialisierung; keine Inhaltsdaten).

    Biometrie / Face ID / Fingerprint

    • Die App nutzt die Systemfunktion zur Authentifizierung über local_auth.
    • Es werden keine biometrischen Daten von der App erhoben oder gespeichert.
    • Das Betriebssystem verarbeitet Biometriedaten innerhalb seiner Sicherheitsumgebung.

    Löschkonzept

    • In der App gibt es “Alle Daten löschen”: entfernt die in Drift gespeicherten Inhalte (Kontaktdaten + Tipps/Notizen).
    • Bei Deinstallation werden DB-Dateien in der App-Sandbox entfernt; Secure-Storage Einträge können auf iOS ggf. bestehen bleiben (wird durch First-run Reset auf Default zurückgeführt).
    Übersicht für Entwickler: Welche Speichertorte nutzen wir wofür?

    1) Drift + SQLCipher (verschlüsselte lokale Datenbank)

    Technik

    • Drift als ORM/Query-Layer
    • SQLite-Datei, die mit SQLCipher verschlüsselt wird (sqlcipher_flutter_libs + sqlite3 FFI)
    • DB wird beim App-Start initialisiert; SQLCipher wird via setupSqlCipher() aktiviert.

    Speichert aktuell

    • Einsatznachsorgeteam-Kontaktdaten (Teamname, Telefonnummer, E-Mail)
    • User-Notizen zu den 7 Tipps (Text pro Tipp-Position 1–7)

    Wo liegt das?

    • Lokale App-Sandbox (Dateisystem des Geräts, z. B. App Documents/Application Support).
    • Wird bei Deinstallation i. d. R. entfernt.

    Zugriff im Code

    • Über AppDatabase (global bereitgestellt via Provider)
    • Typische Methoden: watchTeamContact(), upsertTeamContact(...), watchUserTipNote(position), upsertUserTipNote(position, note).

    2) flutter_secure_storage (Keychain/Keystore)

    Technik

    • iOS: Keychain
    • Android: Keystore-backed Encrypted storage (je nach Gerät/OS-Version)

    Speichert aktuell

    • DB-Verschlüsselungs-Key für SQLCipher (einmalig erzeugt, dann wiederverwendet)
    • App-Lock-Preference (Boolean: “Biometrische App-Sperre aktiv”)

    Wichtiges Verhalten

    • iOS: Keychain-Einträge können eine App-Deinstallation überleben (Simulator/Device-abhängig).
      Deshalb nutzt ihr den “First-run reset” (Marker in SharedPreferences), um Defaults nach Neuinstallation wiederherzustellen.

    3) local_auth (Biometrie/Device Credentials, kein persistenter Speicher)

    Technik

    • Nur zur Authentifizierung (Face ID / Touch ID / Fingerprint / Geräte-PIN/Passcode, je nach Plattform)
    • Speichert selbst keine Daten, liefert nur “auth ok / nicht ok”.

    Einsatz

    • App-Lock: bei App-Resume wird ein Overlay gezeigt und bei aktivierter Sperre authentifiziert.

    4) shared_preferences (nur Marker für “First run”)

    Technik

    • Unverschlüsselter Key-Value Store innerhalb der App-Sandbox.

    Speichert aktuell

    • Installations-/First-run Marker, um nach Neuinstallation Keychain-Werte (z. B. App-Lock Flag) zurückzusetzen.

    Hinweis

    • Keine fachlichen Inhalte, nur technischer Marker.
  16. moved this from 🏗 In Bearbeitung to ⁉️ Review in EikeAppon Feb 1, 2026
  17. tjorbo commented on Feb 3, 2026

    @tjorbo
    MemberAuthor

    Super, die Infos können wir sehr gut für #47 nutzen 👍

  18. dennisprzytarski commented on Feb 8, 2026

    @dennisprzytarski
    Contributor

    @tjorbo, können wir alle Issues in Review closen?

  19. moved this from ⁉️ Review to ✅ Fertig in EikeAppon Feb 8, 2026
  20. closed this as completedby moving to ✅ Fertig in EikeAppon Feb 8, 2026
  21. tjorbo commented on Feb 8, 2026

    @tjorbo
    MemberAuthor

    @dennisprzytarski hab alles bis aus das Theme (soweit ich weiß fehlt da noch der korrekte Export) als fertig markiert. Vielen lieben Dank Dir 🍀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Projects

  • Status
    ✅ Fertig

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions