# Roadmap 2022 / 2023 ## unsortierte Sammlung von Themen 1. backend access layer - Refactoring der Resolver-Klassen - Daten-Zugriffschicht zur Kapselung der DB-Schicht - Transfer-Datenmodel zum Austausch von Daten zwischen den Schichten - technisches Transaktion-Handling und Lösung von Deadlocks - Konzept in Arbeit 2. capturing alias - Konzept fertig - Änderungen in Register- und Login-Prozess 3. Passwort-Verschlüsselung: Refactoring - Konzept aufteilen in Ausbaustufen - Altlasten entsorgen - Versionierung/Typisierung der verwendeten Verschlüsselungslogik notwendig - DB-Migration auf encryptionType=EMAIL 4. Passwort-Verschlüsselung: Login mit impliziter Neuverschlüsselung * Logik der Passwortverschlüsselung auf GradidoID einführen * bei Login mit encryptionType=Email oder OneTime triggern einer Neuverschlüsselung per GradidoID * Unabhängigkeit von Email erzeugen * Änderung der User-Email ermöglichen 5. Contribution-Categories - Bewertung und Kategorisierung von Schöpfungen: Was hat Wer für Wen geleistet? - Regeln auf Categories ermöglichen - Konzept in Arbeit 6. Statistics / Analysen 7. Contribution-Link editieren 8. User-Tagging - Eine UserTag dient zur einfachen Gruppierung gleichgesinnter oder örtlich gebundener User - Motivation des User-Taggings: bilden kleinerer lokaler User-Gruppen und jeder kennt jeden - Einführung einer UserTaggings-Tabelle und eine User-UserTaggings-Zuordnungs-Tabelle - Ein Moderator kann im AdminInterface die Liste der UserTags pflegen - neues TAG anlegen - vorhandenes TAG umbenennen - ein TAG löschen, sofern kein User mehr diesem TAG zugeordnet ist - Will ein User ein TAG zugeordnet werden, so kann dies nur ein Moderator im AdminInterface tun - Ein Moderator kann im AdminInterface - ein TAG einem User zuordnen - ein TAG von einem User entfernen - wichtige UseCases: - Zuordnung eines Users zu einem TAG durch einen Moderator - TAG spezifische Schöpfung - User muss für seinen Beitrag ein TAG auswählen können, dem er zuvor zugeordnet wurde - TAG-Moderator kann den Beitrag bestätigen, weil er den User mit dem TAG (persönlich) kennt 9. User-Beziehungen und Favoritenverwaltung - User-User-Zuordnung - aus Tx-Liste die aktuellen Favoriten ermitteln - Verwaltung von Zuordnungen - Auswahl - Berechtigungen - Gruppierung - Community-übergreifend - User-Beziehungen 10. technische Ablösung der Email und Ersatz durch GradidoID * APIs / Links / etc mit Email anpassen, so dass keine Email mehr verwendet wird * Email soll aber im Aussen für User optional noch verwendbar bleiben * Intern erfolgt aber auf jedenfall ein Mapping auf GradidoID egal ob per Email oder Alias angefragt wird 11. Zeitzone - User sieht immer seine Locale-Zeit und Monate - Admin sieht immer UTC-Zeit und Monate - wichtiges Kriterium für Schöpfung ist das TargetDate ( heißt in DB contributionDate) - Berechnung der möglichen Schöpfungen muss somit auf dem TargetDate der Schöpfung ermittelt werden! **(Ist-Zustand)** - Kann es vorkommen, dass das TargetDate der Contribution vor dem CreationDate der TX liegt? Ja - Beispiel: User in Tokyo Locale mit Offest +09:00 - aktiviert Contribution-Link mit Locale: 01.11.2022 07:00:00+09:00 = TargetDate = Zieldatum der Schöpfung - die Contribution wird gespeichert mit - creationDate=31.10.2022 22:00:00 UTC - contributionDate=01.11.2022 07:00:00 - (neu) clientRequestTime=01.11.2022 07:00:00+09:00 - durch automatische Bestätigung und sofortiger Transaktion wird die TX gespeichert mit - creationDate=31.10.2022 22:00:00 UTC - **zwingende Prüfung aller Requeste: auf -12h <= ClientRequestTime <= +12h** - Prüfung auf Sommerzeiten und exotische Länder beachten - - zur Analyse und Problemverfolgung von Contributions immer original ClientRequestTime mit Offset in DB speichern - Beispiel für täglichen Contribution-Link während des Monats: - 17.10.2022 22:00 +09:00 => 17.10.2022 UTC: 17.10.2022 13:00 UTC => 17.10.2022 - 18.10.2022 02:00 +09:00 => 18.10.2022 UTC: 17.10.2022 17:00 UTC => 17.10.2022 !!!! darf nicht weil gleicher Tag !!! - Beispiel für täglichen Contribution-Link am Monatswechsel: - 31.10.2022 22:00 +09:00 => 31.10.2022 UTC: 31.10.2022 15:00 UTC => 31.10.2022 - 01.11.2022 07:00 +09:00 => 01.11.2022 UTC: 31.10.2022 22:00 UTC => 31.10.2022 !!!! darf nicht weil gleicher Tag !!! 12. Layout 13. Lastschriften-Link 14. Registrierung mit Redeem-Link: * bei inaktivem Konto, sprich bisher noch keine Email-Bestätigung, keine Buchung möglich * somit speichern des Links zusammen mit OptIn-Code * damit kann in einem Resend der ConfirmationEmail der Link auch korrekt wieder mitgeliefert werden 15. Manuelle User-Registrierung für Admin - soll am 10.12.2022 für den Tag bei den Galliern produktiv sein 16. Dezentralisierung / Federation - Hyperswarm - funktioniert schon im Prototyp - alle Instanzen finden sich gegenseitig - ToDo: - Infos aus HyperSwarm in der Community speichern - Prüfung ob neue mir noch unbekannte Community hinzugekommen ist? - Triggern der Authentifizierungs- und Autorisierungs-Handshake für neue Community - Authentifizierungs- und Autorisierungs-Handshake - Inter-Community-Communication - **ToDos**: - DB-Migration für Community-Tabelle, User-Community-Zuordnungen, UserRights-Tabelle - Berechtigungen für Communities - Register- und Login-Prozess für Community-Anmeldung anpassen - Auswahl-Box einer Community - createUser mit Zuordnung zur ausgewählten Community - Schöpfungsprozess auf angemeldete Community anpassen - "Beitrag einreichen"-Dialog auf angemeldete Community anpassen - "meine Beiträge zum Gemeinwohl" mit Filter auf angemeldete Community anpassen - "Gemeinschaft"-Dialog auf angemeldete Community anpassen - "Mein Profil"-Dialog auf Communities anpassen - Umzug-Service in andere Community - Löschen der Mitgliedschaft zu angemeldeter Community (Deaktivierung der Zuordnung "User-Community") - "Senden"-Dialog mit Community-Auswahl - "Transaktion"-Dialog mit Filter auf angemeldeter Community - AdminInterface auf angemeldete Community anpassen - "Übersicht"-Dialog mit Filter auf angemeldete Community - "Nutzersuche"-Dialog mit Filter auf angemeldete Community - "Mehrfachschöpfung"-Dialog mit Filter auf angemeldete Comunity - Subject/Texte/Footer/... der Email-Benachrichtigungen auf angemeldete Community anpassen ## Priorisierung 1. Contribution-Link editieren (vlt schon im vorherigen Bugfix-Release Ende Okt. 2022 fertig) 2. Passwort-Verschlüsselung: Refactoring **Konzeption fertig!!**! 3. Manuelle User-Registrierung für Admin (10.12.2022) **Konzeption ongoing!!**! 4. Passwort-Verschlüsselung: implizite Login-Neuverschlüsselung **Konzeption fertig!!**! 5. Layout 6. Zeitzone 7. Dezentralisierung / Federation 8. capturing alias **Konzeption fertig!!**! 9. Registrierung mit Redeem-Link: bei inaktivem Konto keine Buchung möglich 10. Subgruppierung / User-Tagging (einfacher Ansatz) 11. backend access layer 12. technische Ablösung der Email und Ersatz durch GradidoID 13. User-Beziehungen und Favoritenverwaltung 14. Lastschriften-Link 15. Contribution-Categories 16. Statistics / Analysen