summaryrefslogtreecommitdiff
path: root/Infrastruktur
diff options
context:
space:
mode:
authorCaoimhe Chaos <caoimhechaos@protonmail.com>2020-02-03 02:57:53 +0100
committerCaoimhe Chaos <caoimhechaos@protonmail.com>2020-02-03 02:57:53 +0100
commit4cb0b6bc003c8eb995874808abb3af0298a5d98c (patch)
tree1866d823e788dc62d430db970e9d8290b613e277 /Infrastruktur
parent708dc2062882397247904438e883aae70267e389 (diff)
Infoseite über das membersys.
Diffstat (limited to 'Infrastruktur')
-rw-r--r--Infrastruktur/Software/membersys.mdwn39
1 files changed, 39 insertions, 0 deletions
diff --git a/Infrastruktur/Software/membersys.mdwn b/Infrastruktur/Software/membersys.mdwn
new file mode 100644
index 00000000..932f54ad
--- /dev/null
+++ b/Infrastruktur/Software/membersys.mdwn
@@ -0,0 +1,39 @@
+[[!meta title="Mitgliederverwaltungssystem"]]
+
+* Quellcode: <https://github.com/starshipfactory/membersys>
+* URL: <https://members.starship-factory.ch/>, <https://join.starship-factory.ch/>, <https://members.starship-factory.ch/admin>
+
+## Requirements
+
+* Formular zum Anmelden neuer Mitglieder
+* Verwaltung von Mitgliedern und Anträgen durch den Vorstand
+* DSGVO-kompatible maschinenlesbare Datenschutzauskunft für Mitglieder
+* Anlegen und Löschen von LDAP-Accounts für Mitglieder
+
+## Funktionalität
+
+Die Webseite <https://join.starship-factory.ch/> beinhaltet ein HTML-Formular, um einen Antrag auf Aufnahme in den Verein zu stellen. Der erstellte Antrag erhält eine UUID und wird mittels einem Barcode markiert, um einfacher in der Datenbank gefunden werden zu können (z.B. im Falle eines Spamproblems).
+
+<https://members.starship-factory.ch/admin> beinhaltet gleichzeitig 2 Funktionen:
+
+* Für Mitglieder des Vorstands wird dort ein Webinterface zur Anzeige aller aktiven Mitglieder, aller in den letzten 30 Tagen gekündigten Mitglieder, aller Mitgliedsanträge und aller in Erstellung oder Löschung befindliche Mitglieder angezeigt.
+* Für alle anderen Mitglieder werden dort maschinenlesbare Daten über die eigene Mitgliedschaft (Name, Adresse, vereinbarter Mitgliedsbeitrag, herunterladbare VCF-Visitenkarte) angezeigt, um die Anforderungen der Datenschutzgrundverordnung der EU zu erfüllen.
+
+Im Hintergrund läuft täglich ein Job namens *member_creator*, welcher LDAP-Benutzeraccounts für Neumitglieder anlegt und die ausgeschiedener Mitglieder löscht.
+
+## Technische Details
+
+Der Dienst ist als Go-Programm implementiert, welches einen HTTPS-Dienst bereitstellt. Die Daten werden in einer Apache Cassandra-Datenbank gespeichert.
+
+*member_creator* ist ein Go-Programm, welches als Kubernetes-CronJob läuft.
+
+## Bekannte Probleme
+
+* Der verwendete Cassandra-Clientcode ist veraltet und sollte auf [gocql](https://github.com/gocql/gocql) umgestellt werden.
+* membersys verwendet derzeit keine [OpenZipkin](https://zipkin.io/)-Traces, welche das Debuggen von bereits geschehenen Fehlern deutlich erleichtern würde.
+* Allgemeine Monitoring-Problematik (Kubernetes und Prometheus)
+
+## Zukünftige Verbesserungsideen
+
+* Die E-Mailadresse eines Antragstellers sollte möglichst in einem Zwei-Wege-Handshakeverfahren überprüft werden, bevor der Antrag für den Vorstand zur Genehmigung gestellt wird.
+* Backups der Datenbank werden im Moment im Ganzen erstellt; es wäre besser, ein applikationsspezifisches Backup zu implementieren, welches die Daten als Protocol Buffer exportiert.