Inschatten · opleiden · ernaast blijven jacob.poot@itkaro.com

Het gereedschap · voor technici

Hoe het gebouwd is.

Zelf gebouwd: het leerportaal, de assessment-tool, het Nederlands lesportaal, het investeringsdashboard, de cockpit, het klantportaal en deze site.

U huurt mij in, en dit breng ik mee. Het leerportaal waar uw mensen in werken heb ik zelf gebouwd, dus een cursus op maat krijgt dezelfde toetsen en dezelfde voortgang als de bestaande. Hieronder staat wat er draait, hoe het eruitziet en hoe het in elkaar zit. Het is dezelfde manier van werken die in de lessen zit.

Terug naar wat u als opdrachtgever in handen krijgt 

De stand

Wat er op dit moment draait.

11
applicaties live
2.400+
geautomatiseerde tests
9
applicaties waar inloggen met een passkey kan
6
met een eigen uitrolketen

Alles zelf gebouwd, met AI als gereedschap. Versiebeheer, testen en uitrollen heb ik zo zes tot elf keer in productie gedaan.

Van idee tot beheer

Van idee tot iets dat blijft draaien.

Dit is de vraag die beslissers het vaakst stellen: hoe gaat dat dan, bouwen met AI? Zo. Zes stappen, en geen enkele wordt overgeslagen. De laatste stap is: wie beheert het daarna? Klik op de knop om het met een voorbeeld te zien.

IdeeU zegt wat u mist.voorbeeld: de knop wordt oranje Bouwen met AIZelf gebouwd, met tests eronder. TestenEerst de tests, dan uitrollen. VastleggenElke versie bewaard. Proef, dan liveEerst proef, dan echt, in Amsterdam.Verstuur BeherenEigenaar, en wat als het stukgaat.

Zo werk ik bij de zes applicaties met een eigen uitrolketen: het script draait eerst de tests en rolt daarna pas uit. Over alle applicaties samen staan er ruim 2.400 geautomatiseerde tests.

Veilig van huis uit

Vier dingen, en waar de grens ligt.

Inloggen met een passkey waar het kan

In negen applicaties kan inloggen met een passkey: uw vingerafdruk of gezicht. Het leerportaal vraagt een wachtwoord; een passkey koppelt u er zelf bij.

Geheimen buiten de code

Sleutels en wachtwoorden staan nooit in de code, alleen op de server zelf.

Een beveiligingsbeleid per pagina

Deze site stuurt bij elke pagina een beleid mee waarmee de browser scripts van een andere herkomst weigert. Het is één laag en geen garantie.

Elke dag een snapshot

Van de schijf met de database maakt de hostingpartij elke dag een snapshot.

De opbouw

Hoe zo'n applicatie is opgebouwd.

Steeds hetzelfde patroon, en dat is met opzet: één manier die goed begrepen is, werkt het best. Dit is ook de opbouw die in de les wordt uitgelegd.

Browserwerkt ook zonderJavaScript https EÉN SERVER, SLAAPT ALS NIEMAND KIJKT Proxyhttps, headers,statische bestanden Applicatiepagina's op de servergemaakt Databaseop een eigenschijf Inloggen met een passkey waar het kan Snapshot per dag
Een simpele opzet. Eén database op één schijf, zodat er nooit twee versies van de waarheid zijn.

Wat er draait

Zeven van de elf applicaties, vier met een scherm erbij.

Elk van deze applicaties is op dezelfde manier gebouwd als hierboven. Van vier ziet u hier echte schermen, met verzonnen gegevens erin. Wat op deze pagina ontbreekt is privé of van een klant.

Het leerportaal

Cursussen met echte AI-oefeningen, toetsen en voortgang per deelnemer. Dit is waar uw mensen in werken.

Het leerportaallearning.itkaro.com1 van 3
De gratis proefles in het leerportaal: een les uit de basiscursus, open zonder account.
  1. De proefles is de eerste les uit de cursus, zoals een deelnemer hem ziet. Zonder account.
  2. De omvang van de hele cursus: lessen, oefeningen met een echt AI-model en toetsen.
De uitslag van een toets: het cijfer, en per vraag wat goed was en waarom.
  1. Het cijfer staat er meteen. De server kijkt na; het werkt ook zonder JavaScript.
  2. Per vraag goed of niet goed, met het eigen antwoord en de uitleg erbij. Van een toets leert u dus ook iets.
De toetsresultaten van een groep, zoals de docent ze ziet: cijfers per deelnemer en wie nog niets maakte.
  1. De docent ziet de cijfers van de hele groep. Een deelnemer ziet alleen het eigen cijfer, een werkgever geen enkel.
  2. Het beste cijfer per deelnemer. Eronder staat wie nog niets maakte, en per vraag hoeveel van de groep hem goed had.
Echt scherm, verzonnen gegevens. Opname oktober 2026.
Voor technici

FastAPI en SQLite, pagina's op de server gemaakt. Alles werkt zonder JavaScript. 736 tests.

Doe de gratis proefles 

De assessment-tool

Documenten uploaden, het bewijs per onderdeel beoordelen, en een rapport dat de directie kan lezen. Dit scherm is de leveranciersregie-scan: dezelfde opzet en dezelfde schermen, met een andere vragenlijst. De security-variant draait op klantgegevens en staat hier daarom niet.

De assessment-toolscherm: de leveranciersregie-scan1 van 3
Het dashboard van een onderzoek: de totaalscore en de score per hoofdstuk, met de dekking erbij.
  1. De totaalscore, met erbij hoeveel van de 49 onderdelen bewijs hebben en hoe zeker dat is.
  2. De score per hoofdstuk, van 1 tot 5. Een streepje betekent: niet onderzocht, dus geen score.
De beoordeling van het bewijs: per citaat de bron, de rol en de knoppen om te accepteren of te verwijderen.
  1. Wat niet in het raamwerk past, staat apart en telt in geen enkele score mee.
  2. Elk stuk bewijs is een letterlijk citaat, met de rol van wie het zei. Het telt pas mee als een mens het accepteert.
Het risicoregister: een voorgesteld risico met de gevolgen, de oorzaak en de bevinding waar het op rust.
  1. Een risico wordt voorgesteld en wacht op een besluit: accepteren, parkeren of afwijzen.
  2. Elk risico wijst terug naar de bevinding en het onderdeel waar het op rust.
Echt scherm, verzonnen gegevens. Opname oktober 2026.
Voor technici

Next.js, TypeScript en Postgres. De gegevens staan versleuteld onder een hoofdwachtwoord; inloggen gaat met een passkey. De schermen zijn Engels, het rapport is Nederlands. 520 tests.

Scan bespreken 

Het Nederlands lesportaal

Een leerlingvolgsysteem voor één docent. Elke les wordt gemaakt uit het dossier van die ene student: beroep, doel, niveau per vaardigheid, en wat er in de vorige les misging. Het huiswerk hangt aan de les; de student maakt het in het portaal, en de uitslag is de invoer voor de volgende les. Een leerplan per student houdt zichzelf bij uit de lessen, het huiswerk en de metingen; ik voeg alleen de mijlpalen toe.

In oktober 2026 werken er acht studenten in, en sinds eind augustus zijn er vierentwintig lessen via het portaal gegeven. In het beeld staat een voorbeeldstudent.

Het Nederlands lesportaalvoor mijn lessen Nederlands1 van 3
De eigen pagina van de voorbeeldstudent: de lessen, met wat al is afgerond.
  1. Alex is de voorbeeldstudent en bestaat niet. Een echte student ziet hier de eigen lessen.
  2. Elke les blijft staan om terug te lezen, met de stand erbij: afgerond of nog open.
Een dia uit de voorbeeldles: uitdrukkingen koppelen aan hun betekenis, met een knop om na te kijken.
  1. Een oefening die zichzelf nakijkt: koppel de uitdrukking aan wat hij betekent.
  2. De les is voor deze student gemaakt: de woorden komen uit het beroep in het dossier.
Dezelfde les voor de docent, met het docentpaneel open: tellers per soort fout en een veld voor notities.
  1. Het docentpaneel naast de dia. De student ziet dit niet, ook niet als ik mijn scherm deel in de lesmodus.
  2. Tijdens de les tel ik per soort fout mee. Met de notities eronder wordt dat de stof van de volgende les.
Echt scherm, verzonnen gegevens. Opname oktober 2026.
Voor technici

FastAPI en SQLite. Een les is een YAML-bestand en wordt twee keer naar HTML gebakken: één keer voor de docent, één keer voor de student. 884 tests.

Het investeringsdashboard

Voor founders: wat u als ondernemer over uw eigen geld wilt zien. Wat er is, waar het in zit en wat het heeft gedaan. De bedragen zijn voorbeeldgegevens uit de app zelf.

Het investeringsdashboardvoor founders1 van 3
Het overzicht: de totale waarde, de inleg, het resultaat en het verloop over een jaar.
  1. De totale waarde van alles samen: fondsen, crypto, goud, spaargeld en een woning.
  2. Het resultaat per periode, na aftrek van wat er is bijgestort. Een storting telt dus niet als winst.
  3. Inleg en resultaat staan los van elkaar, zodat u ziet wat het geld zelf heeft gedaan.
De streefverdeling: per soort het doel, de stand van nu en wat er bij te kopen is.
  1. Het doel per soort bezit, in procenten en in euro.
  2. De stand van nu ernaast. De balk in de volgende kolom laat zien hoe ver het ervan af zit.
  3. Wat er bij te kopen is om weer op het doel uit te komen.
De historie: de waarde per dag over een jaar, met de inleg als tweede lijn.
  1. De waarde per dag, teruggerekend uit de transacties en de koers van die dag.
  2. Het rendement is geldgewogen: geld dat er later bij kwam telt korter mee.
Echt scherm, verzonnen gegevens. Opname oktober 2026.
Voor technici

FastAPI en SQLite; de grafieken zijn SVG van de server. Voor de opname is geen koers opgehaald: als koers gelden de prijzen uit de voorbeeldtransacties. 1.001 tests.

Plan een kennismaking 

Ook live

De cockpit

De cijfers van het bedrijf op één scherm: omzet, uren, pijplijn. Elke ochtend bijgewerkt.

itkaro intern

Deze site

Snel, zonder cookies, met een klein programma erachter voor het contactformulier en de meting.

itkaro.com

Het klantportaal

Eén inlog met een passkey, en daarachter de apps waar de klant recht op heeft.

customer.itkaro.com

Waarom dit hier staat

Wat het voor een deelnemer betekent.

Uit eigen werk

Versiebeheer, testen en uitrollen heb ik zes tot elf keer in productie gedaan. Die ervaring breng ik mee als een team zelf gaat bouwen.

Het is van deze week

Ik bouw nog elke week. Verandert het gereedschap, dan verandert de les mee.

Het is haalbaar gebleken

Eén persoon, met AI als gereedschap. Zo zitten de meeste deelnemers er ook in.

Wat hier niet staat

En waarom niet.

De schermen hierboven zijn echt. Ik heb de applicaties op mijn laptop gestart en een script heeft ze gefotografeerd. De gegevens erin zijn verzonnen, en er is niets vervaagd of weggepoetst: wat u niet mag zien, heeft er nooit in gestaan.

Privé-applicaties en alles van een klant ontbreken met opzet, ook in de schema's: die tonen het patroon. Klantnamen noem ik niet zonder dat de klant daar zelf ja op heeft gezegd.