summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Infrastruktur.mdwn6
-rw-r--r--Infrastruktur/Software/membersys.mdwn39
2 files changed, 45 insertions, 0 deletions
diff --git a/Infrastruktur.mdwn b/Infrastruktur.mdwn
index 5af17558..445b8692 100644
--- a/Infrastruktur.mdwn
+++ b/Infrastruktur.mdwn
@@ -7,3 +7,9 @@ Ist die Rakete noch im Hangar (Starship Factory ist geschlossen) oder ist sie st
## IT-Technik
Hier ist ein Überblick über unsere [[Howtos/IT-Infrastruktur]] zu finden.
+
+## Software
+
+Eine kurze Beschreibung des Status unserer internen Softwareprojekte:
+
+* [[Mitgliederverwaltungssystem (membersys)|Infrastruktur/Software/membersys]]
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.