SIG Portal – Architektur

Überblick

Personen

  • Mitglieder
    • Zahlungen
    • Mitglied Karte generieren
  • Verwaltungsmitgliede

Niederlassungen

  • Konten

OrganisationenBriefe creatorOrte

  • Bewertungen

Veranstaltungen

  • Teilnehmer
  • Rapports
  • Unterlagen (z.B Präsentationen)

BuchhaltungMaterialen, LagerbestandNewsletter via E-Mail und SMSWiki bzw. Intranet

Technische Anforderungen

Versionskontrolle

Anforderungen:

  • Private Projekte
  • CI/CD
  • Integration für Hoster
  • Issue Tracking a la Tickets für die einzelnen Vorgehen
    • Visuelle Boards
    • Time Trackings a la Deadlines
  • Code Documentation
    • Wiki / Gitbook

Provider:

  • GitHub
    • Vorteile
      • Grössere Community
      • Mehr Integration
      • Mehrheitlich für public repositories vorteilhaft.
    • Nachteile
      • 3 Contributor bei privaten Projekten
  • GitLab
    • Vorteile
      • Genug Integration
      • Grosse Unterstützung für private und öffentliche Projekte
      • Alle Anforderungen werden erfüllt.
    • Nachteile
      • Keines..?

Entscheid:GitLab, da die Unterstützung für private Projekte besser gewährleistet wird.

Backend / Frontend

Anforderungen:

  • Stabil, modern
  • Community & Unterstützung
  • Breite Funktionsumfang & Erweiterbar
  • Bestehende Lösungskonzepte für die Berechtigungen
  • Logging
  • Mobilekonform & HTML5 & CSS3

Backend Technologie:

  • Spring Boot Java mit REST API
  • Nodejs Express

Frontend Technologie

  • React/Redux
  • Vue

Präferenz:

  • React & Spring Boot (Mixed Mode)

Nützliche Links:

Videos:

Entscheid:React und NodeJS

Relationale Datenbank

Provider:

  • MySQL
  • Postgres

Entscheid:

PostgreSQL: Ist 100% Open Source und gehört der Community, somit kann keine Firma den PostgreSQL abkaufen. Grosse Firmen migrieren von Oracle zur PostgreSQL.

Berechtigungen

Anforderungen:

  • Authentication
    • Login / Logout
  • Authorization
    • Rollenbasiert
      • Funktionsberechtigung
        • z.B: Sosyal Hizmetler, GOB, Sekreter usw.
      • Bereichsberechtigung
        • z.B: Genel Merkez, Bölge, Sube, Ana Teskilat usw.
    • Anzeige- & Schreibschutz auf Attributebene
      • Ich darf die Adressdaten der Person sehen, aber nicht, wieviel er gespendet hat.

Libraries:

Nützliche Links:

Videos:

Verlauf / Historie

Anforderungen:

  • Technische Datenhaltung
  • Keine Daten werden gelöscht! Die Historie muss nachverfolgbar sein.
  • NiceToHave: Auf einem Objekt kann man die Historie auch sehen und die Änderungen einzeln nachverfolgen!

Entscheid:Datenbank triggers. Jede Änderung wird in einer zweiten Tabelle gespeichert.

Datenbank Migration bei Modell Anpassungen

  • Wenn eine neue Version herausgebracht wird, welche Datenmodell Anpassungen beinhaltet, soll die laufende Version automatisch migriert werden, ohne manuell eingreifen zu müssen.
  • Erweitern und Reduzieren einer Tabelle und den Typ einer Spalte ändern usw. sollen möglich sein.
  • Bei einer Neuafsetzung eines Systems sollen alle Migrationen auch automatisch eingespielt werden.

Entscheid:Steht noch nicht fest

Hosting

Front End Hosting:

Back End Hosting:

Backup / TestDB

Anforderungen:

  • Tägliche Backups der DB
  • Rolling Backups alle 2 (?) Wochen
  • Eine zweite TestDB für die Benutzung in der Entwicklung?

Umgebungen

  • Mindestens 1 Testumgebung und 1 Live-Umgebung

Glossar


  • SABE: Der Sachbearbeiter, die Person, welche das Portal bedient.
  • User: Eine Repräsentation einer Person im System mit seinen diversen Daten wie Strasse, Geb.Datum usw.
  • Mitglied (Member): Definiert eine Person, welche eine Beziehung zu einer Niederlassung und zu einer Organisation hat.
    • Aktiver Mitglied: Eine Person, welche periodisch einen Mitgliedsbeitrag einer Niederlassung und einer Organisation zahlt.
      • Normalerweise bei der AT und KT der Fall.
    • Passiver Mitglied: Eine Person, welche keinen Mitgliedsbeitrag zahlt. Ist in der Regel in der GT Organisation der Fall.
      • Bei der GT und KGT der Fall.
  • Verwaltungsmitglied SYK (Boardmember):
  • Verwaltungsmitglied BYK (Boardmember):
  • Niederlassung (Branch): Symbolisiert einen Orts-, Regional- und Zentralverband. Die Strukur ist durch die Hierarchie gewährleistet. 
  • Organsiation (Organization): Die Organisationen innerhalb eines Verbandes wie AT, GT, KGT und KT.
  • Funktion (Function): Die einzelnen Aufgabengebiete einer Verwaltung wie Teskilatlanma, Tanitma, Muhasebe usw.

Funktionsumfang


User – Passive Mitglieder

  • Erfassung einzelner Personen für eine Niederlassung.
    • Eine Person kann in mehreren Niederlassungen/Ortsverband/Regionalverband Mitglied sein.
    • Eine Person kann in mehreren Organisationen Mitglied sein.
    • Ein Mitglied muss aber in einer Niederlassung und in einer Organisation drin sein.
    • Die Mitgliedschaft hat ein Start-(Pflicht) und ein End-Datum (Optional).
    • Der SABE darf eine neue Person auch nur in seinem Branch und in seiner Organisation erfassen.
      • Im Sub-Branch soll er keine neuen Daten erfassen können.
      • Höchstens soll eine Aktualisierung des Datensatzes möglich sein.
    • Bei der Erfassung der Personen muss die Mitgliedschaft zwingend erfasst werden.
    • Q: Was passiert, wenn für mehrere Organisation die Person mehrfach erfasst wurde?
      z.B: GT hat eine Person erfasst. AT erfasst die gleiche Person erneut.
      • Normalerweise sehr wichtig. Zurzeit der grösste Pain. Denn die jetzigen Bilanzen entsprechen nicht der Wahrheit.
        • Z.B. Der Jugendpräsident ist gleichzeitig Mitglied bei der AT. Dann wird er doppelt gezählt.
      • A: Über die Pflege der Personen ist jede Organisation selbst verantwortlich. Die SABE müssen ausgewählte, geschulte Personen sein.
        • Opt: Wir bieten eine Funktion an, welche die Ähnlichen/Gleichen Einträge ermittelt und ausgibt.
          • Die Sub Personen können ausfindig gemacht werden. Aber die Parent-Personen ausfindig zu machen ist schwierig.
          • Ein weiteres Problem ist dann die Erfassung der Personen mit unterschiedlichen Buchstaben.
        • Opt: Eindeutigkeit via Name, Vorname, Telefon-Nr oder Email Adresse. => Ein wichtiges Thema.
          • Es wird aber höchstwahrscheinlich am Anfang ein manueller Task sein.
          • Datenschutz muss tiefgründig analysiert werden.
  • Suche aller Personen für eine Niederlassung.
    • Der SABE darf nur die Personen sehen, welche auch in der gleichen Niederlassung oder in einer Sub-Niederlassung sind, wie er selbst.
      • Die Personen der Sub-Niederlassungen werden nicht automatisch mitangezeigt. Denn es braucht eine explizite Mitglieder-Beziehung zur Niederlassung. Es ist aber vorstellbar, dass trotzdem eine Möglichkeit (z.B. via Checkbox) angeboten wird, wodurch die Sub-Mitglieder auch aufgelistet werden.
    • Organisation
      • Variante 1: Alle Personen, welche für die Niederlassung erfasst worden sind, werden angezeigt.
        Dabei wird nicht zwischen den Organisationen (AT, GT, KGT, KT) unterschieden. Diese können per Suchkriterium weiter eingeschränkt werden.
      • Variante 2: Es werden nur die Personen entsprechend der Organisations-Hierarchie angezeigt.
        D.h. Wenn die suchende Person der AT dieser Niederlassung angehört, sieht er all die Sub-Organisations Personen auch. Aber wenn die suchende Person der GT dieser Niederlassung angehört, sieht er nur die Personen von dieser Organisation.
  • Beendigung einer Mitgliedschaft
    • Die Mitgliedschaft zu einer Organisation und zu einer Niederlassung kann auf ein bestimmtes Datum beendet werden.
    • Wenn das End-Datum abgelaufen ist, wird diese Person nicht mehr in der Suche für die Niederlassung dargestellt.
    • Die Person, welche keine aktiven Mitgliedschaft hat, wird sie deaktiviert.
  • Löschen einer Person
    • A: Diese kann beantragt werden. Die Admins überprüfen das Anliegen und Löschen dann manuell die betroffenen Objekte.

User – Aktive Mitglieder

  • Möglichkeit um einen periodischen Mitgliedsbeitrag zu zahlen.
  • Auf der Person soll eine Übersicht sein, welche die bezahlten Mitgliederbeiträge darstellt.
    • Defaultmässig soll für das aktuelle und das letzte Jahr dargestellt werden.
    • Weitere Jahren sollen nach Wunsch aufklappbar sein.
  • Es braucht eine stufenweise Erinnerung wie z.B. nach 6, 12, 18 Monaten usw.
    • In erster Linie müsste der SABE diese selbst pflegen.

Statistik

  • Mitgliederanzahl über die letzten 5 Jahre.
  • Verwaltungsmitgliederanzahl über die letzten 5 Jahre.
    • Die Übergänge von GT in die AT.
  • Staatsbürgerschaft
  • Jahresbilanz über die Teilnahmen der Mitglieder.
  • Jahresbilanz der Mitgliederbeiträgen.

Abi / Abla / Kardes / Verantwortlicher

  • In mittlerer Zukunft
  • Es gibt kleine Unterschiede zwischen der Verantwortlichkeit und dem Abi-Kardes Projekt.
    • Abi/Abla Kardes Projekt ist umfassender.
  • Zurzeit brauchts nur die Erfassung der Beziehungen.
  • Später kann die Pflege eingebaut werden wie z.B. Notizen, Aktivitäten usw.

Veranstaltungen / Sitzungen / Aktivitäten / Bildung

  • In weiter Zukunft…
  • Sitzungen, Lager, Altin Hilal, Alemlere Rahmet
    • Die Rapporte gelangen in der Regel an den Präsidenten und an die verantwortliche Person.
    • Es soll möglich sein bei wiederholende Aktivitäten zurück zu blicken und die Notizen durchzulesen.
  • Sitzung mit Datum für eine Organisation und einer Niederlassung
  • Sitzungsteilnehmer
    • Q: Wer darf alles als Sitzungsteilnehmer hinzugefügt werden?

Demirbas

  • In weiter Zukunft…
  • Cok kullanilmiyor. Ama aslinda önemlidir.

Spende

  • In weiter Zukunft…
  • Migration von der alten Welt in die neue Welt ist nicht vorgesehen.

Calisma Takvimi

  • Sehr wichtig, eine der zentralen Funktionalität.
  • Umfasst sehr vieles, aus diesem Grund muss es auch verstückelt angegangen werden.
  • Erfassung/Änderung der einzelnen Aktivitäten an bestimmten Daten.
  • Erfassung der Rapporte nachdem diese Aktivität durchgeführt worden ist.
  • Die Ansicht der Aktivitäten über eine bestimmte Zeit.
  • Die Ansicht der Unterorganisationen über eine bestimmte Zeit.
  • Die Ansicht der Niederlassungen über eine bestimmte Zeit.
  • Erkennung überschneidender Aktivitäten.

Devir Teslim Formu

  • In weiter weiter weiter Zukunft

Excel

  • Export der einzelnen Funktionen soll möglich sein.
  • Aber Import ist auf gar keinen Fall vorgesehen.

V 1.0


Funktionsumfang:

  • Members CRU
    • Üye
  • Boardmembers CRU
    • BYK
    • SYK
  • Members Search
    • Üye von verschiedenen Niederlassungen inkl. Sub-Niederlassungen
  • Boardmembers Search
    • BYK und SYK von verschiedenen Niederlassungen inkl. Sub-Niederlassungen
  • Termination of Membership
  • Termination of Boardmembership
  • Berechtigung

Akzeptanzkriterien:

  • SYK Mitglieder (welche in einem Branch sind und eine Funktion haben) dürfen ihre eigene SYK Mitglieder, welche im gleichen Branch sind und auch eine Funktion haben, sehen.
  • SYK Mitglieder dürfen die Mitglieder der eigenen Organisation sehen.
  • Users CRU Attribute
    • TODO
    • Membership
  • BoardMembers CRU
    • Zu einem bestehenden Mitglied kann eine Verwaltungsmitgliedschaft erfasst werden.
    • Es kann nur zu einer Niederlassung oder Sub-Niederlassung erfasst werden, wo auch der angemeldete Benutzer die Rechte dafür hat.
    • Falls eine Person zu einer Niederlassung als Verwaltungsmitglied hinzugefügt wird
    • Attribute
      • Startdatum
      • Funktion
      • Niederlassung
    • TODO
  • Members Search
    • Such Kriterien:
      • TODO
      • Inklusive deaktivierte
        • Die deaktivierten Members sollen grau angezeigt werden.
  • Boardmembers Search
    • Such Kriterien:
      • Gleiche Such Kriterien wie Members Search.
      • TODO
  • Termination of Membership
    • Datum der Beendigung der Mitgliedschaft
    • Die Auswahl der Niederlassung, welche gekündigt werden soll.
  • Termination of Boardmembership
    • Datum der Beendigung der Verwaltungsmitgliedschaft.
    • Die Auswahl der Niederlassung und der Funktion, welche gekündigt werden soll.
    • Danach soll der Mitglied in eine normale Mitgliedschaft zur Niederlassung übergehen. Dies soll als Information ausgegeben werden.
  • Q: Muss z.B: der Tanitma Bsk von AT den Tanitma Bsk von GT sehen?
    • Im Moment nicht im Umfang dieser Version.
  • Q: Muss die Sub-View nur für bestimmte Funktionen erlaubt sein?
    • Nein, alle SYK Mitglieder dürfen die SYK Mitglieder, welche eine Funktion haben, und die Mitglieder der Sub-Organisationen sehen.
    • Die Sub-View ist defaultmässig deaktiviert. Um die Sub-Mitglieder auch anzuzeigen, muss das explizit in der Suche angegeben werden.

Security

2-Factor


SMS und/oder 2-Factor App ist ein muss für Benutzern welche Personen Daten lesen können. 

Passwort


Passwort reset erlauben?Ja, zuerst sollte der user sich authentifizieren, z.B mit E-Mail, PLZ und 2-factor app. Nach erfolgreichem Authentifizierung sollte der Server einen Code generieren und per SMS an user schicken.Passwort komplexität?Min. 8 Zeichen. Davon mindestens eine Gross & Kleinbuschtaben, sowie einen Zahl und SonderzeichenKonto nach 5 falsche Passwörter sperren?Entsperren wieder erlauben?

Session


Wie lange wird eine Session gültig sein?

SSL


Let’s Encrypt oder SSL Zertifikat kaufen?

API


API limit pro user/tag?

Log


Was werden wir alles Loggen?

  • User Anmeldungen
  • API anfragen

Monitoring


Was werden wir alles monitoren?

  • Datenbank
  • Anfragen

Möglichkeiten:

  • Grafana
  • Zabbix

Statistik


Frontend stastik sammeln?Möglichkeiten:

  • Matemo

Failover


Wie sieht unser Failover Strategie aus?

Backup


Wohin?Wie oft?

API Routes v1

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert