Steeds meer mensen worden gediagnostiseerd met een neurodivergentie (bijna 20% van de populatie heeft er een!). Veel van deze mensen (inclusief ik) hebben moeite met plannen en motivatie vinden. Mensen met ADHD bijvoorbeeld hebben een korte aandachtspanning omdat ze minder dopamine hebben. Dit maakt taken zoals studeren een stuk lastiger. Ook zorgt het ervoor dat je al snel dingen vergeet in je planning te zetten. DopaNora zoekt hiervoor naar een fix.
Mensen met ADHD hebben een tekort aan dopamine en noradreline. Deze zijn beide erg belangrijk in je dagelijkse leven. Dopamine is een neurotransmitter die betrokken is bij het belonings systeem van je brein. Het helpt bij motivatie, en zorgt ervoor dat je minder leuke taken toch doet. Noradreline is een neurotransmitter dat helpt bij je “fight or flight” systeem. Het speelt ook een rol bij concentratie.
Het grootste gedeelte van DopaNora: algoritmes. Algoritmes helpen jou met het vinden van de beste tijden om dingen in te plannen.
Laten we zeggen, je moet om 14:00 naar de tandarts, en je hebt om 16:00 rijles. Je wilt daarnaast ook nog een goede tijd en schema vinden om te studeren. Normaal gesproken zou dit lastig zijn voor iemand met een neurodivergentie, maar DopaNora helpt hierbij met een aloritme. Het algoritme werkt zo:
Natuurlijk is dit niet het enigste algoritme. DopaNora probeert te raden hoe lang een taak kan duren door naar worden te zoeken in de taak, zoals “schoonmaken” of “afwasmachine”. Als je denkt dat het niet klopt, kun je het altijd zelf veranderen.
Soms kun je toch denken: “Wat heb ik vandaag nou gedaan? Heb ik mijn tijd wel goed besteed?”. Dit zorgt voor onrust, en dit komt vaak voor bij mensen met ADHD. Aan het einde van de dag (kan zelf ingesteld worden) krijg je een bericht over wat je allemaal gedaan hebt vandaag, en hoeveel tijd van de dag je nou besteed hebt aan events.
Bij werk of afspraken heb je meestal een reistijd waar je aan moet denken. Door een locatie door te geven, probeert DopaNora de reistijd automatisch in het event te zetten +5 minuten. Je kunt dit ook zelf aanpassen.
Omdat DopaNora persoonlijke informatie bevat (als hier toestemming voor is gegeven), moet alles met hoge beveiliging in de database staan. Hiervoor gebruiken we Data Encryption. Bijna geen informatie staat in gewone text in de database. Alle informatie per table staat in maar een column: encrypted_payload. Als je alleen de payload hebt, kun je er vrijwel niks mee. Je moet eerst de encryption key hebben. Hiervoor gebruiken wij de encrypted_dek column in de user table. Deze DEK (Data Encryption Key) wordt gebruikt om de persoonlijke data van de user te kunnen lezen. Deze DEK is ook encrypted, dus hiervoor gebruiken we de MASTER KEY die in de env staat.
Natuurlijk kunnen we niet iedereen zomaar een request laten sturen. Hiervoor gebruiken we JWT (JSON Web Token). Dit zorgt ervoor dat alleen de mensen met een token een request kunnen maken. Hun UserID zit vast aan deze token, dus we kunnen het makkelijk er uit halen.
Voor de backend gebruik ik Python samen met Flask. Dit zorgt voor een makkelijke manier om endpoints te maken en te gebruiken. Ik ken al best wel een stuk Python, dus dat maakt het een stuk makkelijker om te gebruiken.
Voor de frontend gebruik ik Flutter. Dit is een framework die super handig is als je een app wilt bouwen die universeel gebruikt kan worden. Met Flutter hoef ik maar 1 codebase te maken. Hiermee kan ik makkelijk dingen veranderen voor elk apparaat zonder dat ik steeds een heel nieuw framework hoef te gebruiken. Ik kan hiermee dus in 1 keer Windows, IOS, Linux, Android, etc. ondersteunen.
Hier is een schema van alles: