Periode: Augustus 2021 – December 2022
Binnen Signify was besloten om een web applicatie te ontwikkelen ter ondersteuning voor verkoop van grote of complexe verlichtingssystemen voor kantoorgebouwen, fabriekshallen, winkels en ziekenhuizen in de Amerikaanse markt. Het tool was bedoeld om het aanbieden van dit soort lichtsystemen voor voor agenten en distributeurs sterk te vereenvoudigen.
De frontend bestaat uit een Flutter web applicatie waarmee meerdere gebruikers producten nauwkeurig op plattegronden plaatsen en verschillende andere aspecten van het project specificeren. Hierbij worden alle wijzigingen live tussen gebruikers in het zelfde project gedeeld. Daarnaast kunnen verschillende soorten documentatie als onderbouwing van de specificatie worden opgeslagen en gegenereerd, waaronder plattegronden en stuklijsten. Ter ondersteuning van het ontwerp wordt het gespecificeerde systeem doorlopend automatisch gevalideerd om onder andere te waarschuwen over benodigde extra draadloze netwerkapparatuur om de verlichting te bedienen.
Ik ben vanaf de start van dit project betrokken geweest als architect en lead engineer voor zowel de Flutter web applicatie als de Java backend. Het team bestond uit totaal 11 personen, inclusief twee frontend ontwikkelaars en een tweede backend ontwikkelaar.
Als technische oplossing heb ik in dit project een Black Board architectuur gecombineerd met het CQRS pattern dat door middels van abonnement-gebaseerde notificaties de relevante wijzigingen direct via websockets naar de frontends doorstuurt. In de backend wordt in de achtergrond door agent processen de ingevoerde data verrijkt en de specificaties gevalideerd, waarvan de relevante wijzigingen ook weer direct naar de frontends wordt gecommuniceerd.
De frontend is in Flutter Web gerealiseerd, wat een verrassend goede performance levert voor visuele navigatie door grote hoeveelheden data met naast bitmaps ook PDF pagina’s als achtergrond. Door alleen de relevante gegevens naar de frontend te laden, is een web applicatie gerealiseerd die voor gebruikers voelt als een desktop applicatie. Het resultaat is een CAD-achtige ontwerp-omgeving met live samenwerking tussen gebruikers zoals in Google Docs of de online versie van Microsoft Office 365.
Op het moment van mijn vertrek was de applicatie inmiddels uitgerold naar 6000 gebruikers, en ging het project verder met nieuwe (interne) ontwikkelaars om meer soorten verlichtingssystemen te gaan ondersteunen.