Peggir logo

<Case study: Theorie Go/>

Webapplicatie Hosting Monitoring Ontwikkeltijd: 2 maanden

Inleiding

Voor de Doetinchemse autorijschool Easy Gohebben we een platform ontwikkeld genaamd Theorie Go. Theorie Go is een platform waarin klanten theorie-examens auto kunnen oefenen. Middels een interactieve, moderne, omgeving kunnen klanten vaste examens of willekeurige examens starten. Daarbij krijgen ze de keuze om het met of zonder timer uit te voeren. Na het maken van de examen ziet de klanten of deze geslaagd zou zijn en toelichtingen bij de antwoorden. Voor de beheerders van Theorie Go hebben we een uitgebreid content management systeem gemaakt waarin zij alles kunnen beheren. Daarnaast hebben we de server ingeregeld en voeren we tussentijds onderhoud uit. Dit project heeft ongeveer twee maanden geduurd.

Easy Go

Benadering

We zijn door rijschool Easy Go benaderd met het idee voor een platform dat ze hadden. Voor ons leek dit ook een geschikt project. Vervolgens hebben we een afspraak gemaakt zodat we bij ons op kantoor het potentiële project verder konden bespreken. Tijdens deze bespreking hebben we geïnventariseerd wat het platform allemaal moest kunnen. Middels schetsen hebben we de flow van de applicatie uitgetekend. Aan de hand van al deze gegevens zijn we concrete requirements gaan opstellen. Zulke requirements worden later vertaald in taken die uitgevoerd moeten worden door ons tijdens het ontwikkelen. Na deze eerste afspraak hebben we een inschatting van de benodigde tijd gemaakt en hebben we een offerte opgesteld. Deze hebben we vervolgens naar de rijschool gestuurd zodat zij deze rustig konden doornemen. Na het bereiken van een akkoord zijn we begonnen met het opzetten van het project. Voor dit project heeft Easy Go zelf schermontwerpen opgeleverd na het bereiken van het akkoord.

Opzetten project

Het opzetten van het project bestaat globaal uit twee onderdelen:

  1. Het onderzoeken welke concrete technieken gebruikt zullen worden
  2. Het opzetten van alle tooling

Onderzoeken technieken

Hier onderzoeken we welke ontwikkeltechnieken, talen, database, etc. we gebruiken. Voor Theorie Go hebben we de keuze gemaakt om de back-end in java en scala te schrijven met behulp van het Play! Framework. De database die we gekozen hadden is PostgreSQL een geavanceerde open-source database. We kiezen de technologieen altijd op basis van het project, zodat we de meest geschikte keuze kunnen maken. Daarnaast hanteren wij altijd de scrum softwareontwikkelmethode. Scrum is een projectmethode waarbij de requirements flexibel zijn. Dat houdt in dat onze opdrachtgevers, in dit geval Easy Go, hun requirements kunnen bijstellen gedurende het project. Hier houden we dus rekening mee.

Opzetten tooling

Easy Go Jira Wanneer we webapplicaties bouwen maken we altijd gebruik van Jira en BitBucket. Beide zijn oplossingen van het bedrijf Atlassian. In Jira managen we het project. Daarin plaatsen we alle taken de uitgevoerd moeten worden, maken we een inschatting van de tijd en houden we bij hoeveel tijd we er daadwerkelijk aan besteed hebben. De opdrachtgever krijgt altijd toegang tot deze omgeving. Via BitBucket beheren en slaan we de code (privé) op. Deze tools zorgen ervoor wat de een soepel projecttraject hebben. Daarnaast zetten we een chatomgeving op via Slack of een alternatief naar keuze. Zodoende kan de opdrachtgever altijd chatten en berichten achterlaten voor ons.

Ontwikkelingstraject

Tijdens het ontwikkeltraject werken we volgens scrum in sprints. Voor iedere sprint plannen we de taken in die in die sprint uitgevoerd moeten worden. Aan het einde van de sprint hebben we telkens gecommuniceerd over de voortgang. Naast het schrijven van de code testen wij deze ook. Aan het einde van de sprint hebben we iedere keer de voortgang online gezet in een speciale (acceptatie) omgeving. Hier kon alleen Easy Go bij. In deze omgeving kon de opdrachtgever zelf het tot dan toe gemaakte product bekijken en eventueel handmatig testen. In het geval dat de opdrachtgever toch nog iets aangepast of anders wil hebben nemen de dat op om te implementeren in een volgende sprint. Naast de online communicatie met de opdrachtgever, was deze ook vrij om regelmatig langs te komen op kantoor. Dit hebben we ook een aantal keer gedaan om het project te bespreken onder het genot van een kop koffie. Een voorbeeld is nadat het CBR de opzet van theorie-examens had gewijzigd. Dit betekende dat er een relatief grote wijziging aan het platform moest plaatsvinden. Dankzij de flexibiliteit van scrum konden we dit prima opnemen en verwerken.

Onderhoud en monitoring

Na het implementeren van alle requirements heeft Easy Go ons zelf een server gegeven die wij konden inrichten voor hen. Daarop hebben we de applicatie laten draaien. Daarnaast hebben we een koppeling gemaakt tussen de Theorie Go en hun bestaande website. Via hun bestaande website kunnen klanten een pakket kopen en een account aanmaken. Wanneer een klant dat doet krijgt deze een code via de mail toegestuurd. Met deze unieke code kan de klant vervolgens inloggen in Theorie Go en aan de slag met het oefenen van examens. Tijdens het opzetten van de productie-omgeving hebben we ook de monitoring ingesteld. In het geval dat er errors plaatsvinding of wanneer er misbruik van het systeem wordt gemaakt, wordt dit gelogd. Via een speciale omgeving monitoren wij dit. Dit doen we met behulp van de Elastic Stack. De Elastic Stack is een verzameling van open-source projecten (Elasticsearch, Logstash en Kibana). Hiermee kunnen we alle logs vanuit één plaats monitoren. Verder houden we ons ook bezig met het maken van back-ups en bijwerken van server software.

Theorie Go logs

Eindresultaat

Om een beeld te geven van wat wij opgeleverd hebben na twee maanden hebben we de volgende twee videos. In deze videos valt globaal te zien welke functionaliteiten de applicatie allemaal heeft. Alle data die in de videos te zien is zijn testdata in een lokale ontwikkelomgeving.

Gebruikersdemo

In de volgende video is de applicatie te zien zoals klanten van Easy Go deze gebruiken. Via de website van de rijschool kopen ze een code. Deze krijgen ze vervolgens te zien en kunnen ze gebruiken om mee in te loggen in Theorie Go. Vervolgens kan de klant kiezen om een willekeurig gegenereerde examen of een standaard examen met of zonder tijdslimiet te maken. Willekeurige examens worden altijd volgens de officiële specificaties van het CBR samengesteld. Na het maken van de examen ziet de student of deze geslaagd zou zijn of niet en welke vragen goed en fout beantwoord zijn.

Beheerdersdemo

In de volgende video is te zien welke functionaliteiten de beheerders hebben. Ze kunnen alle gebruikers, vragen, categorieën en examens uitgebreid beheren. Dit is vanuit een omgeving waar alleen zij toegang tot hebben.

Ook een webapp laten bouwen?

Werkwijze Afspraak maken Contact