Archeologisch Brein Een zoeklaag over museum en depot Audit
Demonstratie met synthetische data. Geen echte collectiegegevens.

Audit

Een controle van deze applicatie zelf. De frontendaudit en de testresultaten zijn eerder lokaal gemeten en vastgelegd in de repository, de datacijfers en de deploystatus worden nu gelezen. Niets wordt verborgen, ook niet als er iets rood staat, want dat is precies waarvoor deze knop bestaat.

Alles staat groen. De frontendaudit keurde elke gemeten pagina goed, alle tests slaagden, de database antwoordt en de AI-laag is beschikbaar.

Frontendaudit

Deze meting draait niet op de server. Het meetgereedschap heeft een echte Chrome nodig en de bouwomgeving van Railway heeft die niet, en ook geen database. De audit draait daarom lokaal over de vastgelegde code met npm run audit:frontend, en het resultaat staat als JSON in de repository. Hieronder staat op welke commit dat gebeurd is, zodat je zelf kunt zien of de meting nog bij deze versie hoort. Bij /onderzoek geldt de meting voor de schil eromheen: het onderzoeksdocument zelf is een bestaand bestand dat deze applicatie ongewijzigd doorgeeft.

De vier kolommen 360, 393, 768 en 1440 zijn het aantal elementen dat op die schermbreedte in pixels buiten de pagina uitsteekt. Links telt de interne links die nergens naartoe wijzen, Zonder JS is hoeveel van de inhoud leesbaar blijft met JavaScript uit, en Alt telt de afbeeldingen zonder alternatieve tekst plus de iconen die er wel een nodig hebben. Nul is overal goed.

Pagina Oordeel Contrast 360 393 768 1440 Emoji Streepjes Links Zonder JS Charset Taal Alt
/ goedgekeurd 0 0000 0 0 0 100% ja ja 0
/zoeken goedgekeurd 0 0000 0 0 0 100% ja ja 0
/zoeken met een vraag goedgekeurd 0 0000 0 0 0 100% ja ja 0
/kwaliteit goedgekeurd 0 0000 0 0 0 100% ja ja 0
/veld goedgekeurd 0 0000 0 0 0 102% ja ja 0
/scan goedgekeurd 0 0000 0 0 0 106% ja ja 0
/onderzoek goedgekeurd 0 0000 0 0 0 100% ja ja 0
/audit goedgekeurd 0 0000 0 0 0 100% ja ja 0
onbekende pagina (404) goedgekeurd 0 0000 0 0 0 100% ja ja 0

/

goedgekeurd
Contrastovertredingen
0
Overflow op 360 pixels
0
Overflow op 393 pixels
0
Overflow op 768 pixels
0
Overflow op 1440 pixels
0
Emoji
0
Em- of en-streepjes
0
Dode interne links
0
Leesbaar zonder JavaScript
100%
Charset is utf-8
ja
Taal ingesteld
ja
Afbeelding zonder alt of svg zonder titel
0

/zoeken

goedgekeurd
Contrastovertredingen
0
Overflow op 360 pixels
0
Overflow op 393 pixels
0
Overflow op 768 pixels
0
Overflow op 1440 pixels
0
Emoji
0
Em- of en-streepjes
0
Dode interne links
0
Leesbaar zonder JavaScript
100%
Charset is utf-8
ja
Taal ingesteld
ja
Afbeelding zonder alt of svg zonder titel
0

/zoeken met een vraag

goedgekeurd
Contrastovertredingen
0
Overflow op 360 pixels
0
Overflow op 393 pixels
0
Overflow op 768 pixels
0
Overflow op 1440 pixels
0
Emoji
0
Em- of en-streepjes
0
Dode interne links
0
Leesbaar zonder JavaScript
100%
Charset is utf-8
ja
Taal ingesteld
ja
Afbeelding zonder alt of svg zonder titel
0

/kwaliteit

goedgekeurd
Contrastovertredingen
0
Overflow op 360 pixels
0
Overflow op 393 pixels
0
Overflow op 768 pixels
0
Overflow op 1440 pixels
0
Emoji
0
Em- of en-streepjes
0
Dode interne links
0
Leesbaar zonder JavaScript
100%
Charset is utf-8
ja
Taal ingesteld
ja
Afbeelding zonder alt of svg zonder titel
0

/veld

goedgekeurd
Contrastovertredingen
0
Overflow op 360 pixels
0
Overflow op 393 pixels
0
Overflow op 768 pixels
0
Overflow op 1440 pixels
0
Emoji
0
Em- of en-streepjes
0
Dode interne links
0
Leesbaar zonder JavaScript
102%
Charset is utf-8
ja
Taal ingesteld
ja
Afbeelding zonder alt of svg zonder titel
0

/scan

goedgekeurd
Contrastovertredingen
0
Overflow op 360 pixels
0
Overflow op 393 pixels
0
Overflow op 768 pixels
0
Overflow op 1440 pixels
0
Emoji
0
Em- of en-streepjes
0
Dode interne links
0
Leesbaar zonder JavaScript
106%
Charset is utf-8
ja
Taal ingesteld
ja
Afbeelding zonder alt of svg zonder titel
0

/onderzoek

goedgekeurd
Contrastovertredingen
0
Overflow op 360 pixels
0
Overflow op 393 pixels
0
Overflow op 768 pixels
0
Overflow op 1440 pixels
0
Emoji
0
Em- of en-streepjes
0
Dode interne links
0
Leesbaar zonder JavaScript
100%
Charset is utf-8
ja
Taal ingesteld
ja
Afbeelding zonder alt of svg zonder titel
0

/audit

goedgekeurd
Contrastovertredingen
0
Overflow op 360 pixels
0
Overflow op 393 pixels
0
Overflow op 768 pixels
0
Overflow op 1440 pixels
0
Emoji
0
Em- of en-streepjes
0
Dode interne links
0
Leesbaar zonder JavaScript
100%
Charset is utf-8
ja
Taal ingesteld
ja
Afbeelding zonder alt of svg zonder titel
0

onbekende pagina (404)

goedgekeurd
Contrastovertredingen
0
Overflow op 360 pixels
0
Overflow op 393 pixels
0
Overflow op 768 pixels
0
Overflow op 1440 pixels
0
Emoji
0
Em- of en-streepjes
0
Dode interne links
0
Leesbaar zonder JavaScript
100%
Charset is utf-8
ja
Taal ingesteld
ja
Afbeelding zonder alt of svg zonder titel
0

Testresultaten

De testsuite heeft een database nodig en kan daarom net zomin op de bouwomgeving draaien. Ook deze meting draait lokaal, met npm run audit:tests, en het resultaat staat vastgelegd in de repository. Een gefaalde test wordt hier bij naam genoemd.

Testbestand Geslaagd Gefaald Overgeslagen
test/ai-terugval.test.js 16 0 0
test/audit.test.js 15 0 0
test/datering.test.js 3 0 0
test/duplicaten.test.js 11 0 0
test/filter.test.js 10 0 0
test/health.test.js 7 0 0
test/onderzoek.test.js 4 0 0
test/paginas.test.js 15 0 0
test/scan-detail.test.js 5 0 0
test/scan-pagina.test.js 9 0 0
test/scan.test.js 22 0 0
test/seed.test.js 8 0 0
test/tempolimiet.test.js 11 0 0
test/toegangscode.test.js 9 0 0
test/transcriptie-controle.test.js 9 0 0
test/veld-pagina.test.js 7 0 0
test/veldrapport.test.js 22 0 0
test/vocabulaire.test.js 10 0 0
test/zoek.test.js 10 0 0
test/zoeken-pagina.test.js 7 0 0

Data-integriteit

Deze cijfers worden op dit moment uit de database gelezen, elke keer dat je deze pagina opent. Verwijder een record en ververs: het getal beweegt mee.

Hoe goed vindt de laag de dubbele objecten

De generator van de demodata weet welke objecten in beide bronnen voorkomen en legt dat vast in een verborgen kolom waarheid_id. De zoeklaag ziet die kolom nooit en koppelt records puur op inhoudelijke gelijkenis. De kolom wordt uitsluitend hier gebruikt, om achteraf te meten hoe goed dat koppelen ging.

Paren gevonden door de laag
33
Werkelijk aanwezige paren
40
Terecht gekoppeld
31
Onterecht gekoppeld
2
Gemist
9
Precisie
93,9%
Recall
77,5%
Drempelwaarde
0,8

Build en deploy

Welke versie draait er nu, waar draait die, en werkt de AI-laag of valt de applicatie terug op zoeken in gewone tekst.

Of een meting nog klopt wordt niet op het commitnummer beoordeeld maar op de inhoud van de code. Een auditresultaat wordt namelijk altijd een commit later vastgelegd dan de code die het meet, dus die nummers verschillen per definitie. In plaats daarvan wordt van alle broncode een vingerafdruk berekend, en die van de meting wordt vergeleken met die van de draaiende code.

De gemeten code is regel voor regel dezelfde als de code die nu draait. Het commitnummer van de metingen (31c3b1a7) verschilt van dat van deze draaiende versie (f0a8746b), maar dat verschil zit in het vastleggen van het auditresultaat zelf, niet in de code.

Codevingerafdruk van deze draaiende versie
46705e83
Codevingerafdruk van de frontendaudit
46705e83
Codevingerafdruk van de testrun
46705e83
Commit van deze draaiende versie
f0a8746b
Commit van de frontendaudit
31c3b1a7
Commit van de testrun
31c3b1a7
Proces gestart op
10 september 2026 om 10:26
Omgeving
production
Service
archeologie-ilse-demo
Deployment
ba75fa08-462c-4d59-8260-b01e04375ca4
Node-versie
v20.6.1
Gemini beschikbaar
ja
Tekstmodel
gemini-flash-latest
Embeddingmodel
gemini-embedding-001
Laatste AI-fout
geen

Hetzelfde rapport als ruwe JSON staat op /api/audit.