In april 2022 is officieel begonnen met het gebruik van de U.F.O.-app. In de bijna twee jaar dat we de app gebruiken zijn er meer dan 8500 transacties (aankopen en saldo opwaarderingen) uitgevoerd door meer dan 130 gebruikers! Daarbij hebben we nu een voorraad met meer dan 145 verschillende producten, iets wat binnen het oude systeem met de muntjes niet mogelijk was!

Een update voor de app was al langere tijd noodzakelijk. Na meer dan twee jaar de app te hebben gebruikt bleken sommige PilCie, penningmeester en admin processen niet optimaal te werken. Hier een aantal verbeteringen op een rij:

(N.B. afbeeldingen in deze post zijn gemaakt met in de staging versie van de U.F.O.-App. Om de verschillende versies van elkaar te onderscheiden zijn de kleuren aangepast.)

Verbeteren van de API

De huidige versie van de app gebruikt een API op basis van GraphQL. Binnen deze API vorm vraagt de app in één aanvraag alle data die er nodig is voor een bepaalde pagina. Hierdoor zijn er minder aanvragen tegelijk, wat sneller is voor de API. Dit gaat echter mis bij grote datasets, waaronder de transacties van gebruikers. Voorbeeld: In plaats van één keer het product “Apple Bandit” op te halen, doet de app dit voor iedere transactie van de afgelopen twee jaar. Dit ging in het begin prima toen mensen nog niet veel transacties hadden. Nu zijn er echter gebruikers met meer dan 400 transacties, waardoor het laden een erg lange tijd duurt. Dit probleem speelt bij alle plekken in de app waar een grote hoeveelheid data moet worden opgehaald.

In de nieuwe versie ben ik weggegaan van GraphQL, en teruggegaan naar de meer traditionele REST api. Binnen deze api heb ik veel meer controle over wat er wordt aangevraagd en teruggestuurd, waardoor alles een stuk sneller gaat.

Met de verbeterde API is het aanvragen van transacties al veel sneller. Een andere verbetering is dat de transacties nu per 3 maanden worden aangevraagd. Hierdoor wordt er nóg minder data verstuurd en gaat het laden nog veel sneller.

Verbeteringen voor PilCie

De update heeft voornamelijk verbeteringen voor de PilCie (de bar commissie van de U.F.O.-Stam). De belangrijkste verbetering is dat voorraadwijzigingen vanaf nu via een transactie moeten lopen. De PilCie houdt in de app bij hoeveel van een product aanwezig is in de kast. Wanneer er een bestelling is geleverd wijzigt de PilCie dit getal naar de nieuwe hoeveelheid. Deze wijziging werd echter niet gelogd, waardoor het soms onduidelijk was of het getal al was aangepast. In de nieuwe versie van de app kan dit getal niet meer handmatig worden aangepast, en moet dit via een transactie verlopen. Hierdoor is het zichtbaar wanneer en door wie de voorraad is aangepast!

Een tweede verbetering is dat voor de pilcie de voorraad nu ook zichtbaar is op het betaalscherm. Hiermee kunnen ze in één oogopslag zien welke producten er bijna op zijn en besteld moeten worden.

Verbeteringen voor commissies

Tijdens een kamp of feest worden drankjes ook verkocht binnen de U.F.O.-app. Om een juiste voorraad bij te houden wordt hiervoor een apart product aangemaakt met een eigen prijs. Het gebeurt echter dat mensen tijdens deze kampen en feesten het verkeerde product aanklikken. Hierdoor klopt de voorraad uit de kast niet meer, waardoor de PilCie verkeerd gaat bestellen.

In de nieuwe versie is het mogelijk producten en categorieën te verbergen. Hierdoor kan tijdens een kamp alleen de categorie “VaKampCie” zichtbaar zijn, en kan er niet verkeerd geklikt worden.

Roadmap

Al met al komt er een mooie update aan, die de problemen die we op het moment in de app hebben op gaat lossen. Nu er een snelle, stabiele versie van de app is, begint het tijd te worden de app te verplaatsen van mijn eigen server naar een server beheerd door de U.F.O.-Stam. Na deze migratie wordt het ook mogelijk voor andere leden van de ApplicaCie om aan de app te ontwikkelen, waardoor de commissie eindelijk van de grond kan komen.
Na de migratie zal er gekeken gaan worden naar een integratie met Mollie. Mollie is een online betaalsysteem met Ideal. Hierdoor zal er geen PilCie meer nodig zijn om saldo op te waarderen, en wordt dit ook een stuk veiliger.