Universiteit Utrecht
Tarief/Salaris
€Geen max uurtarief
Locatie
Utrecht
Inzet
32 uur p/w
Dienstverband
ICT Informatievoorziening
Gepubliceerd
25 september, 2026
Deadline
2 oktober, 2026
Nog 7 dagen
M-Tool is een open-source webapplicatie die aan de Universiteit Utrecht is ontwikkeld voor het in kaart brengen van mentale modellen. De applicatie wordt momenteel gebruikt binnen meer dan 25 onderzoeksprojecten in meer dan 90 landen. Onderzoekers gebruiken M-Tool om studies op te zetten waarin deelnemers causale kaarten maken van de relaties die zij zien tussen verschillende concepten. De huidige applicatie is ontwikkeld in Clojure, met ClojureScript als frontend. Een eerdere nieuwe versie heeft geleid tot regressies en een aantal functionaliteiten is nog niet volledig afgerond. Daarom zoekt de Universiteit Utrecht een ontwikkelaar die de applicatie verder kan stabiliseren, ontwikkelen en toekomstbestendig kan maken. Er zijn hierbij twee mogelijke technische richtingen: Het verder ontwikkelen en herstellen van de bestaande Clojure/ClojureScript-code; Het herschrijven van de applicatie naar een meer gangbare technologie, bijvoorbeeld TypeScript/React voor de frontend en Python of Node.js voor de backend. Een herschrijving heeft de voorkeur, mits kan worden aangetoond dat de bestaande functionaliteit behouden blijft en de nieuwe oplossing op lange termijn beter onderhoudbaar is. Verantwoordelijkheden Als Softwareontwikkelaar ben je verantwoordelijk voor het stabiliseren, doorontwikkelen en toekomstbestendig maken van M-Tool. Je werkzaamheden bestaan onder andere uit: Stabilisatie en bestaande functionaliteit Behouden en herstellen van de huidige functionaliteit van M-Tool. Oplossen van regressies en technische problemen in de bestaande applicatie. Oplossen van het probleem met conceptnamen waarin een koppelteken voorkomt, zodat data correct wordt verwerkt en geëxporteerd. Zorgen dat de deelnemersinterface correct herschaalt bij verschillende schermformaten. Waarborgen dat de applicatie betrouwbaar functioneert binnen de huidige onderzoeksprojecten. Doorontwikkeling van bestaande functionaliteiten Ontwikkelen van een betrouwbare offline versie waarmee onderzoekers data op tablets kunnen verzamelen. Ondersteunen van offline opslag en synchronisatie zodra een tablet weer online is. Zorgen dat gesynchroniseerde data beschikbaar komt in de online omgeving. Implementeren van rich text voor consent-, welkomst- en afsluitteksten. Mogelijk maken van herinneringen/pop-ups op het mapping-scherm. Configureerbaar maken of deelnemers het doelicoon mogen verplaatsen. Genereren van een downloadbare map met screenshots van ingediende mental maps. Implementeren van tussentijds opslaan van een mental model via een Opslaan-knop. Je ontwikkelt daarnaast nieuwe functionaliteiten, waaronder: Een mappenstructuur voor studies en geüploade media. Automatische herkenning van bestandstypen bij uploads. Mogelijkheid voor onderzoekers om bestandsnamen te wijzigen. Mogelijkheid voor deelnemers om zelf een icoon en bijbehorend label aan te maken, indien dit binnen een studie is toegestaan. Een Practice Task Creator waarmee onderzoekers zelfstandig oefentaken kunnen configureren. Automatische generatie van de bijbehorende begeleidende afbeelding. Correcte werking van de browser Back/Vorige-knop zonder verlies van ingevoerde data. Ondersteuning voor zowel drag-and-drop als klikinteractie bij het verbinden van concepten. Een configureerbaar FAQ-paneel op het mapping-scherm. Instellingen waarmee audio standaard uit kan staan. Een optie om instructievideo’s per studie wel of niet beschikbaar te stellen. Afhankelijk van prioriteit en beschikbare capaciteit kunnen aanvullende verbeteringen worden gerealiseerd, zoals: Meerdere iconen tegelijk uploaden. Instellen en zichtbaar maken van pijlgewichten. Ondersteuning voor feedback loops. Audio toevoegen aan het toestemmingsformulier. Vastzetten van begin- en eindpunten op het canvas. Richtingsvalidatie van verbindingen. Configureerbare foutmeldingen. In- en uitzoomen op het mapping-scherm. Labels tonen bij het hoveren over iconen in de rechterzijbalk. Technische verantwoordelijkheid Adviseren over de meest geschikte technische architectuur. Onderbouwen van de keuze tussen voortzetting van Clojure/ClojureScript en een eventuele herschrijving. Waarborgen dat bij een eventuele migratie alle bestaande functionaliteiten behouden blijven. Zorgdragen voor een onderhoudbare, goed gedocumenteerde en toekomstbestendige oplossing. Samenwerken met de IT-afdeling van de Universiteit Utrecht rondom deployment. Geschikt maken van de applicatie voor OpenShift/container deployment. Zorgdragen dat de applicatie eenvoudig te back-uppen en herstellen is. Testen van de applicatie en voorkomen van regressies. Ondersteunen van een testperiode van minimaal twee weken tussen eerste oplevering en definitieve oplevering. Zorgen dat de applicatie open-source beschikbaar en beheersbaar blijft via GitHub.
Geen wensen geformuleerd.
binnen 1 werkdag weet je waar je aan toe bent.
De opdracht sluit 2 oktober 2026.
Je reactie ontvangen we graag minimaal 1 werkdag voor sluiting van de opdracht.