Sportformulieren
Digitale Sportformulieren
www.sportformulieren.nl

πŸ“‹ Bekercompetitie Reglement Regio Oost 2026

01 De bekercompetitie wordt gespeeld na de voorjaarscompetitie en start begin mei.
02 Een vereniging mag meerdere teams inschrijven, inschrijfgeld is €10 per team.
03 Leden van een bekerteam behoeven geen lid te zijn van dezelfde vereniging. Nu kunnen ook kleine verenigingen samen met anderen een team vormen.
04 Nieuwe leden mogen ook meespelen, wel naar reΓ«le sterkte indelen. Indien van een andere vereniging, dan vorige gespeelde klasse en bondsnummer melden.
05 Niet-leden mogen ook deelnemen, altijd na overleg met de leiding.
06 Een team bestaat uit minimaal 4 spelers en/of speelsters die ieder 4 enkelwedstrijden spelen en 2 dubbel. Er is geen maximum aantal spelers per team.
07 Er wordt gespeeld op 2 tafels, dus 8 enkelspelen en 1 dubbelspel per tafel.
08 De wedstrijden worden gespeeld in games "best of 5", 3 gewonnen games. Een game gaat tot 11 punten met een minimaal verschil van 2 punten.
09 In de poulewedstrijden moeten alle wedstrijden gespeeld worden, omdat elke gewonnen partij 1 wedstrijdpunt (set) oplevert.
10 De handicap is op basis van de meest recente ELO-ratinglijst, eind april 2026. De speler met de laagste rating krijgt punten voor volgens deze tabel:
Toegifttabel op basis van ratingverschil
Verschil in rating Elke game starten met
0 – 1000 – 0
101 – 2000 – 2
201 – 3250 – 3
326 – 4500 – 4
451 – 6000 – 5
601 – 7500 – 6
751 – 10000 – 7
1001 en meer0 – 8
11 Heeft een speler (nog) geen rating, dan bepaalt de bekercompetitieleiding deze.
12 Jeugdrating wordt opgewaardeerd naar (vergelijkbare) seniorenrating.
13 Bij onjuiste inschatting kan deze in de poulefase eenmalig aangepast worden.
14 Bij het dubbelspel wordt de handicap bepaald door de spelers met de hoogste rating met elkaar te verrekenen en de spelers met de laagste rating te verrekenen. Beide uitkomsten worden bij elkaar opgeteld en gedeeld door 2. Uitkomst achter de komma altijd naar boven afronden, zie voorbeeld:
Voorbeeld dubbelspel Team A tegen Team B:
Team A: speler 1 (rating 1448) en speler 2 (rating 860)
Team B: speler 1 (rating 1257) en speler 2 (rating 561)
Ratingverschil spelers 1 β†’ 191 = 2 punten
Ratingverschil spelers 2 β†’ 299 = 3 punten
Handicap: (2+3) Γ· 2 = 2,5 β†’ altijd naar boven afronden = 0–3
15 Met de poule-indeling zijn thuis- en uitwedstrijden bepaald volgens vast schema.
16 Invallen: Een ieder die lid is van een bekerteam of gerechtigd is lid te zijn van een bekerteam, mag invallen in elk ander team, wanneer door betrokken speler nog niet eerder is gespeeld. Na een invalbeurt mag een speler nog slechts spelen in dat team waar hij/zij is ingevallen. Oftewel, per bekerseizoen kun je slechts uitkomen voor 1 team. Dit biedt ruime mogelijkheden tot invallen en ook nog niet opgegeven spelers mogen invallen. Dit voorkomt tevens dat (sterke) spelers die uitgeschakeld zijn met hun eigen team verder deelnemen in andere teams.
17 Invallers dienen minimaal 1 dag van tevoren aangemeld te worden. Het liefst vroeger in verband met het uitzoeken/opzoeken/bepalen van de rating.
18 Het team dat alle poulewedstrijden op wedstrijdpunten wint, is poulewinnaar!
19 Het behaalde aantal wedstrijdpunten bepaalt de stand in de poule daarna. Bij gelijke stand beslist het onderlinge duel, eerst uitslag, dan games, dan punten.
20 Na de poulewedstrijden volgt het afvalsysteem (knock-out). De wedstrijd is beslist bij 10 wedstrijdpunten. Men kan zelf beslissen of alle wedstrijden uitgespeeld worden, of dat men stopt als 1 van de teams 10 wedstrijdpunten heeft behaald.
21 Indien de wedstrijd na de poulewedstrijden in het afvalsysteem eindigt op 9-9, dan wordt er een beslissend dubbel gespeeld. Dit dubbelspel dient een combinatie te zijn van een dubbel dat in deze wedstrijd nog niet samen gespeeld heeft.
22 Er zijn speciale bekercompetitie wedstrijdformulieren. Het thuisspelende team is verantwoordelijk voor het beschikbaar hebben en het juist invullen hiervan.
23 Het thuisspelende team dient een duidelijke foto van het wedstrijdformulier dezelfde avond en direct na afloop te sturen naar de bekercompetitieleiding:
πŸ“§ bekercompetitie@gmail.com
24 Uitslagen en vervolgrondes worden zo spoedig mogelijk gepubliceerd en gemaild.
25 In onderling overleg mogen wedstrijden op een andere dag in dezelfde week worden gespeeld, mits vooraf doorgegeven aan de bekercompetitieleiding.
26 Uitstel naar een latere week wordt in principe niet verleend, tenzij in bijzondere gevallen en altijd na beslissing door de bekercompetitieleiding.
27 De 2 halve finales worden gelijktijdig gespeeld in de zaal van ATTV Blauw-Wit (Almelo).
28 De week daarna is de finale, tevens in de zaal van ATTV Blauw-Wit (Almelo).
29 πŸ“ Sportieve regel: De beker geeft iedereen de kans om tegen iedereen te kunnen spelen, van beginner tot zeer ervaren. Respecteer ieders rating en niveau. Sportiviteit staat hoog in ons vaandel, laten we dit samen uitdragen.
30 Overal waarin dit reglement niet voorziet, beslist de bekercompetitieleiding.
31 De bekercompetitie, programma en uitslagen, zijn te volgen via de Facebook pagina: Bekercompetitie Afdeling Oost

Bekercompetitie Organisatie en Leiding

Jos Reuvekamp
πŸ“ž 06 1601 8309
Eric Beld
πŸ“ž 06 3741 8675
πŸ“§ Gedeeld e-mailadres: bekercompetitie@gmail.com

πŸ“– Instructies β€” Hoe werkt de app?

πŸ“§ Vragen? Mail bekercompetitie@gmail.com

Seizoenscode

Bij je eerste bezoek aan de app vraagt het systeem om een seizoenscode. Deze code ontvang je van de wedstrijdleiding. Na een geldige code wordt hij in deze browser bewaard β€” volgende keren krijg je de overlay niet meer te zien.

Stap 1 β€” Jouw wedstrijd vinden

  • Ga naar tab Wedstrijden
  • Gebruik de πŸ” zoekbalk bovenaan om jouw team te zoeken
  • Of klik op jouw poule (A t/m H) om alle wedstrijden in die poule te zien
  • De poulestand verschijnt zodra je een poule kiest en toont het actuele klassement
  • Klik op het β„Ή icoontje achter een teamnaam in de poulestand voor verenigingsinfo (adres, speelavond, telefoon, contactpersoon)

Stap 2 β€” Wedstrijd starten

  • Zoek jouw wedstrijd in de lijst onder de poulestand
  • Klik op de status-cel (πŸ“… Gepland) om een nieuwe wedstrijd te starten. Het icoon achter de uitslag is altijd klikbaar.
  • Is de wedstrijd al bezig (πŸ“ Nu spelen)? Klik op de status-cel om verder te gaan.
  • Klik op het πŸ“-icoontje achter het wedstrijdnummer voor adres + contactgegevens van de thuisvereniging.

Stap 3 β€” Spelers invullen

  • Op tab Wedstrijdgegevens vul je de vier spelers per team in (thuis en uit)
  • Typ een naam β†’ kies de speler uit de suggestielijst. Bondsnummer en rating worden automatisch ingevuld
  • Als alle 8 spelers ingevuld zijn: klik op β–Ά Speelschema laden
⚠️ Nieuwe spelers toevoegen
Nieuwe spelers worden altijd toegevoegd door de wedstrijdleider. Neem contact op of bel Jos Reuvekamp (06 1601 8309) of Eric Beld (06 3741 8675).

Stap 4 β€” Scores invullen

  • Op tab Wedstrijdformulier vul je per set de games in
  • Het formulier bestaat uit 18 sets: 8 enkels, 2 dubbels en nog 8 enkels
  • Vul alleen cijfers (0–99) in per game. Letters en streepjes worden geblokkeerd
  • Vul altijd het laagste cijfer van een game in (of dat nu thuis of uit is). Druk op Tab β†’ de winnaar wordt automatisch ingevuld op 11 (of bij verlenging vanaf 10-10: typ het laagste cijfer, bv. 13, en het hoogste wordt op 15 gezet)
  • Na een afgesloten game springt de cursor vanzelf naar de eerstvolgende game in dezelfde set
  • De setuitslag en eindstand worden live berekend
  • Klik op het β„Ή naast de startstand voor uitleg over de toegift (voorsprong op basis van ratingverschil)

Stap 5 β€” Akkoord geven

  • VΓ³Γ³r akkoord-geven kun je de stand controleren via de tussenstand-pil rechtsboven elke set (bv. 1-2 in games) en de uitslag-balk onderaan met de huidige set-stand (bv. 7-11). Beide updaten live op desktop en mobiel
  • Zodra alle sets een besliste uitslag hebben, kunnen beide kapiteins akkoord geven
  • Vul in de balk van je eigen team je naam in en klik op βœ“ Akkoord uitslag
  • Na akkoord van beide teams is de wedstrijd βœ… Afgerond en officieel
  • Het formulier kan dan niet meer gewijzigd worden β€” fouten kun je melden bij de wedstrijdleiding

Knock-out fase

Na de pouleronde volgt de knock-out fase:

  • πŸ† AF β€” Achtste Finales (week 25, 15-19 juni)
  • πŸ† KF β€” Kwart Finales (week 26, 22-26 juni)
  • πŸ† HF β€” Halve Finales (week 27, vrijdag 3 juli, ATTV Blauw-Wit (Almelo))
  • πŸ† BF β€” Bekerfinale (week 28, vrijdag 10 juli, ATTV Blauw-Wit (Almelo))
  • ⏳ β€” wachtend op teams uit voorgaande ronde. Klik op de status-cel voor uitleg.

Klik op tab Wedstrijden op AF/KF/HF/BF om de wedstrijden van die ronde te zien.

⚠️ Knock-out wedstrijden
  • De wedstrijd is klaar als één team 10 punten heeft
  • Bij 9-9: er volgt een beslissend dubbel β€” registreer de winnaar via de knop in het formulier
  • Eindstand is altijd 10-9 of 9-10

Meerdere mensen tegelijk

  • Meerdere mensen kunnen tegelijk scores invullen voor dezelfde wedstrijd
  • Gebruik ↻ Vernieuwen om de laatste stand op te halen
  • Wisselen van tab ververst automatisch
  • Start je een wedstrijd die al op Nu spelen staat, dan verschijnt er een waarschuwing

Op je mobiele telefoon

Het formulier past zich automatisch aan kleinere schermen aan (vanaf ongeveer 768 pixels schermbreedte). Op je telefoon zie je daarom een compactere layout dan op de laptop, maar alle functies werken hetzelfde.

⚠️ Gewijzigde wedstrijddatums

Wordt een wedstrijd op een andere datum gespeeld? Geef dit altijd vooraf door aan de wedstrijdleiding. Wedstrijden mogen alleen in dezelfde week verzet worden (zie reglement artikel 25).

⚠️ Extra spelers / invallers

Een extra speler of invaller moet je vooraf afstemmen met de wedstrijdleiding β€” minimaal 1 dag van tevoren aanmelden (zie reglement artikel 17). Nieuwe spelers worden door de beheerder toegevoegd aan het systeem.

Vragen of problemen?

πŸ”§ Instructies Beheerder

Inloggen

  • Klik rechtsboven op πŸ” Beheerder
  • Voer je inlognaam en wachtwoord in. Sessie verloopt automatisch na lange inactiviteit.
  • Na inloggen verschijnen extra tabs: Instructies (B), Test en Import, Verenigingen, Poule-indelingen en Spelers. Het wedstrijdschema en de knock-out zijn samengevoegd met Wedstrijden β€” beheerder- acties verschijnen in de Acties-kolom.
  • Na inloggen verandert de knop in πŸ‘οΈ Bekijk als gebruiker β€” handig om snel te zien wat de eindgebruiker te zien krijgt. Klik nogmaals voor πŸ‘οΈ Terug naar beheerderweergave.
  • Sessie verloopt automatisch na lange inactiviteit. Volledig uitloggen via πŸšͺ Uitloggen als beheerder rechtsboven.

Seizoenscode beheren

  • Onderaan deze pagina staat de kaart πŸ”‘ Seizoenscode beheren
  • Standaardcode bij start: BEKER2026
  • Wijzig de code bij een nieuw seizoen β†’ oude code wordt automatisch gedeactiveerd. Bestaande gebruikers krijgen dan opnieuw de overlay te zien

Verenigingen

  • Verenigingen toevoegen, bewerken en verwijderen
  • Velden: naam, adres, plaatsnaam, contactpersoon, email, telefoon, speelavond, tafels, tel. zaal, zaal beschikbaar tot
  • Adres + plaatsnaam vormen automatisch een klikbare πŸ—ΊοΈ Google Maps-link op Wedstrijden
  • Een vereniging kan pas verwijderd worden als er geen teams meer aan gekoppeld zijn

Poule-indelingen

  • Klik op een poule (A t/m H) om de teams te zien
  • Teams toevoegen per poule β€” bulk-toevoegen tot 4 tegelijk
  • Team bewerken: nummer en bijnaam aanpassen
  • Team verwijderen alleen mogelijk als er geen spelers of wedstrijden meer aan gekoppeld zijn

Spelers

  • Spelers worden uitsluitend via deze tab toegevoegd β€” niet meer via het wedstrijdformulier op Wedstrijdgegevens
  • Spelers toevoegen, bewerken en verwijderen
  • Spelers koppelen aan een team (autocomplete)
  • Bondsnummer moet uniek zijn
  • Ratings worden bijgewerkt na ontvangst van de NTTB-lijst (eind april)
  • Nieuwe spelers altijd in afstemming met de deelnemende teams toevoegen

Wedstrijden β€” beheerder-acties

  • Wedstrijden plannen via + Wedstrijd toevoegen (boven de tabel): datum, thuis team, uit team, poule, optioneel een locatie.
  • Filter op poule (pills), zoek op teamnaam (zoekbalk alleen actief zonder poule-filter), filter op status (Alle / Gepland / Nu spelen / Afgerond).
  • Voor gebruikers: klik op de status-cel (kolom Uitslag) β€” het icoon bepaalt de actie:
    • πŸ“… GEPLAND β†’ invullen-flow
    • πŸ“ NU_SPELEN β†’ doorgaan-flow
    • βœ… AFGEROND β†’ wedstrijdformulier inzien
    • πŸ“‹ WL β†’ eindstand-info-modal
    • ⏳ wachtend op teams β†’ uitleg-modal
  • Voor beheerder: extra knoppen in de Acties-kolom:
    • ✏️ β€” wedstrijdschema bewerken (datum, locatie, teams, poule)
    • πŸ—‘ β€” wedstrijd verwijderen, met situatie-afhankelijke bevestiging:
      • Geen formulier β†’ direct verwijderen na bevestiging
      • Wel formulier, geen scores β†’ formulier + schema verwijderen
      • Wel scores β†’ extra waarschuwing vereist
      • Afgerond β†’ eerst ontdooien via het wedstrijdformulier
    • πŸ“‹ WL β€” eindstand invoeren door wedstrijdleiding
  • ↻ Vernieuwen (boven de tabel) haalt de laatste lijst op.

Knock-outs in Wedstrijden

De knock-out fase wordt beheerd binnen de tab Wedstrijden β€” er is geen aparte tab meer. Filter via de KO-balk-knoppen AF / KF / HF / BF boven de wedstrijdtabel om alleen die ronde te zien.

De knop πŸ”„ Knock-outs bijwerken (boven de tabel, alleen voor beheerder zichtbaar) doet:

  • Achtste finales: 1/8-koppels uit poule-eindstanden vullen (nr. 1 en nr. 2 per poule)
  • Kwart/Halve finales en Finale: winnaars uit voorgaande ronde doorzetten

Klik op de ✏️-knop in de Acties-kolom om datum, locatie of teams aan te passen voor een specifieke KO-wedstrijd.

πŸ“ Halve Finales en Bekerfinale
Locatie is standaard ATTV Blauw-Wit (Almelo). Knockout-wedstrijden verschijnen automatisch op Wedstrijden zodra de pouleronde is afgerond. Filter via de KO-balk-knoppen (AF / KF / HF / BF).

Wedstrijd ontdooien

Een al afgeronde wedstrijd corrigeren? Open 'm via Wedstrijden door op de status-cel βœ… te klikken. Daarna gebruik je op het wedstrijdformulier de knop πŸ”“ Ontdooien (beheerder). Drie opties:

  • Alleen akkoord wissen β€” scores blijven, beide kapiteins kunnen opnieuw akkoord geven
  • Alles wissen β€” scores Γ©n akkoord weg, status terug naar Gepland
  • Annuleren β€” sluit de modal zonder wijzigen.

Wedstrijd vrijgeven

  • Wedstrijd zonder akkoord (gepland of nu spelen): open de wedstrijd op Wedstrijdgegevens en gebruik Verwijder formulier. De scores worden gewist; de wedstrijd komt terug op Gepland.
  • Wedstrijd afgerond (beide kapiteins akkoord): gebruik Ontdooien op het formulier (alleen zichtbaar voor beheerder).

Testfuncties

  • Op Wedstrijdgegevens staat de groene knop πŸ§ͺ TEST: Vul testdata in (alleen beheerder) β€” vult automatisch 8 spelers en/of scores in
  • Deze knoppen zijn alleen zichtbaar voor beheerders en hoeven niet handmatig verwijderd te worden voor productie

Naar productie

Productie-taken (IIS, SSL-certificaat, CORS, Windows Service voor uvicorn) worden buiten de app bijgehouden.

πŸ”‘ Seizoenscode beheren

Huidige actieve code: laden...

Test en Import β€” beheerscripts

Documentatie van de command-line scripts in de Import/-map. Deze scripts draaien lokaal via PowerShell op de werkmachine van de beheerder en zijn niet beschikbaar via de webinterface.

Quick-reference

Veelgebruikte commando's
DoelCommando
Verse import python Import/importeer_seizoen.py --execute --ook-opschonen
Hele poule-fase invullen python Import/vul_uitslagen.py --alleen poule
Tot en met AF (laatste leeg) python Import/vul_uitslagen.py --tm AF-1
Hele competitie volgooien python Import/vul_uitslagen.py --tm BF

Een complete poule-run duurt typisch ~30-60 seconden (eerder ~30 minuten in v0.2).

importeer_seizoen.py stable

Importeert verenigingen, teams, spelers en het volledige wedstrijdschema (poule + KO) op basis van de XLS-bestanden in de import-map. De cleanup van bestaande wedstrijddata gebeurt geΓ―ntegreerd via de --ook-opschonen flag β€” geen apart script meer nodig.

Aanroep (dry-run, geen DB-wijzigingen):

python Import/importeer_seizoen.py

Aanroep (echt uitvoeren, met cleanup):

python Import/importeer_seizoen.py --execute --ook-opschonen

Output: rapport in Rapporten/import_seizoen_YYYYMMDD_HHMM.md met snapshot, per-stap-resultaten en validatie-checks.

vul_uitslagen.py v0.5.1

Test-hulpscript dat wedstrijden via een gemengde flow invult, inclusief KO-trekking tussen fases en sync- verificatie tussen knockout en wedstrijd_schema.

Werking poule-fase (v0.4):

  • Per poule de eerste 5 wedstrijden via productie-flow: POST /wedstrijden + PUT /sets + PUT /akkoord.
  • De overige 10 per poule via WL-shortcut: POST /wedstrijden/{schema_id}/eindstand.
  • Productie-wedstrijden krijgen 4 random echte spelers per team uit de DB, zodat ratings doorwerken op Persoonlijk (spelersresultaten).
  • WL-wedstrijden hebben geen spelers β€” by design van de backend (eindstand-pad slaat alleen sets-totaal op).
  • 9-9 eindstanden zijn toegestaan in het WL-poule-pad.
  • Doorlooptijd staat in het run-rapport (sectie 1 + per fase).

Vereisten:

  • Backend draait op http://localhost:8000
  • Schema is geΓ―mporteerd via importeer_seizoen.py

CLI-parameters

CLI-parameters van vul_uitslagen.py
ParameterEffect
--tm <fase> Vul alle wedstrijden t/m deze fase in
--tm <fase>-1 Idem, laat laatste wedstrijd van die fase leeg
--alleen <fase> Vul alleen de gegeven fase in
--alleen <fase>-1 Idem, laat laatste wedstrijd leeg

πŸ’‘ Let op: schrijf de fase en -1 aan elkaar (AF-1, niet AF -1). Met spatie ertussen wordt -1 als losse optie gezien en faalt het script.

Geldige fases: poule, AF, KF, HF, BF (BF-1 niet ondersteund β€” bekerfinale is één wedstrijd).

  • Productie-pad: vaste game-score 11-7, random welk team wint per game
  • Productie-pad: 4 random echte spelers per team uit de DB (geen synthetische A1-A4/B1-B4 meer)
  • WL-pad: alleen eindstand-totaal, geen spelers, geen individuele sets β€” 9-9 toegestaan
  • Idempotent: skip wedstrijden waar akkoord_thuis al gevuld is

Output: rapport in Rapporten/run_vul_uitslagen_YYYYMMDD_HHMM.md, inclusief doorlooptijd in sectie 1 + per fase.

Aanbevolen testvolgorde

  1. Verse import
    python Import/importeer_seizoen.py --execute --ook-opschonen
    Verwacht: 8 poules, 48 teams, 120 poule-rijen, 15 KO-rijen (alle KO nog NULL teams).
  2. Backend herstarten (uvicorn)
    python -m uvicorn backend.main:app --reload
    Vereist na backend-wijzigingen.
  3. Poule-fase
    python Import/vul_uitslagen.py --alleen poule
    Verwacht: 120 wedstrijden gespeeld (40 via productie- flow + 80 via WL-shortcut); sectie 5 in run-rapport leeg; doorlooptijd ~30-60s in sectie 1.
  4. Tot en met AF (laatste leeg)
    python Import/vul_uitslagen.py --tm AF-1
    Verwacht: poule al ingevuld, 7 AF gespeeld + 1 overgeslagen.
  5. Laatste AF + KF-trekking
    python Import/vul_uitslagen.py --alleen AF
    Verwacht: 1 AF nieuw gespeeld, 7 al ingevuld, KF-rijen krijgen team-id's.
  6. Hele competitie afmaken
    python Import/vul_uitslagen.py --tm BF
    Verwacht: KF + HF + BF gespeeld, sync-tabellen voor 1/4, 1/2, finale.

Bijzonderheden poule-test

  • Verdeling per poule: 5 wedstrijden via productie-flow, 10 via WL-shortcut. Totaal: 40 productie + 80 WL = 120 wedstrijden.
  • Genereert in de DB: 120 wedstrijd-rijen, 720 set_uitslag-rijen (alleen productie-pad: 40 Γ— 18), 120 eindstand-rijen, 320 wedstrijd_speler-rijen (alleen productie-pad: 40 Γ— 8).
  • Productie-wedstrijden gebruiken echte spelers met ratings, dus Persoonlijk (spelersresultaten) is gevuld na een poule-run.
  • Looptijd ordegrootte ~30-60 seconden (afhankelijk van API-snelheid). Doorlooptijd staat in sectie 1 en per fase in het run-rapport.
  • Sectie 5 in run-rapport blijft leeg (geen KO-rijen geraakt).
  • Per-wedstrijd validatie (7 checks per wedstrijd) wordt samengevat aan het eind.
  • Bij slechte API-snelheid kan een individuele wedstrijd 1+ seconde kosten β€” geen circuit-breaker, het script gaat door.

Visuele checklist na een poule-test

Twee weergaven met dezelfde checks, anders gegroepeerd. Klik op een knop om te wisselen.

Poule-fase

  • Persoonlijk (spelersresultaten): 320 speler-wedstrijd- koppelingen, echte namen en ratings.
  • Wedstrijden: enkele productie- en WL-wedstrijden bekijken; productie heeft 18 sets in detail-view, WL alleen totaal.
  • Akkoord-namen: Test thuis / Test uit (productie) en Wedstrijdleiding (WL).

AF-fase (1/8)

  • Wedstrijden (KO-bracket): 8 AF-wedstrijden met team-namen, geen placeholders. Eindstanden zichtbaar.

KF + HF (1/4 en 1/2)

  • Wedstrijden (KO-bracket): winnaars uit vorige ronde doorgepropageerd. Geen placeholders in afgeronde rondes.

BF (finale)

  • Wedstrijden (KO-bracket): bekerwinnaar zichtbaar.
  • Wedstrijden: BF-wedstrijd met eindstand.

Algemeen (bij elke run)

  • Tab "Test en Import": versie-badge en doorlooptijd komen overeen met de actuele v0.5.
  • Run-rapport secties 8 en 9: contextspecifieke checks zichtbaar.

Wedstrijden

  • Eindstanden zichtbaar bij alle gespeelde wedstrijden.
  • Productie-wedstrijden: 18 sets in detail-view.
  • WL-wedstrijden: alleen totaal-eindstand.
  • Akkoord-namen consistent: productie = Test thuis / Test uit, WL = Wedstrijdleiding.

Persoonlijk (spelersresultaten)

  • Spelersresultaten gevuld met echte namen.
  • Ratings doorgewerkt voor productie-wedstrijden.
  • WL-wedstrijden tellen niet mee in spelersresultaten.

KO-bracket (Wedstrijden)

  • AF: 8 wedstrijden met team-namen.
  • KF/HF: winnaars uit vorige ronde doorgepropageerd.
  • BF: bekerwinnaar zichtbaar.
  • Geen placeholders in afgeronde rondes.

Algemeen

  • Tab "Test en Import": versie + doorlooptijd correct.
  • Run-rapport secties 8 en 9: gelezen.

Troubleshooting

FOUT: backend niet bereikbaar op http://localhost:8000

Start uvicorn:

python -m uvicorn backend.main:app --reload
"Geen <fase>-wedstrijden beschikbaar β€” speel eerst <vorige>"

Vorige fase nog niet gespeeld of POST /knockout/bijwerken niet aangeroepen. Gebruik --tm in plaats van --alleen, of doe handmatig POST /knockout/bijwerken via de Wedstrijden-tab.

schema_synced ontbreekt in bijwerken-response

Backend draait nog op oude code (vΓ³Γ³r KO-sync-fixes). Herstart uvicorn.

"BF-1 is niet zinvol β€” bekerfinale is één wedstrijd"

Gebruik --tm BF of --alleen BF zonder -1.

Run duurt te lang of moet onderbroken

β†’ Ctrl+C in PowerShell. Dit is veilig: vul_uitslagen.py schrijft per wedstrijd naar de DB (geen lange transactie), de DB-staat blijft consistent op het punt waar je stopt. Geen rapport bij onderbreking. Hervatten kan via dezelfde aanroep β€” al-ingevulde wedstrijden worden overgeslagen (idempotency).

Versies

  • v0.5 β€” 9-9-scenario per KO-fase (beslissend dubbel) + 2 negatieve PUT /eindstand-tests per KO-fase
  • v0.4 β€” doorlooptijd-logging, 9-9 toegestaan in WL-poule, echte spelers in productie-pad, verdeling 5+10 per poule
  • v0.3 β€” quick-wins + WL-shortcut voor poule (was 2+13)
  • v0.2 β€” CLI-parameters voor fase-selectie + KO-sync verificatie per fase
  • v0.1 β€” één hardcoded poulewedstrijd

Wedstrijdgegevens

ℹ️ Na afloop van de wedstrijd kunnen beide kapiteins digitaal bevestigen. Vragen? Mail naar bekercompetitie@gmail.com
Spelers van het thuisteam
Code Naam Bondsnr β„Ή Rating
Spelers van het uitteam
Code Naam Bondsnr β„Ή Rating
0 β€” 0 vs
Speelschema met scores per set
Set Toegift ℹ️ Teller Spelers G1 G2 G3 G4 G5 Games Set Acties
UITSLAG 0 0
Overzicht wedstrijden
Wedstrijd ↕ Nr ↕ Datum ↕ Poule ↕ Thuis ↕ Uit ↕ Uitslag ↕ Acties

Spelersresultaten

Individuele resultaten per speler β€” alleen enkels (sets 1-8 en 11-18)

Spelersresultaten per poule
Poule ↕ Naam ↕ Team ↕ Rating ↕ Score ↕ % ↕

Verenigingenbeheer

Verenigingen-beheer
Naam ↕ Adres & Plaats ↕ Speelavond ↕ Contact Telefoon Tafels Zaal tot Acties

Poule-indelingen

Kies een poule hierboven om de teams te bekijken.

Spelerbeheer

Spelers-beheer
Naam ↕ Bondsnummer ↕ Team ↕ Vereniging ↕ Rating ↕ Notitie ↕ Acties