cmap functions, email, architecture documentation.

This commit is contained in:
2026-08-18 03:33:10 +02:00
parent 12f1ed2764
commit 63b7ca0853
33 changed files with 3974 additions and 80 deletions
+186
View File
@@ -0,0 +1,186 @@
{
"schemaVersion": 1,
"items": [
{
"id": 1,
"kind": "page",
"label": "racket-wiki",
"synopsis": "Kleine zelf-gehoste Markdownwiki met native conceptmaps.",
"pageSlug": "racket-wiki:architectuur",
"x": 505,
"y": 35,
"width": 260,
"height": 92,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#dceef8",
"borderColor": "#376f92"
},
{
"id": 2,
"kind": "phrase",
"label": "bestaat tijdens gebruik uit",
"x": 545,
"y": 165,
"width": 190,
"height": 36,
"autoWidth": false,
"autoHeight": false
},
{
"id": 3,
"kind": "page",
"label": "Browserapplicatie",
"synopsis": "Navigatie, Markdown, editorstate, CMaps en visualisaties.",
"pageSlug": "racket-wiki:gedrag",
"x": 80,
"y": 255,
"width": 250,
"height": 92,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#fff4cf",
"borderColor": "#a97c00"
},
{
"id": 4,
"kind": "page",
"label": "Racket-backend",
"synopsis": "HTTP, autorisatie, validatie en opslagorkestratie.",
"pageSlug": "racket-wiki:modulariteit",
"x": 505,
"y": 255,
"width": 260,
"height": 92,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#e8e1f7",
"borderColor": "#72539a"
},
{
"id": 5,
"kind": "page",
"label": "PostgreSQL",
"synopsis": "Huidige toestand, transacties, historie, indexen en bijlagen.",
"pageSlug": "racket-wiki:data-en-versies",
"x": 930,
"y": 255,
"width": 250,
"height": 92,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#e1f1e1",
"borderColor": "#4f7d51"
},
{
"id": 6,
"kind": "phrase",
"label": "gebruikt JSON/HTTP van",
"x": 315,
"y": 390,
"width": 180,
"height": 36,
"autoWidth": false,
"autoHeight": false
},
{
"id": 7,
"kind": "phrase",
"label": "schrijft transactioneel naar",
"x": 775,
"y": 390,
"width": 195,
"height": 36,
"autoWidth": false,
"autoHeight": false
},
{
"id": 8,
"kind": "page",
"label": "Structuur en samenhang",
"synopsis": "Modules, uitvoerende delen en afhankelijkheidsrichting.",
"pageSlug": "racket-wiki:structuur-en-samenhang",
"x": 75,
"y": 520,
"width": 260,
"height": 92,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#f3f6f8",
"borderColor": "#5d6d7e"
},
{
"id": 9,
"kind": "page",
"label": "Beveiliging en vertrouwen",
"synopsis": "Backend en database bewaken de vertrouwensgrenzen.",
"pageSlug": "racket-wiki:beveiliging",
"x": 380,
"y": 520,
"width": 260,
"height": 92,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#fbe4e4",
"borderColor": "#a04f4f"
},
{
"id": 10,
"kind": "page",
"label": "Beheer en evolutie",
"synopsis": "Migraties, releases en herhaalbare documentatie-import.",
"pageSlug": "racket-wiki:beheer-en-evolutie",
"x": 685,
"y": 520,
"width": 260,
"height": 92,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#edf7e8",
"borderColor": "#57834a"
},
{
"id": 11,
"kind": "page",
"label": "Regels bij het coderen",
"synopsis": "Expliciete code, statische afhankelijkheden en invarianten.",
"pageSlug": "racket-wiki:code-regels",
"x": 990,
"y": 520,
"width": 260,
"height": 92,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#f3f6f8",
"borderColor": "#5d6d7e"
},
{
"id": 12,
"kind": "phrase",
"label": "wordt onderhouden via",
"x": 550,
"y": 665,
"width": 175,
"height": 36,
"autoWidth": false,
"autoHeight": false
}
],
"connectors": [
{ "id": 1, "sourceId": 1, "targetId": 2, "hasArrow": false, "lineColor": "#5d6d7e", "lineWidth": 2 },
{ "id": 2, "sourceId": 2, "targetId": 3, "hasArrow": true, "lineColor": "#5d6d7e", "lineWidth": 2 },
{ "id": 3, "sourceId": 2, "targetId": 4, "hasArrow": true, "lineColor": "#5d6d7e", "lineWidth": 2 },
{ "id": 4, "sourceId": 2, "targetId": 5, "hasArrow": true, "lineColor": "#5d6d7e", "lineWidth": 2 },
{ "id": 5, "sourceId": 3, "targetId": 6, "hasArrow": false, "lineColor": "#8c7428", "lineWidth": 2 },
{ "id": 6, "sourceId": 6, "targetId": 4, "hasArrow": true, "lineColor": "#8c7428", "lineWidth": 2 },
{ "id": 7, "sourceId": 4, "targetId": 7, "hasArrow": false, "lineColor": "#72539a", "lineWidth": 2 },
{ "id": 8, "sourceId": 7, "targetId": 5, "hasArrow": true, "lineColor": "#72539a", "lineWidth": 2 },
{ "id": 9, "sourceId": 4, "targetId": 8, "hasArrow": true, "lineColor": "#82909d", "lineWidth": 2 },
{ "id": 10, "sourceId": 4, "targetId": 9, "hasArrow": true, "lineColor": "#a04f4f", "lineWidth": 2 },
{ "id": 11, "sourceId": 4, "targetId": 10, "hasArrow": true, "lineColor": "#57834a", "lineWidth": 2 },
{ "id": 12, "sourceId": 4, "targetId": 11, "hasArrow": true, "lineColor": "#5d6d7e", "lineWidth": 2 },
{ "id": 13, "sourceId": 10, "targetId": 12, "hasArrow": false, "lineColor": "#57834a", "lineWidth": 2 },
{ "id": 14, "sourceId": 12, "targetId": 1, "hasArrow": true, "lineColor": "#57834a", "lineWidth": 2 }
],
"conceptMaps": []
}
+195
View File
@@ -0,0 +1,195 @@
{
"schemaVersion": 1,
"items": [
{
"id": 1,
"kind": "page",
"label": "Duurzame racket-wiki",
"synopsis": "Kwaliteit ontstaat uit samenhangende ontwikkelregels, niet uit één techniek.",
"pageSlug": "racket-wiki:architectuur",
"x": 505,
"y": 35,
"width": 280,
"height": 100,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#dceef8",
"borderColor": "#376f92"
},
{
"id": 2,
"kind": "phrase",
"label": "vereist",
"x": 585,
"y": 170,
"width": 120,
"height": 36,
"autoWidth": false,
"autoHeight": false
},
{
"id": 3,
"kind": "page",
"label": "Onderhoudbaarheid",
"synopsis": "Wijzigingen zijn lokaliseerbaar, begrijpelijk en controleerbaar.",
"pageSlug": "racket-wiki:onderhoudbaarheid",
"x": 40,
"y": 270,
"width": 245,
"height": 96,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#edf7e8",
"borderColor": "#57834a"
},
{
"id": 4,
"kind": "page",
"label": "Analyseerbaarheid",
"synopsis": "Een symptoom is naar laag, request en versie te herleiden.",
"pageSlug": "racket-wiki:analyseerbaarheid",
"x": 300,
"y": 270,
"width": 245,
"height": 96,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#fff4cf",
"borderColor": "#a97c00"
},
{
"id": 5,
"kind": "page",
"label": "Testbaarheid",
"synopsis": "Pure regels, transacties en gebruikerspaden hebben passende tests.",
"pageSlug": "racket-wiki:testbaarheid",
"x": 560,
"y": 270,
"width": 245,
"height": 96,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#e8e1f7",
"borderColor": "#72539a"
},
{
"id": 6,
"kind": "page",
"label": "Performance",
"synopsis": "Groei wordt gemeten; concrete knelpunten worden gericht opgelost.",
"pageSlug": "racket-wiki:performance",
"x": 820,
"y": 270,
"width": 245,
"height": 96,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#f3f6f8",
"borderColor": "#5d6d7e"
},
{
"id": 7,
"kind": "page",
"label": "Beveiliging",
"synopsis": "Veilige defaults en server-side vertrouwensgrenzen.",
"pageSlug": "racket-wiki:beveiliging",
"x": 1080,
"y": 270,
"width": 245,
"height": 96,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#fbe4e4",
"borderColor": "#a04f4f"
},
{
"id": 8,
"kind": "page",
"label": "Code-regels",
"synopsis": "Expliciete constructies, kleine contracten en juiste transactiegrenzen.",
"pageSlug": "racket-wiki:code-regels",
"x": 235,
"y": 525,
"width": 250,
"height": 96,
"autoWidth": false,
"autoHeight": false,
"backgroundColor": "#f3f6f8",
"borderColor": "#5d6d7e"
},
{
"id": 9,
"kind": "phrase",
"label": "maakt wijzigingen",
"x": 300,
"y": 430,
"width": 150,
"height": 36,
"autoWidth": false,
"autoHeight": false
},
{
"id": 10,
"kind": "phrase",
"label": "levert reproduceerbare",
"x": 480,
"y": 430,
"width": 170,
"height": 36,
"autoWidth": false,
"autoHeight": false
},
{
"id": 11,
"kind": "phrase",
"label": "beschermt",
"x": 635,
"y": 525,
"width": 120,
"height": 36,
"autoWidth": false,
"autoHeight": false
},
{
"id": 12,
"kind": "phrase",
"label": "wordt gestuurd door meting",
"x": 825,
"y": 430,
"width": 185,
"height": 36,
"autoWidth": false,
"autoHeight": false
},
{
"id": 13,
"kind": "phrase",
"label": "begrensd door veilige defaults",
"x": 1050,
"y": 430,
"width": 210,
"height": 36,
"autoWidth": false,
"autoHeight": false
}
],
"connectors": [
{ "id": 1, "sourceId": 1, "targetId": 2, "hasArrow": false, "lineColor": "#5d6d7e", "lineWidth": 2 },
{ "id": 2, "sourceId": 2, "targetId": 3, "hasArrow": true, "lineColor": "#57834a", "lineWidth": 2 },
{ "id": 3, "sourceId": 2, "targetId": 4, "hasArrow": true, "lineColor": "#a97c00", "lineWidth": 2 },
{ "id": 4, "sourceId": 2, "targetId": 5, "hasArrow": true, "lineColor": "#72539a", "lineWidth": 2 },
{ "id": 5, "sourceId": 2, "targetId": 6, "hasArrow": true, "lineColor": "#5d6d7e", "lineWidth": 2 },
{ "id": 6, "sourceId": 2, "targetId": 7, "hasArrow": true, "lineColor": "#a04f4f", "lineWidth": 2 },
{ "id": 7, "sourceId": 8, "targetId": 9, "hasArrow": false, "lineColor": "#5d6d7e", "lineWidth": 2 },
{ "id": 8, "sourceId": 9, "targetId": 3, "hasArrow": true, "lineColor": "#57834a", "lineWidth": 2 },
{ "id": 9, "sourceId": 4, "targetId": 10, "hasArrow": false, "lineColor": "#a97c00", "lineWidth": 2 },
{ "id": 10, "sourceId": 10, "targetId": 5, "hasArrow": true, "lineColor": "#72539a", "lineWidth": 2 },
{ "id": 11, "sourceId": 5, "targetId": 11, "hasArrow": false, "lineColor": "#72539a", "lineWidth": 2 },
{ "id": 12, "sourceId": 11, "targetId": 3, "hasArrow": true, "lineColor": "#57834a", "lineWidth": 2 },
{ "id": 13, "sourceId": 4, "targetId": 12, "hasArrow": false, "lineColor": "#a97c00", "lineWidth": 2 },
{ "id": 14, "sourceId": 12, "targetId": 6, "hasArrow": true, "lineColor": "#5d6d7e", "lineWidth": 2 },
{ "id": 15, "sourceId": 7, "targetId": 13, "hasArrow": false, "lineColor": "#a04f4f", "lineWidth": 2 },
{ "id": 16, "sourceId": 13, "targetId": 6, "hasArrow": true, "lineColor": "#a04f4f", "lineWidth": 2 }
],
"conceptMaps": []
}