KWALITEIT VERBINDT

Functionele Specificatie — Cross-federatieve Kwaliteitstool
Opdrachtgever: Gymfed, Zwemfed, Badminton Vlaanderen, Danssport Vlaanderen, WWSV
Uitvoering: Plainsight
Versie: 1.0
Datum: 4 juni 2026
Status: Ter afstemming

1 Managementsamenvatting

1.1 Context

Vlaamse sportfederaties investeren aanzienlijk in de kwaliteit van hun aangesloten clubs. Vandaag ontbreekt een gedeeld, digitaal instrument om die kwaliteit meetbaar, vergelijkbaar en verbeterbaar te maken. Elke federatie werkt met eigen processen, spreadsheets en ad-hocinstrumenten. Dit leidt tot inefficiëntie, gebrek aan benchmarking en beperkte inzichten.

1.2 Visie

Kwaliteit Verbindt is een cross-federatief digitaal platform dat sportclubs ondersteunt in hun kwaliteitswerking. Het platform biedt clubs inzicht in hun werking, begeleidt hen via audits en bevragingen, en stelt federaties in staat om datagedreven beleid te voeren. Door kennis te delen over federatiegrenzen heen, ontstaat een gedeeld kwaliteitskader dat de Vlaamse sportclubcultuur versterkt.

1.3 Deelnemende federaties

Gymfed

Gymnastiekfederatie Vlaanderen — initiatiefnemer en pilootfederatie

Zwemfed

Vlaamse Zwemfederatie

Badminton Vlaanderen

Vlaamse Badmintonfederatie

Danssport Vlaanderen

Vlaamse Danssportfederatie

WWSV

Watersportverbond

1.4 Vijf strategische pijlers

Op businessniveau is het platform opgebouwd rond vijf pijlers:

#PijlerDoel
1ClubinzichtenClubs een spiegel bieden: data over leden, trainers, financiën, benchmarks
2LedentevredenheidStructureel bevragen van leden en analyse van tevredenheid en uitstroom
3Audit & KwaliteitslabelGestandaardiseerd kwaliteitsaudit-systeem met labels (brons, zilver, goud, …)
4KennisdatabankGecentraliseerde, gestructureerde kennis per kwaliteitsrubriek
5AI-assistentIntelligente ondersteuning: inzichten, aanbevelingen, chatbot

1.5 Acht kwaliteitsrubrieken

Alle modules zijn gestructureerd rond acht gemeenschappelijke kwaliteitsrubrieken:

  1. Visie, beleid en richting
  2. Bestuur en organisatiekracht
  3. Materiaal en accommodatie
  4. Sportief en pedagogisch aanbod
  5. Trainers en begeleiding
  6. Leden en groei
  7. Communicatie (extern-intern) en betrokkenheid
  8. Veilige, positieve en warme clubcultuur

Deze rubrieken vormen de rode draad doorheen audits, kennisbank, dashboards en AI-inzichten.

1.6 Scope van dit document

Dit document is een alignment-document tussen de opdrachtgevende federaties en Plainsight. Het beschrijft de functionele vereisten, datastromen, gebruikersrollen en niet-functionele eisen op een niveau dat toelaat om:

2 Architectuuroverzicht

2.1 Multi-tenancy model

Het platform hanteert een gelaagd multi-tenancy model met drie niveaus:

Organisatiehiërarchie

Overkoepelende organisatie Federatie Club
  • Overkoepelende organisatie: Groepeert meerdere federaties (bijv. "Kwaliteit Verbindt" als koepel)
  • Federatie: Individuele sportfederatie met eigen configuratie, data, labels en gebruikers
  • Club: Aangesloten sportclub bij één of meerdere federaties
Data-isolatie: Tenant-isolatie wordt afgedwongen op applicatieniveau (niet op databaseniveau). Elke query bevat een tenant-filter. Cross-federatie data is enkel toegankelijk met expliciete configuratie.

2.2 Seizoen als kernentiteit

Het seizoen is een fundamentele entiteit die alle modules doorkruist. Elk datapunt, elke audit, bevraging en rapportering is gekoppeld aan een seizoen. Gebruikers navigeren primair binnen een seizoen en kunnen historische seizoenen raadplegen.

EigenschapBeschrijving
NaamConfigureerbaar per federatie (bijv. "Seizoen 2026", "2025-2026")
Start- en einddatumPer federatie instelbaar
StatusActief / Afgelopen / Gepland
FilterPrimaire filter op alle data en modules
HistoriekAlle vorige seizoenen blijven raadpleegbaar

2.3 Databronnen

Het platform aggregeert data uit vijf categorieën bronnen:

CategorieVoorbeeldenAanlevering
Federatiedata Ledenlijsten, trainersdata, diplomagegevens, clubregistraties API-koppeling met ledenbeheer of CSV/XLS upload
Clubinput Financiële gegevens, beleidsplannen, organigram, reglementen Handmatige invoer via clubprofiel
Tooldata Audit-antwoorden, survey-resultaten Gegenereerd binnen het platform
Afgeleide data Benchmarks, trends, AI-inzichten Berekend door het platform
Kennisbank Artikels, video's, best practices, richtlijnen Via extern CMS met API-integratie

2.4 Integratiemodel

Per federatie worden de volgende integraties voorzien:

2.4.1 SSO / Authenticatie

FederatieSSO-systeemProtocolStatus
GymfedAzure AD B2COIDC / SAMLGekend
ZwemfedNog te bepalenOIDC / SAMLIn kaart te brengen
Badminton VlaanderenNog te bepalenOIDC / SAMLIn kaart te brengen
Danssport VlaanderenNog te bepalenOIDC / SAMLIn kaart te brengen
WWSVNog te bepalenOIDC / SAMLIn kaart te brengen

Bij afwezigheid van SSO voorziet het platform een lokale login met MFA als fallback.

2.4.2 Ledenbeheer / Data-aanlevering

FederatieSysteemAanleveringDatasetsStatus
Gymfed Ledenbeheer Gymfed API / CSV Leden, trainers, diploma's, clubs In kaart te brengen
Zwemfed Nog te bepalen API / CSV Leden, trainers, clubs In kaart te brengen
Badminton Vlaanderen Nog te bepalen API / CSV Leden, trainers, clubs In kaart te brengen
Danssport Vlaanderen Nog te bepalen API / CSV Leden, trainers, clubs In kaart te brengen
WWSV Nog te bepalen API / CSV Leden, trainers, clubs In kaart te brengen
Fallback: Wanneer geen API-koppeling beschikbaar is, kan data aangeleverd worden via CSV/XLS upload. Het platform biedt import-functionaliteit met validatie en foutrapportering.

2.4.3 Knowledgebase CMS

FederatieCMSStatus
GymfedNog te bepalenIn kaart te brengen
ZwemfedNog te bepalenIn kaart te brengen
Badminton VlaanderenNog te bepalenIn kaart te brengen
Danssport VlaanderenNog te bepalenIn kaart te brengen
WWSVNog te bepalenIn kaart te brengen

2.5 Eigendom & Overdraagbaarheid

  • Intellectueel eigendom: Het platform is eigendom van de deelnemende federaties (gezamenlijk)
  • Open standaarden: Geen proprietary lock-in; gebouwd op open technologieën
  • Data-export: Alle data exporteerbaar in standaardformaten (CSV, JSON, PDF)
  • Hosting: Binnen de Europese Unie
  • Overdraagbaarheid: Het platform moet volledig overdraagbaar zijn aan een andere technische partner

3 Gebruikersrollen & Authenticatie

3.1 Rollenhiërarchie

Het platform kent zes rollen, verdeeld over drie niveaus:

NiveauRolBeschrijving
Platform Super admin Volledig beheer van het platform: federaties, organisaties, globale configuratie
Federatie Federatie admin Volledig beheer binnen de eigen federatie: clubs, gebruikers, audits, labels, configuratie
Federatie gebruiker Operationeel gebruik: audits valideren, bevragingen beheren, rapporten bekijken
Federatie lezer Alleen-lezen toegang tot federatiedata en rapportages
Club Club gebruiker Clubprofiel beheren, audits invullen, bevragingen beantwoorden, inzichten bekijken
Club lezer Alleen-lezen toegang tot eigen clubdata en rapportages

3.2 Rechtenmatrix per module

Module / Actie Super admin Fed. admin Fed. gebruiker Fed. lezer Club gebruiker Club lezer
Federatie & org. beheer
Gebruikersbeheer (federatie)
Clubbeheer
Clubprofiel bewerken
Clubprofiel bekijken
Audit configuratie
Audit starten (officieel)
Audit invullen
Audit valideren
Self-assessment starten
Bevraging beheren
Bevraging resultaten
Dashboard (federatie)
Dashboard (club)
Kennisbank raadplegen
Chatbot gebruiken
Rapportering
Notificatie-configuratie

3.3 Authenticatie

3.3.1 SSO per federatie

Elke federatie koppelt haar eigen identity provider. Het platform ondersteunt standaard OIDC en SAML protocollen. Bij eerste login via SSO wordt automatisch een platformaccount aangemaakt (JIT provisioning) met de juiste federatie-koppeling.

3.3.2 Lokale login (fallback)

Wanneer een federatie geen SSO aanbiedt, is een lokale login beschikbaar met:

3.3.3 Login flow

Gebruiker opent platform Selecteert federatie Redirect naar SSO / lokale login Authenticatie Dashboard
Login scherm mockup
Mockup: Login scherm met federatiekeuze

4 Platformbeheer & Masterdata

Geen mockup beschikbaar: De mockups dekken enkel het club-gebruikersperspectief. De admin-schermen voor platformbeheer moeten nog ontworpen worden tijdens de UX-fase.

4.1 Configuratie zonder IT

Het platform onderscheidt twee configuratieniveaus:

Zonder IT (federatie admin)

  • Audit-structuur (rubrieken, vragen, gewichten, labels)
  • Survey-sjablonen beheren
  • Kwaliteitslabels aanmaken en configureren
  • Notificaties instellen per rol
  • Kennisbank-categorieën organiseren
  • Branding/huisstijl per federatie
  • Gebruikersbeheer
  • Data-uploads (CSV/XLS)

Met IT / Plainsight

  • SSO-configuratie en -koppeling
  • API-integraties met ledenbeheer
  • CMS-koppeling voor kennisbank
  • Technische onboarding nieuwe federatie
  • Infrastructuurconfiguratie

4.2 Overkoepelende organisaties

VeldTypeVerplichtBeschrijving
NaamTekstJaNaam van de organisatie
BeschrijvingTekst (lang)NeeOmschrijving en doelstelling
LogoAfbeeldingNeeVisuele identiteit
Gekoppelde federatiesRelatieJaWelke federaties onder deze organisatie vallen

CRUD-operaties: Aanmaken, bekijken, bewerken, verwijderen. Bulk creatie via Excel/API. Must

4.3 Federatiebeheer

VeldTypeVerplichtBeschrijving
NaamTekstJaOfficiële naam federatie
CodeTekstJaUnieke identificatiecode
LogoAfbeeldingJaLogo van de federatie
ContactgegevensObjectJaE-mail, telefoon, adres, website
SSO-configuratieObjectNeeIdentity provider, protocol, endpoints
API-configuratieObjectNeeLedenbeheer endpoints, credentials, frequentie
SeizoenenRelatieJaGeconfigureerde seizoenen met start/einddatum
KwaliteitslabelsRelatieNeeBeschikbare labels en hun configuratie
CategorieënRelatieNeeSportdiscipline-categorieën
HuisstijlObjectNeeKleuren, logo-varianten voor white-labeling

CRUD-operaties: Aanmaken, bekijken, bewerken, verwijderen. Export via Excel/API. Must

4.4 Categorieën & Disciplines

Federaties organiseren hun aanbod via categorieën en disciplines:

Beide entiteiten ondersteunen CRUD-operaties, bulk creatie via Excel/API Must en export Could.

4.5 Clubbeheer

VeldTypeVerplichtBeschrijving
NaamTekstJaOfficiële clubnaam
ClubcodeTekstJaUnieke code binnen de federatie
FederatieRelatieJaGekoppelde federatie(s)
ContactgegevensObjectJaE-mail, telefoon, adres, website
RechtsvormKeuzelijstNeeVZW, feitelijke vereniging, etc.
OndernemingsnummerTekstNeeKBO-nummer
RegioKeuzelijstNeeProvincie / regio
DisciplinesMulti-selectNeeActieve disciplines van de club
Lid sindsDatumNeeStartdatum lidmaatschap federatie
DocumentenBestandenNeeReglementen, organigram, beleidsplan

CRUD-operaties: Aanmaken, bekijken, bewerken, verwijderen. Bulk import via Excel/API Must, export Could.

4.6 Gebruikersbeheer

VeldTypeVerplichtBeschrijving
NaamTekstJaVoor- en achternaam
E-mailE-mailJaPrimair contactadres en login
RolKeuzelijstJaÉén van de zes rollen
FederatieRelatieJa*Gekoppelde federatie (* niet voor super admin)
ClubRelatieJa*Gekoppelde club (* enkel voor clubrollen)
StatusKeuzelijstJaActief / Inactief / Uitgenodigd

CRUD-operaties: Aanmaken, bekijken, bewerken, deactiveren. Bulk import via Excel Should.

4.7 Kwaliteitslabels

VeldTypeVerplichtBeschrijving
NaamTekstJaBijv. "Brons", "Zilver", "Goud"
FederatieRelatieJaLabels zijn federatie-specifiek
Volgorde / rangNummerJaHiërarchie van labels
Visuele assetAfbeeldingNeeLogo/afbeelding van het label
DrempelwaardePercentageJaMinimum score om het label te behalen
Gewichten per rubriekObjectJaPer kwaliteitsrubriek een weging
GeldigheidDuurJaBijv. 2 jaar, gekoppeld aan seizoen

CRUD-operaties: Aanmaken, bekijken, bewerken, verwijderen. Overzicht clubs per label Should. Must

4.8 Data-uploads

Federaties kunnen datasets aanleveren via bestandsupload:

4.9 Notificatieconfiguratie

Federatie admins configureren welke events notificaties genereren en via welk kanaal:

Kanalen

KanaalPrioriteitBeschrijving
In-app notificatiesMustNotificatiecentrum binnen het platform
E-mailMustVoor kritieke events en herinneringen
Push notificatiesCouldMobiele push (latere fase)

Events

EventOntvangers
Audit deadline nadertClub gebruiker, Federatie gebruiker
Kwaliteitslabel verlooptClub gebruiker, Federatie admin
Bevraging ontvangenClub gebruiker
Bevraging niet afgerond (herinnering)Club gebruiker
Audit gevalideerdClub gebruiker
Nieuw label behaaldClub gebruiker, Federatie admin
Nieuwe kennisbank-contentClub gebruiker, Club lezer
Data-upload afgerondFederatie admin
Actieplan deadline nadertClub gebruiker

5 Clubprofiel & Inzichten

De module "Mijn Club" is het centrale punt voor clubgebruikers. Hier beheren zij hun clubgegevens, bekijken zij data en statistieken, en volgen zij hun actieplan op. De module bevat drie tabbladen: Clubgegevens, Actieplan en Data & Statistieken.

5.1 Clubgegevens

Het clubprofiel bevat alle basisinformatie van de club, opgedeeld in secties:

Sectie: Algemeen

VeldTypeBronBewerkbaar door club
NaamTekstFederatie/importNee
ClubcodeTekstFederatie/importNee
WebsiteURLClubJa
E-mailE-mailClubJa
TelefoonTelefoonClubJa
RechtsvormKeuzelijstClubJa
OndernemingsnummerTekstClubJa
AdresAdresClubJa
RegioKeuzelijstAfgeleidNee
DisciplinesMulti-selectFederatie/ClubJa

Sectie: Bestuur & Documenten

Volledigheids-indicator: Het platform toont hoeveel velden nog ontbreken ("Er ontbreken nog 2 gegevens van jouw club — Vul aan"). Dit stimuleert clubs om hun profiel compleet te maken.
Clubprofiel — Clubgegevens
Mockup: Clubprofiel — tabblad Clubgegevens met AI-inzicht en volledigheids-indicator

5.2 Actieplan Must

Het actieplan biedt clubs een overzicht van concrete verbeteracties. Acties kunnen manueel aangemaakt worden of voortkomen uit AI-aanbevelingen op basis van audit-resultaten, bevragingen of benchmarks.

VeldTypeVerplichtBeschrijving
TitelTekstJaKorte beschrijving van de actie
VerantwoordelijkeTekst / RelatieNeeWie voert de actie uit
DeadlineDatumNeeStreefdatum voor afronding
StatusKeuzelijstJaOpen / In uitvoering / Afgerond
BronKeuzelijstNeeManueel / AI-aanbeveling / Audit / Bevraging
KwaliteitsrubriekRelatieNeeKoppeling aan één van de 8 rubrieken

Functionaliteit:

Clubprofiel — Actieplan
Mockup: Clubprofiel — tabblad Actieplan met open acties

5.3 Data & Statistieken

Dit tabblad biedt clubs inzicht in hun data, verdeeld over drie categorieën:

5.3.1 Clubfinanciën

5.3.2 Ledenstatistieken

5.3.3 Trainerinformatie

5.3.4 Benchmarking

Benchmark-methodologie

  • Populatie: Per federatie (niet cross-federatie)
  • Filtering: Discipline, regio, clubgrootte (waar voldoende data)
  • Berekening: Gemiddelde + spreiding
  • Anonimiteit: Minimum 5 clubs per vergelijkingsgroep
  • Zichtbaarheid: Clubs zien eigen positie t.o.v. benchmark, nooit individuele data van andere clubs
  • Cross-federatie: Could — vereist consent van federaties
Data-ontgrendeling: Clubs die extra gegevens delen (bijv. financiën), ontgrendelen bijbehorende benchmark-statistieken. Dit stimuleert datadeling op een positieve manier.
Clubprofiel — Data & Statistieken
Mockup: Clubprofiel — tabblad Data & Statistieken met financiën, ledengroei en benchmarks

5.3.5 AI-verdieping

Vanuit elke grafiek of datapunt kan de gebruiker doordrukken naar een AI-verdieping. Een overlay toont contextuele inzichten op basis van de clubdata en beschikbare benchmarks.

AI-verdieping bij ledengroei
Mockup: AI-verdieping overlay bij de grafiek "Ledengroei" — toont analyse en context

6 Bevragingen

De bevragingsmodule stelt clubs en federaties in staat om gestructureerde enquêtes uit te voeren bij hun leden. De module werkt als een configureerbare tool waarbij federaties sjablonen beheren en clubs bevragingen opstellen en distribueren.

6.1 Sjablonen (federatieniveau) Must

Federatie admins beheren bevragingssjablonen die clubs als vertrekpunt kunnen gebruiken:

VeldTypeVerplichtBeschrijving
NaamTekstJaBijv. "Tevredenheid Leden", "Exit Survey"
BeschrijvingTekstNeeDoel en context van het sjabloon
VragenVragenlijstJaVooraf gedefinieerde vragen
CategorieKeuzelijstNeeKoppeling aan kwaliteitsrubriek

Aanvullend: Logboek en statistieken per sjabloon Must, tracking van niet-afgeronde bevragingen Should.

6.2 Bevraging aanmaken Must

Clubs maken bevragingen aan vanuit een sjabloon of blanco (from scratch). De form builder ondersteunt:

Vraagtypes

TypeBeschrijving
Multiple choiceEnkele of meervoudige selectie
Open vraagVrij tekstveld (kort of lang)
SchaalNumerieke schaal (bijv. 1-5, 1-10)
Ja/NeeBinaire keuze
RangschikkingItems ordenen op prioriteit
DatumDatumselectie

Vraag-opties

Instellingen per bevraging

InstellingOpties
TitelVrij in te vullen
IntrotekstVrij in te vullen
PrivacyVolledig anoniem / Geanonimiseerd / Niet anoniem
AfzenderE-mailadres van de club
GeldigheidStartdatum — einddatum
Bevraging aanmaken — instellingen
Mockup: Nieuwe bevraging aanmaken vanuit een Exit-sjabloon — instellingenpagina

6.3 Distributie Must

Bevraging opgesteld Distributie instellen Versturen (e-mail / link) Respons verzamelen Resultaten & inzichten

6.4 Resultaten & Inzichten Must

6.5 Koppeling met audit

Survey-resultaten kunnen gekoppeld worden aan het auditproces. Specifieke vragen of scores uit bevragingen worden als databron beschikbaar in de audit, zodat antwoorden niet dubbel ingevoerd hoeven te worden.

Bevragingen overzicht
Mockup: Bevragingenoverzicht met sjablonen, actieve en afgelopen bevragingen, AI-inzicht

7 Audit & Kwaliteitslabels

De auditmodule vormt het hart van het kwaliteitssysteem. Clubs doorlopen een gestructureerde audit om kwaliteitslabels te behalen. Het systeem ondersteunt zowel officiële audits (voor labels) als self-assessments (voor zelfinzicht).

7.1 Auditstructuur

Een audit is hiërarchisch opgebouwd en volledig configureerbaar per federatie:

Audit Rubriek (8x) Sectie Vraag

Vraagconfiguratie

VeldTypeBeschrijving
VraagtekstTekstDe gestelde vraag
AntwoordtypeKeuzelijstJa/Nee, Schaal, Tekst, Multiple choice, Bestandsupload
ScoringregelsObjectPunten per antwoordoptie
GewichtNummerWeging binnen de sectie
VerplichtBooleanMoet beantwoord worden
Bijlage vereistBooleanBewijsstuk verplicht
DatakoppelingReferentieLink naar externe data (federatiedata, survey) die het antwoord voorvult
HelptextTekstToelichting voor de invuller

7.2 Scoringsmechanisme

Scoringsmodel

Vraag-score → gewogen → Sectie-score → gewogen → Rubriek-score → gewogen per label → Totaalscore
  • Gewichten zijn configureerbaar per label per rubriek
  • Drempelwaarden per label zijn instelbaar door de federatie admin
  • Meerdere labels kunnen tegelijk geëvalueerd worden in één audit
  • Het platform berekent automatisch welke labels behaald zijn op basis van de totaalscore

7.3 Versiebeheer Must

Auditstructuren evolueren over tijd. Het platform houdt versies bij zodat:

7.4 Officiële audit Must

Een officiële audit wordt gestart door de federatie en doorloopt het volgende proces:

Federatie start audit Club vult in Tussentijds opslaan Club dient in Federatie valideert Label toegekend

Tijdens het invullen

Na validatie

Audit — huidige audit
Mockup: Audit-overzicht met huidig label, voortgang per rubriek en deadline

7.5 Self-assessment Must

Clubs kunnen op eigen initiatief een self-assessment starten. Dit gebruikt dezelfde auditstructuur, maar:

Self-assessment
Mockup: Self-assessment startpagina

7.6 Audithistoriek

Alle vorige audits en self-assessments zijn raadpleegbaar. Per audit is zichtbaar:

Audit historiek
Mockup: Audithistoriek met vorige audits, benchmark-vergelijking en AI-inzichten

8 Kennisbank & Content

De kennisbank biedt clubs en federaties toegang tot gestructureerde kennis, georganiseerd rond de acht kwaliteitsrubrieken. De content wordt beheerd via een extern CMS en ontsloten via een API-integratie.

8.1 Architectuur

CMS + API model

Extern CMS → API → Kwaliteitstool Gebruiker
  • Content wordt beheerd in een extern CMS (per federatie configureerbaar)
  • Het platform consumeert content via REST API
  • Content wordt gestructureerd weergegeven binnen de kennisbank-module
  • Content dient tevens als grounding voor de AI-assistent (RAG)

8.2 Contentstructuur Must

Content is georganiseerd per kwaliteitsrubriek:

RubriekContenttypes
Visie, beleid en richtingArtikels, video's, best practices
Bestuur en organisatiekrachtArtikels, video's, best practices
Materiaal en accommodatieArtikels, video's, best practices
Sportief en pedagogisch aanbodArtikels, video's, best practices
Trainers en begeleidingArtikels, video's, best practices
Leden en groeiArtikels, video's, best practices
Communicatie en betrokkenheidArtikels, video's, best practices
Veilige, positieve en warme clubcultuurArtikels, video's, best practices

8.3 Functionaliteit

FunctieBeschrijvingPrioriteit
Content integratieOphalen en weergeven van CMS-contentMust
StructureringOrganisatie per rubriek en categorieMust
VersiebeheerVersies van content bijhoudenMust
ValidatieContent valideren op kwaliteit en relevantieMust
RankingContent ordenen op relevantie/prioriteitShould

8.4 AI-kennislaag

De kennisbank-content vormt de primaire grounding voor de AI-assistent. Het platform indexeert de content voor RAG (Retrieval Augmented Generation), zodat de chatbot en AI-inzichten altijd gebaseerd zijn op gevalideerde, federatie-specifieke kennis.

Kennisbank
Mockup: Kennisbank met overzicht per kwaliteitsrubriek en geïntegreerde AI-chat

9 AI-Assistent & Chatbot

De AI-component is een Must en doorkruist het volledige platform. Ze manifesteert zich op drie manieren: contextuele inzichten, de chatbot, en AI-gestuurde aanbevelingen.

9.1 Contextuele AI-inzichten

Op relevante plekken in het platform verschijnen AI-gegenereerde inzichten, herkenbaar aan een visueel "Inzicht"-blok. Deze inzichten zijn altijd:

Inzichtlocaties

LocatieType inzichtDatabronnen
DashboardSamenvatting, signalering, quickstart-suggestiesClubdata, benchmarks, audits
ClubprofielVerbeteringssuggesties (bijv. missie toevoegen)Clubprofiel, benchmarks
Data & StatistiekenTrend-analyse, vergelijkingen, verdiepingenClubdata, benchmarks
Audit-resultatenScore-analyse, correlaties, verbeterpuntenAudit-scores, benchmarks, kennisbank
BevragingsresultatenAnalyse van antwoorden, trendsSurvey-data, benchmarks
ActieplanAanbevolen acties op basis van dataAlle beschikbare clubdata

9.2 Chatbot Must

De chatbot is beschikbaar als zijpaneel op elke pagina. Gebruikers stellen vragen in natuurlijke taal en krijgen antwoorden gebaseerd op:

Data-grounding per context

Functionaliteit

FunctieBeschrijvingPrioriteit
Q&AVraaggesprek op basis van beschikbare dataMust
Conversatie-historiekVorige gesprekken raadplegenMust
Contextueel bewustChatbot weet op welke pagina de gebruiker zich bevindtMust
Feedback / ratingGebruiker kan antwoord beoordelen (nuttig/niet nuttig)Should

9.3 Governance & Monitoring

AI-governance

  • System prompts: Beheerbaar door federatie admins — bepalen toon, scope en beperkingen van de AI
  • Kwaliteitsmonitoring: Dashboard met statistieken over AI-gebruik, feedback-scores, veelgestelde vragen
  • Bijsturing: Op basis van monitoring kunnen system prompts en grounding aangepast worden
  • Logging: Alle AI-interacties worden gelogd voor audit en compliance

9.4 Compliance

EU AI Act vereisten

  • Transparantie: Gebruikers weten dat ze met AI communiceren
  • Menselijke controle: AI geeft aanbevelingen, neemt geen beslissingen
  • Logging & traceerbaarheid: Elke AI-interactie is traceerbaar
  • Data-minimalisatie: AI gebruikt enkel de noodzakelijke data per context
  • Uitlegbaarheid: AI-inzichten tonen op basis van welke data ze zijn gegenereerd
Dashboard met AI-chat
Mockup: Dashboard met AI-chatpaneel, inzichten en quickstart-acties

10 Dashboards & Rapportering

10.1 Club-dashboard Must

Het club-dashboard is de startpagina voor clubgebruikers. Het biedt een overzicht van:

Kerncijfers

  • Aantal leden (+ trend t.o.v. vorig seizoen)
  • Opleidingsgraad trainers (+ trend)
  • Huidig kwaliteitslabel
  • Audit-voortgang en deadline

Quickstart-acties

  • AI-inzicht van de dag
  • Openstaande bevraging
  • Audit verderzetten
  • Label-afbeelding downloaden
Club dashboard
Mockup: Club-dashboard met kerncijfers, quickstart, nieuws en AI-chat

10.2 Federatie-dashboard Must

Geen mockup beschikbaar: Het federatie-dashboard moet nog ontworpen worden. Onderstaande beschrijving is gebaseerd op de functionele analyse.

Het federatie-dashboard biedt een geaggregeerd overzicht over alle aangesloten clubs:

10.3 Organisatie-dashboard Should

Een dashboard op het niveau van de overkoepelende organisatie, met aggregatie over federaties heen. Biedt een cross-federatief overzicht voor de koepel.

10.4 Rapportering

RapportInhoudFormaatGenereerbaar doorPrioriteit
Audit-rapport Scores per rubriek, totaalscore, benchmark-vergelijking, AI-inzichten PDF Club, Federatie Must
Bevragingsrapport Resultaten, grafieken, verdelingen, AI-analyse PDF / Excel Club, Federatie Must
Label-certificaat Visuele asset van het behaalde kwaliteitslabel PNG / PDF Club Must
Club-overzichtsrapport Samenvatting alle clubdata per seizoen PDF Club, Federatie Should
Federatie-overzichtsrapport Aggregatie over alle clubs PDF / Excel Federatie Should
AI-samenvattingen AI-gegenereerde inzichten geïntegreerd in rapporten Onderdeel van rapporten Automatisch Should

11 Niet-Functionele Vereisten

11.1 Beveiliging & Privacy

VereisteBeschrijvingPrioriteit
GDPR compliance Privacy by design in alle componenten Must
Data-isolatie Strikte tenant-isolatie op applicatieniveau; cross-federatie data enkel met expliciete configuratie Must
Anonimisering surveys Respondenten zijn anoniem tenzij anders geconfigureerd Must
Data-retentie Configureerbaar retentiebeleid per datatype met automatische opschoning Must
Recht op vergetelheid Mechanisme om persoonsgegevens te verwijderen op verzoek Must
Verwerkingsovereenkomst Tussen Plainsight en elke federatie Must
Audit trail Alle acties op data worden gelogd met gebruiker, tijdstip en actie Must
Data-locatie Hosting en dataopslag binnen de Europese Unie Must
Encryptie Data versleuteld in transit (TLS) en at rest Must
EU AI Act Transparantie, menselijke controle, logging, data-minimalisatie voor AI-componenten Must

11.2 Meertaligheid

TaalScopePrioriteit
Nederlands Primaire taal — volledige UI, notificaties, rapporten Must
Engels Volledige UI-vertaling Must
Frans Volledige UI-vertaling Must
Kennisbank-content is taalafhankelijk van de federatie en wordt beheerd via het CMS. De platformvertaling (UI-labels, notificatieteksten, systeemberichten) is gescheiden van de content-vertaling.

11.3 Performantie & Schaalbaarheid

VereisteBeschrijvingPrioriteit
Responstijd Pagina's laden binnen 2 seconden onder normale belasting Must
Multi-federatie Platform schaalt naar meerdere federaties zonder performantieverlies Must
Concurrent users Ondersteuning voor gelijktijdig gebruik door meerdere federaties en clubs Must

11.4 Gebruiksvriendelijkheid

VereisteBeschrijvingPrioriteit
Responsive design Mobile-friendly, desktop-first ontwerp Must
Breadcrumbs & navigatie Duidelijke navigatiestructuur en breadcrumbs Should
Configuratie zonder IT Federatie admins kunnen het platform configureren zonder technische kennis Should

11.5 Ontwikkelprincipes

  • Agile ontwikkeling: Sprints van 1-2 weken, iteratief
  • Open standaarden: Geen vendor lock-in
  • IP eigendom: Bij de federaties (gezamenlijk)
  • Overdraagbaarheid: Platform is overdraagbaar aan een andere technische partner
  • Data-export: Alle data exporteerbaar in standaardformaten

12 MoSCoW Prioriteitenmatrix

Onderstaande matrix toont de volledige MoSCoW-classificatie per functionaliteit. Wijzigingen ten opzichte van de originele MoSCoW zijn gemarkeerd.

12.1 Algemeen

DomeinFunctionaliteitPrioriteit
SecurityGDPR compliance — Privacy by designMust
SecuritySecurity standaarden — Moderne beveiligingMust
AuthenticatieSSO per federatieMust
AuthenticatieLokale login — Fallback zonder SSOMust
AuthenticatieMFA — Extra beveiligingMust
UXResponsive designMust
UXBreadcrumbs & navigatieShould
PerformantieSnelle responstijdMust
SchaalbaarheidMulti-federatie ondersteuningMust
ConfiguratieConfiguratie zonder ITShould
LoggingAudit trailMust
NotificatiesConfigureerbare notificaties per rolShould

12.2 Masterdata

SubdomeinFunctionaliteitPrioriteit
GebruikersGebruiker CRUDMust
GebruikersRollen toewijzenMust
GebruikersBulk import via ExcelShould
OrganisatiesOverkoepelende organisaties CRUDMust
OrganisatiesBulk creatie via Excel/APIShould
OrganisatiesExport via Excel/APICould
CategorieënCategorieën CRUDMust
CategorieënBulk creatieShould
CategorieënExportCould
DisciplinesDisciplines CRUDMust
DisciplinesBulk creatieShould
DisciplinesExportCould
FederatiesFederatie CRUDMust
FederatiesFederatie configuratie (SSO/API/mail)Must
FederatiesFederatie exportCould
ClubsClub CRUDMust
ClubsClubprofiel beherenMust
ClubsClub activiteiten overzichtMust
ClubsClub import (bulk)Must
ClubsClub exportCould
KwaliteitslabelsLabels CRUDMust
KwaliteitslabelsVisuals koppelenShould
KwaliteitslabelsOverzicht clubs per labelShould
BevragingssjablonenTemplates CRUDMust
BevragingssjablonenLogboek en statistiekenMust
BevragingssjablonenTracking niet-afgeronde bevragingenShould
Audit configuratieAudit structuur (secties + vragen)Must
Audit configuratieScores & gewichten per labelMust
Audit configuratieVersiebeheerMust
Audit configuratieDatakoppeling per vraagMust
DataData upload (CSV/XLS)Must
DataAPI koppelingenShould
DataStatistieken per datasetShould

12.3 Kernfuncties

SubdomeinFunctionaliteitPrioriteit
KnowledgebaseContent integratie (CMS)Must
KnowledgebaseStructurering van contentMust
KnowledgebaseVersiebeheerMust
KnowledgebaseValidatie van contentMust
KnowledgebaseRanking van contentShould
BevragingenBevraging opzetten (sjabloon of scratch)Must
BevragingenBevraging versturen (distributie)Must
BevragingenResultaten bekijken (incl. AI insights)Must
BevragingenHerinneringenShould
BevragingenRealtime statistiekenShould
BevragingenExport resultatenShould
AuditAudit starten (officieel)Must
AuditSelf-assessmentMust
AuditAudit opslaan (tussentijds)Must
AuditAudit invullen (vragen beantwoorden)Must
AuditAudit valideren (federatie controle)Must
AuditAudit resultaten (scores + labels + AI + benchmarks)Must
AuditBijlages (bewijsstukken)Must
AuditAI-ondersteuning tijdens auditCould
AuditNotificaties (labels, deadlines)Should
DashboardsClub-dashboardMust
DashboardsFederatie-dashboardMust
DashboardsOrganisatie-dashboardShould
DashboardsBenchmarkingShould
DashboardsAI-inzichtenMust
ChatbotQ&A op dataMust *
ChatbotFeedback / ratingShould
ChatbotGovernance & monitoringShould
RapporteringRapport export (PDF/overzicht)Must
RapporteringSamenvattingen / inzichtenShould
ActieplanActieplan beheren (CRUD)Must *
* Afwijking van originele MoSCoW:
  • Chatbot Q&A: Opgewaardeerd van Should naar Must op basis van afstemming — chatbot is kernfunctionaliteit
  • Actieplan: Niet opgenomen in originele MoSCoW, toegevoegd als Must op basis van mockups en afstemming

13 UI/UX Patronen & Mockups

De mockups tonen het platform vanuit het perspectief van een clubgebruiker (Marc Verhaegen, Racing Swimming Club Mechelen, Zwemfed). Ze illustreren de beoogde gebruikerservaring en dienen als visuele referentie voor het ontwerp.

Scope mockups: De beschikbare mockups dekken enkel het club-gebruikersperspectief. Schermen voor super admin, federatie admin, en configuratieschermen (audit-structuur, survey-sjablonen, SSO-setup, gebruikersbeheer) moeten nog ontworpen worden.

13.1 Navigatiestructuur

De mockups tonen een consistente navigatiestructuur:

Zijbalk-navigatie

  • Dashboard — Startpagina met overzicht
  • Mijn club — Clubgegevens, Actieplan, Data & Statistieken
  • Audit — Huidige audit, Vorige audits, Self-assessment (met "Actief" badge)
  • Bevragingen — Overzicht, aanmaken, resultaten
  • Kennisbank — Content per rubriek
  • Instellingen — Persoonlijke en club-instellingen

Bovenin: Seizoenselector, federatielogo, clubnaam

Onderin: Gebruikersprofiel met rol, afmeldknop

13.2 Terugkerende UI-patronen

AI-inzichtblok

Een opvallend blok met gekleurde achtergrond dat AI-gegenereerde inzichten toont. Bevat een icoon, inzichttekst en optioneel een "Verdiep"-knop die doorlinkt naar de chatbot of een detail-overlay.

Benchmark-grafieken

Lijngrafieken met twee lijnen: clubdata (primair) en benchmark (secundair). Maandelijkse weergave per seizoen. Interactief: klikken opent een AI-verdieping.

Voortgangsindicator

Bij de audit: percentage-balk per rubriek met visuele indicator van de afwerkingsgraad.

Volledigheids-stimulans

Subtiele meldingen die clubs aanmoedigen ontbrekende data aan te vullen, met directe link naar het betreffende veld.

13.3 Alle mockups

Mockup 1: Login
1. Login scherm
Mockup 2: Dashboard
2. Club-dashboard met kerncijfers, quickstart, nieuws en AI-chat
Mockup 3: Clubgegevens
3. Mijn Club — Clubgegevens met contactinfo, bestuur en AI-inzicht
Mockup 4: Actieplan
4. Mijn Club — Actieplan met open acties
Mockup 5: Actieplan variant
5. Mijn Club — Actieplan (alternatieve weergave)
Mockup 6: Data & Statistieken
6. Mijn Club — Data & Statistieken met financiën, leden en benchmarks
Mockup 7: Data & Statistieken met hover
7. Mijn Club — Data & Statistieken met interactie-opties (Bewerk data, Vraag aan AI)
Mockup 8: AI-verdieping
8. AI-verdieping overlay bij ledengroei-grafiek
Mockup 9: Bevragingen overzicht
9. Bevragingen — Overzicht met sjablonen, actieve en afgelopen bevragingen
Mockup 10: Bevraging aanmaken
10. Bevragingen — Nieuwe bevraging aanmaken (Exit-sjabloon, instellingen)
Mockup 11: Audit overzicht
11. Audit — Huidige audit met label, voortgang per rubriek en deadline
Mockup 12: Audit historiek
12. Audit — Historiek met vorige audits, benchmark-vergelijking en AI-inzichten
Mockup 13: Self-assessment
13. Audit — Self-assessment startpagina
Mockup 14: Kennisbank
14. Kennisbank met rubrieken-overzicht en geïntegreerde AI-chat

14 Solution-architectuur

Waar Hoofdstuk 2 — Architectuuroverzicht het functionele model beschrijft (multi-tenancy, seizoen, databronnen, integraties), zoomt dit hoofdstuk in op de technische solution-architectuur: hoe het platform concreet gebouwd, gehost en beheerd wordt. Het beschrijft een referentiearchitectuur op Microsoft Azure — multi-tenant, EU-gehost en opgebouwd uit open standaarden. De keuzes hieronder zijn een onderbouwde startpositie; de definitieve invulling wordt samen met de federaties verfijnd in Fase 0 (Discovery & setup).

Referentiearchitectuur, geen blauwdruk: De genoemde Azure-diensten vormen een aanbevolen, bewezen samenstelling. Componenten kunnen vervangen worden door gelijkwaardige open alternatieven zonder de functionele scope te raken — het platform blijft overdraagbaar (zie §14.9). Concrete sizing, regio en netwerkkeuzes worden in Fase 0 vastgelegd.

14.1 Van prototype naar productie

De solution-architectuur is geen vrijblijvend tekentafelontwerp: ze is opgebouwd uit bewezen, open bouwstenen — Next.js + PostgreSQL — die we ook gebruiken voor het klikbare prototype dat we op de volgende kennismaking tonen. Dezelfde bouwstenen schalen één-op-één mee naar Azure — geen herbouw, geen vendor lock-in.

Prototype: Next.js + PostgreSQL Azure Container Apps + Azure Database for PostgreSQL Productie, multi-tenant & EU-gehost
Eén technologie-stack, twee omgevingen. De applicatielaag (Next.js) en datalaag (PostgreSQL) zijn identiek in prototype en productie. Azure voegt de productie-eigenschappen toe — identiteit, schaalbaarheid, beveiliging, observability en compliance — zonder de codebasis te wijzigen.

14.2 Gelaagde referentiearchitectuur

Het platform is opgebouwd in vier functionele lagen met een doorlopende laag voor governance & security. Verkeer stroomt van de gebruiker via de edge naar applicatie, AI en data:

Gebruikers & rollen 1 · Edge & identiteit 2 · Applicatie & API 3 · AI-laag 4 · Data-laag

14.2.1 Laag 1 — Edge & identiteit

ComponentAzure-dienstRol
Edge & beschermingFront Door + WAFCDN, TLS-terminatie, DDoS- en Web Application Firewall-bescherming aan de rand van het platform
IdentiteitEntra External ID (B2C)SSO (OIDC/SAML) per federatie, MFA en lokale login als fallback — zie Hoofdstuk 3

14.2.2 Laag 2 — Applicatie & API

ComponentAzure-dienstRol
Web & APIContainer AppsNext.js-frontend en REST/GraphQL-API in containers; autoscaling op basis van belasting
Integratie-gatewayAPI ManagementCentrale in- en uitgaande gateway voor externe integraties met throttling, policy en versiebeheer
AchtergrondtakenAzure FunctionsImports, synchronisatie, retentie-opschoning en notificaties als event-gedreven jobs

14.2.3 Laag 3 — AI-laag EU AI Act-bewust

ComponentAzure-dienstRol
TaalmodelAzure OpenAIChatbot, AI-inzichten en aanbevelingen — zie Hoofdstuk 9
KennisontsluitingAzure AI SearchRAG: vector-index op de kennisbank zodat antwoorden gegrond zijn in federatiecontent
GuardrailsAI Content SafetyInhoudsfiltering en data-minimalisatie; alle AI-interacties worden gelogd en zijn traceerbaar

14.2.4 Laag 4 — Data-laag EU · versleuteld

ComponentAzure-dienstRol
Relationele dataAzure Database for PostgreSQL (Flexible Server)Kerngegevens, multi-tenant met seizoen als kernentiteit — zie Hoofdstuk 2
BestandenBlob StorageDocumenten, uploads en exports
Cache & sessiesCache for RedisSessiebeheer en snelle respons op veelgevraagde data

14.3 Externe integraties

Alle externe koppelingen lopen per federatie via API Management (laag 2), met een uniforme CSV/XLS-upload als fallback wanneer geen API beschikbaar is. Dit sluit aan op het integratiemodel uit Hoofdstuk 2.4.

IntegratieRichtingDoelFallback
Federatie-IdP'sInboundSSO/MFA (Azure AD B2C bij Gymfed e.a.)Lokale login met MFA
Ledenbeheer-API'sInboundLeden, trainers, diploma's, clubregistratiesCSV/XLS-upload met validatie
Kennisbank-CMSInboundArtikels & richtlijnen → RAG-index (laag 3)Handmatige content-import
Data-exportOutboundExport in CSV, JSON en PDF

14.4 Doorlopende governance & security

Een transversale laag waakt over alle vier de lagen heen. Beveiliging en observability zijn ingebouwd, niet achteraf toegevoegd.

  • Key Vault — centraal beheer van sleutels en secrets; geen credentials in code of configuratie
  • Monitor + Application Insights — logging, metrics en de audit trail (wie, wat, wanneer) conform Hoofdstuk 11.1
  • Defender for Cloud — continue threat detection en security posture management
  • VNet + Private Endpoints — netwerkisolatie; data- en AI-diensten zijn niet publiek bereikbaar
  • Azure Backup — geautomatiseerde back-ups en configureerbare retentie
  • DevOps / GitHub — CI/CD-pijplijnen en Infrastructure-as-Code (Bicep) voor reproduceerbare omgevingen

14.5 Multi-tenancy & data-isolatie in de praktijk

De organisatiehiërarchie uit Hoofdstuk 2.1 (koepel → federatie → club) wordt technisch afgedwongen op applicatieniveau: elke databasequery draagt een verplicht tenant-filter, geïnjecteerd vanuit de geauthenticeerde sessie. Cross-federatie data is enkel toegankelijk met expliciete configuratie.

Logische isolatie

Eén gedeelde PostgreSQL-instantie met tenant-scheiding per rij. Kostenefficiënt, eenvoudig te onderhouden en de gekozen standaard voor de uitrol.

Fysieke isolatie (optioneel)

Een federatie met strengere eisen kan een eigen database of schema krijgen, zonder impact op de applicatiecode — de tenant-laag blijft identiek.

Af te stemmen in Fase 0: Het isolatieniveau per federatie (logisch versus fysiek) wordt per federatie bevestigd op basis van hun governance- en privacy-eisen.

14.6 Omgevingen, CI/CD & Infrastructure-as-Code

Drie gescheiden omgevingen, volledig beschreven in code (Bicep) en uitgerold via geautomatiseerde pijplijnen. Container Apps maakt veilige releases mogelijk via revisies en geleidelijke uitrol.

OmgevingDoelData
DevelopmentActieve ontwikkeling per sprintSynthetische testdata
Test / AcceptatieSprintdemo's en validatie door de stuurgroepGeanonimiseerde of synthetische data
ProductieLive gebruik door federaties en clubsEchte data, EU-gehost & versleuteld
Reproduceerbaar & overdraagbaar. Omdat de volledige infrastructuur in Bicep is beschreven, kan een omgeving — of zelfs het hele platform — herbouwd of overgedragen worden aan een andere technische partner. Dit onderbouwt de overdraagbaarheidsgarantie uit §14.9.

14.7 Schaalbaarheid, beschikbaarheid & herstel

De architectuur vertaalt de niet-functionele vereisten uit Hoofdstuk 11.3 naar concrete mechanismen:

EigenschapMechanismeDoel
SchaalbaarheidAutoscaling van Container Apps; nieuwe federaties als extra tenantsMeeschalen zonder performantieverlies
PerformantieRedis-cache, CDN via Front Door, geoptimaliseerde queriesPagina's binnen 2 seconden onder normale belasting
BeschikbaarheidBeheerde Azure-diensten met ingebouwde redundantieHoge beschikbaarheid voor gelijktijdig gebruik
HerstelAzure Backup met point-in-time herstel; IaC voor heropbouwVoorspelbaar herstel bij incidenten

14.8 Compliance, dataresidentie & EU AI Act

  • EU-hosting: alle compute, opslag en AI-diensten draaien binnen de Europese Unie
  • Encryptie: data versleuteld in transit (TLS) én at rest
  • GDPR: privacy by design, audit trail, configureerbare retentie en recht op vergetelheid — zie Hoofdstuk 11.1
  • EU AI Act: transparantie, menselijke controle, logging en data-minimalisatie in de AI-laag — zie Hoofdstuk 9
  • Verwerkersovereenkomst: tussen Plainsight en elke federatie

14.9 Eigendom & overdraagbaarheid

De technische keuzes zijn bewust gericht op geen lock-in. Dit operationaliseert de eigendomsprincipes uit Hoofdstuk 2.5:

PrincipeTechnische verankering
Open standaardenNext.js, PostgreSQL, containers en open protocollen (OIDC/SAML, REST/GraphQL)
ReproduceerbaarheidVolledige infrastructuur als Bicep-code in een Git-repository
Data-exportAlle data exporteerbaar in CSV, JSON en PDF
EigendomIntellectueel eigendom en Azure-tenant berusten bij de federaties (gezamenlijk)
ExitVolledige overdracht aan een andere technische partner binnen drie maanden