Afgelopen maart hebben we met de collega’s de eerste meetup van het jaar gehouden. Dit keer was het thema ons sponsorschap van de stichting DEAN. Een organisatie die zich inzet voor digitaal onderwijs in Afrika, op plekken met moeizaam tot geen internet.

DEAN heeft een slim onderwijsapparaat ontwikkeld, de ElimuPi, gebaseerd op een Raspberry Pi. De ElimuPi maakt digitaal onderwijs mogelijk op scholen waar verder geen IT-infrastructuur of internetverbinding beschikbaar is.

Sinds 2021 zijn we al met een groepje binnen Techforce1 bezig om DEAN en de ElimuPi naar een hoger plan te brengen. Nu was het tijd om alle collega’s erbij te betrekken.

DEAN hackathon

Bij de start van het event hebben de collega’s uitleg gekregen van Joost Dam, de oprichter en directeur van DEAN. Joost vertelde wat DEAN precies doet, hoe het onderwijs in Afrika werkt en hoe de ElimuPi is ontstaan.

Vervolgens hebben collega’s Marco Bruining en Jeroen Admiraal de aftrap gegeven voor de hackathon. Ze legden de opdrachten uit, gebaseerd op de backlog van DEAN. En daarna was het hoogste tijd om te beginnen. We hadden hiervoor een aantal projecten op het programma staan:

Het huidige python-script omzetten naar Ansible

Er was al een aanzet gedaan om het huidige installatiescript in python om te zetten naar Ansible voor de start van de hackathon. Een goed moment om die draad nu verder op te pakken.

Het script geschreven in Python werd namelijk steeds groter en complexer. Waardoor de onderhoudbaarheid steeds lastiger wordt. Door alles over te zetten naar Ansible maak je de code een stuk overzichtelijker en meer toekomstgericht.

Bij de omzetting is zoveel mogelijk geprobeerd de code te groeperen in rollen en taken. Het resultaat van deze actie is dat het installatiescript sterk vereenvoudigd is en klaar om verder uit te breiden.

Hierdoor kunnen we elke nieuwe stap die we met de ElimuPi maken, voortaan in Ansible uitwerken.

Virtuele Pi

Een ander deel van onze groep is bezig gegaan met het virtualiseren van de Pi. Het idee hiervan is dat dit het straks een stuk makkelijker maakt om te ontwikkelen voor de ElimuPi, als deze draait op je laptop in plaats van op een fysieke raspberry Pi.

Ook voor deze opdracht was er al een bescheiden opzet gemaakt en de groep is daar enthousiast op doorgegaan.

Met QEMU is het mogelijk om andere hardwareplatformen te emuleren op je eigen computer. Maar omdat dit nogal complex is qua installatie en configuratie is er gekeken naar een totaaloplossing in Docker. Dit maakt de installatie en de configuratie ervan vele malen eenvoudiger.

Het resultaat is dat we de Pi succesvol hebben kunnen virtualiseren. We moeten alleen nog een paar aanpassingen doen om zaken die hardwarematig wel werken (zoals wifi en een externe disk) ook softwarematig te simuleren.

Alle data in Kolibri opslaan op externe schijf

De ElimuPi gebruikt het pakket Kolibri voor het aanbieden van allerlei free-to-use lessen. Deze lessen staan opgeslagen op een externe disk, aangesloten op de ElimuPi. Geen ideale setup om gemaakte lessen van de ene naar de andere school te kopiëren, helemaal omdat niet alle data goed opgeslagen bleek te worden.

Het groepje wat aan deze opdracht werkte kreeg eerst uitleg van Joost over hoe Kolibri werkt, in theorie en in de praktijk. Daarna zijn ze ingelogd op de terminal van de ElimuPi om te debuggen waar Kolibri de data opslaat, om zo te kijken of ze kunnen achterhalen of dit te verplaatsen is naar de externe disk.

Al snel belandde de groep in allerlei shell scripts van Kolibri, waar van alles geconfigureerd werd en… leek de oplossing snel gevonden te zijn. Echter, bleek de nieuwe instelling alsnog niet overal goed te werken, waardoor er toch nog wat meer gedebugged moest worden. Om uiteindelijk alsnog de juiste oplossing te vinden!

Single Sign On (SSO) voor Kolibri

Een andere wens van Joost is dat het mogelijk moet zijn om één keer in te loggen in een applicatie en dan ook gelijk overal ingelogd te zijn op de ElimuPi. Om dit voor elkaar te krijgen is er een lokale ldap-omgeving ingericht.

Out-of-the-box kan Kolibri daar helaas niet mee overweg. Op de github van Kolibri vindt dit groepje wel iets van code dat dit ooit als een plugin gewerkt moet hebben, maar actueel was deze code niet meer.

We hebben erop gestudeerd en zijn aan de slag gegaan om het werkend te krijgen met eigen code. Wat aan eind van de dag nog net niet gelukt was, maar het begin is er.

En nu verder

We vinden het een prachtig project. De verschillende onderwerpen zijn nog niet af. Er is nog genoeg werk aan de winkel. Je kunt dus uitkijken naar nieuwe blogs, waarin we bovenstaande onderwerpen verder uitdiepen.

En we zullen binnenkort ook de repo’s delen zodat iedereen die zich geroepen voelt, ook kan bijdragen!