HC WEESP-APP · FUNCTIONELE DOCUMENTATIE
De complete rondgang door de app: wat elk onderdeel doet, hoe het samenhangt, en — belangrijk — wie het te zien krijgt. Alle namen en cijfers in de schermen zijn fictief.
Het belangrijkste principe van de app is capability-gedreven zichtbaarheid: iedereen krijgt dezelfde app, maar de server bepaalt per gebruiker welke onderdelen verschijnen. Er zijn geen aparte "coach-app" of "keeper-app" — er zijn rollen, en de interface groeit mee. Dat geldt voor de iconen in de agendakop, voor menurijen op de teampagina en voor complete modules.
| Icoon / onderdeel | Functie | Wie ziet dit |
|---|---|---|
| L (clubmenu) | Schema's + beheer & beoordelen: nieuws, ledenzoek, SEBO, scouting | Leden met een club- of commissierol (nieuwsredactie, ledenadministratie, arbitragecommissie, TC); de schema's voor iedereen |
| Klembord | Teambeheer-pulldown met jouw teams | Alleen coaches en teammanagers |
| Fluit | Arbitrage: jouw wedstrijden, beschikbaarheid, ruilen | Alleen (club)scheidsrechters |
| Keepershelm | Keepersmateriaal in bruikleen + schademeldingen | Alleen gezinnen met een keeper |
| € | Urenregistratie voor de vrijwilligersvergoeding | Alleen leden met een actieve vrijwilligersovereenkomst |
| Filter | Agenda filteren op type | Iedereen |
Hetzelfde principe stuurt de teampagina (stafleden zien beheerrijen die leden niet zien), de gepinde taakkaarten (de TIPS-kaart verschijnt alleen bij de coach) en de chat-rolgroepen. In de rest van deze pagina staat bij elk hoofdstuk een badge die aangeeft voor wie het onderdeel zichtbaar is.
Inloggen zonder wachtwoord. Je logt in met alleen je e-mailadres: de app stuurt een 6-cijferige code per mail, en daarmee ben je binnen. Er bestaan géén wachtwoorden in het systeem — niets te onthouden, niets te lekken. Het apparaat blijft daarna ingelogd via een device-token, dus dit is een eenmalige drempel, geen ritueel. Klopt je e-mailadres niet meer, dan verwijst het scherm naar de ledenadministratie.
De periodieke gegevenscheck. Eén keer per half seizoen — of direct na een e-mailbounce of mislukte pushmelding — vraagt de app vóór het laden van de agenda of de contactgegevens van het gezin nog kloppen. Eén tik op "Alles klopt nog" volstaat; uitstellen kan (max. drie keer zeven dagen), hard blokkeren doet de app nooit.
Wijzigingen gaan automatisch naar de ledenadministratie; jeugdleden zonder eigen e-mail tonen "geen eigen e-mail" in plaats van een leeg veld.
De agenda toont alles van het hele gezin in één tijdlijn. Hieronder lopen we het scherm van boven naar beneden door — elk element heeft een reden.
Links de paginatitel, rechts de iconenrij die per gebruiker verschilt — zie het rollenmodel. Vast voor iedereen zijn alleen het clubmenu-schemadeel en het filter; klembord, fluit, helm en € verschijnen uitsluitend bij de bijbehorende rol.
De chips direct onder de kop schakelen tussen "Iedereen" en de losse gezinsleden. Het aantal chips volgt het gezin: Piet ziet er vier, Paula vijf. De actieve chip is zwart; de keuze werkt door op de héle tijdlijn en onthoudt zichzelf niet — de agenda opent altijd op "Iedereen", want dat is de gezinsblik waarvoor hij bestaat.
Bovenaan de tijdlijn staan kaarten die aandacht vragen, elk met een caps-label in de streepkleur van hun soort, een wegdruk-kruisje en precies één actie. De volgorde is urgentie: BELANGRIJK (rood, bijv. afgelastingen) altijd bovenaan, dan tijdgebonden taken zoals de TIPS-deadline van de coach (amber, met voortgang "3 van 10"), events en de clubactie (paars, met voortgangsbalk). Kaarten zijn rolbewust — de TIPS-kaart bestaat alleen voor de coach — en weggedrukte kaarten komen terug als de deadline nadert.
Wegdrukken is omkeerbaar en de app zegt dat ook — de toast "Clubactie verborgen uit je agenda · Ongedaan maken" voorkomt spijt:
Tussen de kaarten en de tijdlijn staat de clubsponsor — bewust eérlijk gelabeld met "Gesponsord", op een vaste rustige plek in plaats van als banner door de content. Teamsponsors hebben hun eigen regel op de teampagina; de niveaus lopen niet door elkaar.
Onder de dagkoppen staan de rijen in een vast raster: streepkleur, tijd, titel met subregel, gezinsavatar en aanwezigheidsknop. De subregel draagt de praktische kern — veld, verzameltijd ("Verz. 09:45"), vertrektijd — en bij wedstrijden staat de tegenstander in de vs-microvorm met thuis/uit-pill. Persoonlijke verplichtingen krijgen een amber pill: "Jij rijdt" staat ín de rij, niet ergens in een submenu.
| Streepkleur | Betekenis | |
|---|---|---|
| Grijs | Training | |
| Groen | Wedstrijd | |
| Amber | Dienst of taak (bardienst, fluiten, TIPS-deadline) | |
| Blauw | Event (teamuitje, clubevent) | |
| Rood | Belangrijk / breaking (afgelastingen) | |
| Paars | Clubactie |
De streepkleuren zijn ondersteuning, nooit de enige drager: elk type blijkt ook uit de tekst zelf — een vereiste uit het toegankelijkheidsvoorschrift (±8% van de mannen is rood-groen-kleurenblind).
Elke rij toont wíe van het gezin het betreft via de initiaal-avatar in een vaste persoonlijke tint — dezelfde tinten als in de Hall of fame en de spelerslijst, zodat kleuren door de hele app heen personen blijven. Delen twee gezinsleden dezelfde beginletter — zoals Piet en Paula — dan schakelen béide avatars naar twee letters (Pi en Pa), zodat er nooit twee identieke P's in de tijdlijn staan; zie de derde telefoon hierboven. Rechts de aanwezigheidsknop: zwart vinkje = aangemeld, amber vraagteken = nog niet beantwoord. Eén tik opent de keuze (aanwezig / misschien / afwezig) — en die keuze voedt direct de opkomstcijfers en de opstelling van de coach: wie zich afmeldt, staat daar gedempt.
Het klembord opent de teambeheer-pulldown (alleen staf), de L het clubmenu met schema's en commissie-ingangen. Beide verankeren met een caret aan hun icoon:
Het filter-icoon opent de feedinstellingen: welke favoriete teams in de tijdlijn meelopen en of hun wedstrijden getoond worden — de gezinsitems staan er altijd. Voorbij de eerste dagen scrollt de tijdlijn gewoon door; de kop blijft staan.
Agendarijen openen hun detail: een fluitdienst toont de wedstrijd en het veld, een bardienst je mededienstdoeners. Een clubevent zoals de seizoensbarbecue heeft een complete flow: per gezinslid aanmelden, afrekenen via iDEAL, bevestiging — inclusief agenda-schrijving.
Een clubactie leeft als paarse gepinde kaart in de agenda, met voortgangsbalk en doel. Doneren kan met vaste bedragen of vrij bedrag, optioneel anoniem en met een persoonlijk bericht dat in de donatielijst verschijnt.
Trainers en vrijwilligers met een overeenkomst registreren hun uren met start- en eindtijd; de app rekent duur en bedrag uit tegen het uurtarief uit de overeenkomst. Slim: de app suggereert registraties uit je eigen agenda ("Uit je agenda: Training JO8-3 · Neem over"). Per maand dien je in bij de penningmeester; uitbetaling volgt doorgaans maandelijks. De wettelijke maxima worden server-side bewaakt.
Gezinnen met een keeper zien het helm-icoon. Daarachter: al het bruikleenmateriaal met merk, maat en uitgiftedatum, plus fototellers die de staat vastleggen. Schade meld je met foto's; de melding opent een berichtenthread met de materiaalcommissie, en een gemaakte afspraak verschijnt als kaartje met "In agenda".
Twee keer per seizoen beoordeelt de coach elke speler op Techniek, Inzicht, Persoonlijkheid en Snelheid — subcategorieën op een vijfpuntsschaal plus een open vraag, met de deadline als gepinde kaart in de agenda. De technische commissie heeft daarnaast een eigen scouting-module over teams heen. Privacy is absoluut: spelers en ouders zien beoordelingen nooit.
Scheidsrechters (zoals Lotte, clubniveau 3) beheren hier hun fluitbeurten: komende wedstrijden, beschikbaarheid en het overzicht "scheidsrechters gezocht" waar je jezelf inplant. Kun je niet? Ruilverzoeken lopen via de module, met een berichtenthread en niveau-check bij overname. Praktijkbegeleiders beoordelen scheidsrechters via de SEBO-koppeling in het clubmenu.
Het trainingsschema toont de hele club per veld en dagdeel; het wedstrijdschema alle wedstrijden van een speeldag, filterbaar op thuis/uit en te bekijken op tijd of per veld — inclusief kunstgrassoort.
Het wedstrijddetail bundelt alles rond één wedstrijd: aanwezigheid van het team, voorbeschouwing met de vorige ontmoeting en de poulecontext, en voor de staf de wedstrijdtaken. Trainingen hebben hun eigen detail met aanwezigheid en materiaalnotities.
De Teams-tab toont je gezinsteams en gevolgde favorieten; zoeken werkt op team én club. Elke teampagina van de competitie is bereikbaar, met compleet programma en alle uitslagen van de poule. Het hart-icoon (favoriet) verschijnt alleen op teams búiten je gezin — je eigen teams zijn impliciet gevolgd.
Een tik op een team — vanuit de Teams-tab, een agendarij of een zoekresultaat — landt voor iédereen op dezelfde teampagina. Er bestaat géén aparte beheerbestemming: de rol bepaalt welke rijen het menu toont. Hieronder de rondgang van boven naar beneden.
Rand tot rand in 16:9 — het formaat waarin teamfoto's werkelijk gemaakt worden, dus zonder rare uitsnedes. De teller "1/5" rechtsboven en de dots rechtsonder tonen dat er meerdere foto's zijn; swipen bladert erdoorheen. Linksonder de teamnaam met het seizoen — die staan híer en daarom niet nog eens in de paginakop (anti-dubbeling). De staf ziet in de banner bovendien de knop "Kies teamfoto".
Direct onder de banner: logo, "teamsponsor van JO14-1" en het bescheiden "Sponsor"-label — hetzelfde eerlijk-gelabelde idioom als de clubsponsor in de agenda, maar op teamniveau. Club- en teamsponsors hebben zo elk hun eigen podium en lopen nooit door elkaar.
Het blok beantwoordt de drie zaterdagvragen zonder verdere navigatie: de eerstvolgende wedstrijd (met thuis/uit-pill), de laatste uitslag (in de eigen-groentint, met score) en de stand — "3e van 6 · 22 punten uit 11 wedstrijden" met de positie-badge. Drie regels, drie databronnen (programma, uitslagen, standings), één component; de cijfers zijn per definitie gelijk aan de standentabel verderop, want ze komen uit dezelfde bron.
"Je bekijkt dit team als ouder van Sam" — één regel uit het guardian-model die verklaart waarom de pagina persoonlijk is: subregels als "Sam is aangemeld" en "Jij rijdt" volgen uit deze relatie. Bij een gevolgd favorietenteam ontbreekt de regel en toont de pagina de neutrale leesvariant.
Acht rijen, elk met icoon, subregel en waar zinvol een statuspill: Programma (wedstrijden, stand en uitslagen — zie punt 7), Hall of fame (punt 8), Opstelling met de groene pill "Gepubliceerd" — leden zien alleen wat de coach publiceerde, het concept-stadium bestaat voor hen niet — Rijschema's met de persoonlijke amber "Jij rijdt", Teamevents ("Sam is aangemeld"), Spaarpot als inzage met "bijgehouden door de teamstaf" (iedereen leest mee, alleen staf boekt), Foto-albums ("alleen team en ouders") en de Spelerslijst. Teamchat staat hier bewust níet — die woont in de Berichten-tab; één functie, één thuisbasis.
Coaches en managers zien hétzelfde scherm, met extra rijen ertussen: Statistieken (met opkomst en doelpunten invoeren — voor leden heet dezelfde data "Hall of fame", zónder opkomst), Wedstrijdtaken ("fruit uit bij dit team"), Oefenwedstrijden en Aanwezigheid per speler. De amber tellers ("4 open", "2 reacties") maken het startscherm een cockpit: is alles rustig grijs, dan is de manager klaar. Zie het hoofdstuk Teambeheer-modules voor elk van deze onderdelen.
De meest bezochte pagina van de app is bewust één doorlopende scroll: de vaste trainingsregel, ankerchips die naar de secties springen, de komende wedstrijden ("vs", met verzamel- of vertrektijd), de poulestand met het eigen team groen gemarkeerd, en de uitslagen per speelronde — eigen wedstrijden getint en mét de doelpuntenmakers als subregel, rechtstreeks uit de invoer van de coach. Notatie is consequent: "vs" = nog te spelen, "–" = gespeeld.
De ledenpresentatie van de teamcijfers, als erelijst: topscorers en assists in gestapelde lijsten met avatars (dezelfde persoonlijke tinten als in de agenda), doelpunten per kwart, en "Tussen de palen" — clean sheets voor de keeper en de speler-van-de-wedstrijd-tellingen. Alles automatisch gevuld; wat de staf ziet aan opkomstcijfers en invoerknoppen, zit niet in deze weergave.
De beheerrijen verschijnen voor stafleden gewoon in het teammenu — dit hoofdstuk loopt ze stuk voor stuk langs. Rode draad: de manager voert minimaal in, de app rekent en verdeelt, en alles wat leuk is voor het team (Hall of fame, uitslagen met makers) valt er gratis uit.
De statistiekenpagina toont opkomst (uit de aanwezigheid), de top-5-lijsten en de doelpunten per kwart — allemaal berekend. De enige invoer is het doelpunt zelf, direct na de wedstrijd: maker, eventuele assist, kwart en type (veldgoal, strafcorner, strafbal). De standkaart in het invoersheet rekent per doelpunt de tussenstand voor — "dit doelpunt maakt het 1–0" — waardoor verwisselingen praktisch onmogelijk zijn. Het log toont elk doelpunt met tags; corrigeren kan tot de wedstrijd wordt afgesloten.
Elk team bepaalt zelf wélke taken het bijhoudt via "Taken instellen" — schakelaars per taaktype, met een eigen taak toevoegen voor teamspecifieke gebruiken. De defaults volgen het teamtype: jeugdteams starten mét fruit, senioren en veteranen zónder. Uitgeschakelde taken verdwijnen van het wedstrijddetail en tellen niet mee in de verdeling.
Per wedstrijd toont het overzicht wat geregeld is en wat open staat ("Wijs toe"). Het blok Eerlijke verdeling is het sociale hart: per lid het seizoenstotaal, met het amber cijfer voor wie toe is aan een beurt. Automatisch toewijzen kiest altijd de laagste teller — en rijbeurten tellen mee, zodat de ouder die elke week rijdt niet óók de shirts krijgt.
Route 1 — nog geen tegenstander: de matchmaking-module. Zoek teams op bondsleeftijd, niveau en afstand, of plaats een verzoek; reageren opent een bericht aan de andere manager en na akkoord staat de wedstrijd in beide teamagenda's. Route 2 — afspraak al gemaakt (appgroep, langs het veld): zet hem zelf in als teamevent van het type Oefenwedstrijd. Geen wedstrijdsecretariaat, geen DWF, telt niet in de competitie.
Per uitwedstrijd: hoeveel auto's er nodig zijn, wie er rijdt en de vertrektijd — bewust géén stoelen tellen. Open plekken staan als "1 rijder gezocht"; ouders melden zichzelf aan of de manager wijst toe, ook leden die de app weinig gebruiken (die krijgen de bevestiging per bericht). "Verdeel automatisch" gebruikt dezelfde eerlijkheidsteller als de wedstrijdtaken; het rijbeurten-overzicht maakt de telling per speler inzichtelijk.
Een teamevent loopt van idee tot afrekening op één plek: aanmaken met de vaste kv-rijen (Wanneer, Locatie, Kosten per persoon), aanmeldingen per gezinslid met teller en deadline, en Betalingen bijhouden: per aanmelding betaald, open, of via de spaarpot — met een herinnering in één tik. Het type Oefenwedstrijd (punt 3) is een smaak van ditzelfde mechanisme.
Het teamgeld met ingebouwde transparantie: digitale bijdragen (event-betalingen, stortingen via de app) boeken zichzelf; wat contant of buiten de app om ging, boekt de staf handmatig als storting of opname. Elke handmatige boeking toont de naam van de invoerder en het label "handmatig" — en het héle team leest mee. Die openheid is geen controle op de manager maar zijn bescherming: een pot waar iedereen in kan kijken, is een pot waar niemand vragen over stelt.
Spelers sleep je vanuit de selectie op posities in het veld; wie zich heeft afgemeld staat gedempt — je kunt niemand opstellen die er niet is (de aanwezigheid uit de agenda werkt hier direct door). Een opstelling begint als concept, alleen zichtbaar voor de staf; pas de knop "Publiceer" deelt hem met het team, waar ieder zijn eigen positie ziet.
De spelerslijst toont contact en rugnummers volgens ieders eigen privacy-instelling, met een exporteerknop voor het toernooiformulier-moment. Foto-albums zijn kringbesloten: alleen team en ouders — de subregel zegt het er overal bij.
Beoordelen (TIPS en scouting) staat in het eigen hoofdstuk — dat is rolwerk van coach en TC, geen teambeheer in enge zin. Voor het wánneer van dit alles: het weekritme uit het coach-boekje: donderdag opstelling, vrijdag rijschema en taken, na de wedstrijd één minuut doelpunten.
Waar de agenda het gezin bedient en de teampagina het team, is de Club-tab het clubhuis: alles wat de vereniging als geheel aangaat, in zes rubrieken achter een vaste rubriekennavigatie bovenin.
Clubnieuws en wedstrijdverslagen in een tijdlijn van kaarten. Een verslag opent als volwaardig artikel met kop, beeld en de uitslagcontext. Voor leden is dit leesvoer; wie een redactierol heeft, bereikt het beheer (schrijven, publiceren) via het clubmenu onder de L — de leeservaring blijft daardoor voor iedereen schoon.
De verenigingskalender naast de persoonlijke gezinsagenda: ALV, clubfeesten, toernooien en onderhoudsdagen, per maand gegroepeerd. Bewust gescheiden van de gezinsagenda — die toont wát jou aangaat, deze toont wat de clúb organiseert; een clubevent waarvoor je je aanmeldt, verschijnt vérvolgens in je gezinsagenda (zie de barbecue-flow in het agendahoofdstuk).
Tweedehands hockeyspullen binnen de vertrouwde kring van de club: sticks, schoenen, keeperspullen — met filterchips per categorie. Een item plaatsen kan met 1–5 foto's, maat en prijs; interesse loopt via een bericht rechtstreeks aan de aanbieder, binnen de bestaande berichtenomgeving. Geen extern platform, geen vreemden: je koopt van de ouder drie teams verderop.
De bar- en wedstrijdtafeldiensten van de club, met open plekken waarop je jezelf inschrijft — datum, tijdblok en met wie je staat. Het inschrijfsheet bevestigt in één tik en zet de dienst direct in je gezinsagenda (amber streep). Fluitbeurten staan hier bewust níet: die leven in de arbitragemodule, waar de niveau-check en het ruilen thuishoren.
Wie-is-wie en wie-zoeken-we. De commissiestructuur met contactpersonen, de ledenzoek (op naam, met rugnummer en team — contact volgens ieders privacy-instelling), en de vacatures: klusjes en rollen die de club zoekt, van jeugdtrainer tot lotencommissie. Het vacature-detail vertelt eerlijk wat het kost (tijdsbesteding, periode), wat de club regelt, en eindigt in de bewust zachte knop "Meld je interesse" — geen sollicitatie, gewoon een gesprek.
Het voorspelspel van de club over de Hoofdklasse: per speelronde uitslagen voorspellen, punten voor de juiste toto (en bonuspunten voor de exacte score), en een clubranglijst die het hele seizoen loopt. "Jouw voorspellingen" toont je rondehistorie en positie. Laagdrempelig clubbindmiddel — en het onderwerp van een van de wervingsposters in de kantine.
Eén berichtentab voor alles: teamchats (ouders en spelers), en rolgroepen die automatisch worden samengesteld op basis van rol — "Coaches jongste jeugd" onderhoudt zichzelf als rollen wijzigen. De teamchat heeft bewust géén tweede ingang op de teampagina: één functie, één thuisbasis.
Het profiel beheert het gezin: contactgegevens en privacy-instellingen per lid, lidmaatschappen met contributiestatus (wijzigen en opzeggen van jeugdleden kan alleen door een ouder/verzorger), en het woonadres. Adreswijziging werkt Nederlands-slim: postcode + huisnummer intikken, de straat en plaats worden automatisch opgezocht, en één vraag regelt het hele gezin: "Verhuist de rest van het gezin mee?" — met de guardian-rechten zichtbaar per kind.
Onder alle schermen liggen vaste afspraken: een bindend toegankelijkheidspalet (informatiedragende tekst minimaal 4,5:1 contrast — de app leeft in fel daglicht langs het veld), tikdoelen van minimaal 44pt, betekenis nooit in kleur alleen, en tekstschaal tot 120%. Data is één keer waar: de stand op de teampagina, in het "Deze week"-blok en in het programma komt uit één bron; de doelpunten-invoer van de coach voedt tegelijk het log, de Hall of fame en de uitslagen. En alles is capability-gedreven: rollen bepalen wat je ziet, de server bepaalt de rollen.
HC Weesp-app · functionele documentatie bij de mockup (77 gedocumenteerde ingangen, 124 mockup-schermen) · gebouwd door LISA