Fallstudie 06
Regionales Karten-Verteilungsledger
CENEPOL C.A. · 01/2016 – 09/2016 · Full-Stack-Entwickler
Ein Verwaltungssystem für die regionale Verteilung von Telefonkarten: Modellierung, Verkauf und Abrechnung, ausgeliefert als Electron-Desktop-App und als Web-Client im Intranet eines Wiederverkäufers.
- Form
- Electron + Web
- Speicher
- MongoDB
- Grenze
- Reseller-Intranet
Problem
Die Verteilung lebte noch in Tabellen und Schalterbüchern. Wiederverkäufer konnten Bestand, Verkauf und Abrechnung nicht als einen Datensatz sehen. Ein Desktop-Tool, das das Intranet ignorierte, oder ein Web-Tool, das den Schreibtisch ignorierte, hätte die Hälfte des Betriebs auf Papier gelassen.
Vorgaben
Das System musste im Intranet eines Wiederverkäufers laufen, nicht im öffentlichen Internet. Desktop und Web mussten ein Modell teilen. Abrechnung und Bestand mussten konsistent bleiben, wenn zwei Sachbearbeiter gleichzeitig handelten. Dieser Text beschreibt nicht den Carrier, den Stückelungskatalog oder irgendwelche Produktionsdatensätze.
Architektur
Ein einziges Domänenmodell deckte Karten, Wiederverkäufer, Verkäufe und Abrechnung ab. MongoDB speicherte die Dokumente. Eine Electron-Hülle wickelte dieselbe Oberfläche, die im Browser lief, sodass ein Schreibtisch ohne zuverlässigen Browser das Ledger trotzdem hatte. Das Web-Deployment saß im Intranet; die Authentifizierung blieb innerhalb dieser Grenze. Tests liefen gegen die Umgebung des Wiederverkäufers, nicht gegen eine erfundene öffentliche Staging-Site.
Rolle
Ich habe das Domänenmodell entworfen, die Oberfläche ausgeliefert und die Verkaufs- und Abrechnungsflüsse verantwortet. Ich habe Electron und das Web-Deployment so gepackt, dass Intranet und Schreibtisch dasselbe Ledger liefen.
Ergebnisse
- Bestand, Verkauf und Abrechnung saßen in einem Datensatz statt in getrennten Büchern.
- Desktop- und Web-Clients teilten das Modell, sodass Schreibtisch und Browser nicht auseinanderliefen.
- Das Deployment blieb im Intranet; das Ledger brauchte keine öffentliche Oberfläche.
Stack
- Electron
- MongoDB
- JavaScript
- Desktop
- Intranet
