π Bekercompetitie Reglement Regio Oost 2026
| Verschil in rating | Elke game starten met |
|---|---|
| 0 β 100 | 0 β 0 |
| 101 β 200 | 0 β 2 |
| 201 β 325 | 0 β 3 |
| 326 β 450 | 0 β 4 |
| 451 β 600 | 0 β 5 |
| 601 β 750 | 0 β 6 |
| 751 β 1000 | 0 β 7 |
| 1001 en meer | 0 β 8 |
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
π§ bekercompetitie@gmail.com
Bekercompetitie Organisatie en Leiding
π 06 1601 8309
π 06 3741 8675
π 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 1. 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 βΆ Invullen om een nieuwe wedstrijd te starten
- Is de wedstrijd al bezig? Klik βΆ Doorgaan om verder te gaan
- Per wedstrijd kun je via de Informatie-knop de adres- en contactgegevens van de thuisvereniging opvragen
Stap 3 β Spelers invullen
- Op tab 2. 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 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 3. 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
- Typ je 8 en druk op Tab β de tegenscore wordt automatisch op 11 gezet
- 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
- 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))
Klik op tab 1 op AF/KF/HF/BF om de wedstrijden van die ronde te zien.
- 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
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).
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?
- π§ stel je vraag
- π Jos Reuvekamp: 06 1601 8309
- π Eric Beld: 06 3741 8675
π§ Instructies Beheerder
Inloggen
- Klik rechtsboven op π Beheerderweergave
- Voer het beheerwachtwoord in
- Na inloggen verschijnen extra tabs: 0. Instructies (B), 5. Verenigingen, 6. Poule-indelingen, 7. Spelers, 8. Wedstrijdschema en 9. Knock-out
- Met dezelfde knop wissel je tussen gebruikers- en beheerderweergave β handig om snel te zien wat de eindgebruiker te zien krijgt
- De sessie blijft actief tot je de browser sluit
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
Tab 5. 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 in tab 1
- Een vereniging kan pas verwijderd worden als er geen teams meer aan gekoppeld zijn
Tab 6. 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
Tab 7. Spelers
- Spelers worden uitsluitend via deze tab toegevoegd β niet meer via het wedstrijdformulier op tab 2
- 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
Tab 8. Wedstrijdschema
- Wedstrijden plannen: 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)
- βοΈ β wedstrijd inline bewerken
- π β 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
- Per status verschijnen acties: βΆ Invullen (gepland), βΆ Doorgaan + π Bekijken (nu spelen), π Bekijken (afgerond)
- β» Vernieuwen haalt de laatste lijst op
Tab 9. Knock-out
Beheer de knock-out fase na de pouleronde. Genereer automatisch de 1/8 finale koppels op basis van de poulestand, of voeg handmatig koppels toe. Per ronde: 1/8, 1/4, 1/2 finale en Bekerfinale.
Knock-out fase beheren
Knock-out wedstrijden worden automatisch aangemaakt zodra teams bekend zijn na afgeronde poulewedstrijden.
- Achtste finales: nr. 1 en nr. 2 per poule
- Kwart/Halve finales en Finale: winnaar van vorige ronde
Via tab 8 kun je per wedstrijd aanpassen:
- Datum
- Locatie (overruled thuisvereniging)
- Teams (indien nodig)
Locatie is standaard ATTV Blauw-Wit (Almelo). Knockout-wedstrijden zijn na automatische generatie via Tab 8 zichtbaar.
Wedstrijd ontdooien
Een al afgeronde wedstrijd corrigeren? Open 'm via tab 1 β π Bekijken of tab 7 β π Bekijken en gebruik 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 in tab 2 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 tab 2 staat de groene knop π§ͺ TEST: Vul testdata in (alleen beheerder) β vult automatisch 8 spelers en/of scores in
- β οΈ Deze knoppen moeten verwijderd worden voor productie (zie actielijst)
Naar productie
Open actielijst_bekercompetitie.html in de
projectmap voor de openstaande productie-taken: IIS
configuratie, SSL-certificaat, CORS instellingen,
Windows Service voor uvicorn, etc. (label
naar-productie).
π Seizoenscode beheren
Huidige actieve code: laden...
0. 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
| Doel | Commando |
|---|---|
| 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 in tab 4 (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
| Parameter | Effect |
|---|---|
--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_thuisal gevuld is
Output: rapport in
Rapporten/run_vul_uitslagen_YYYYMMDD_HHMM.md,
inclusief doorlooptijd in sectie 1 + per fase.
Aanbevolen testvolgorde
-
Verse import
Verwacht: 8 poules, 48 teams, 120 poule-rijen, 15 KO-rijen (alle KO nog NULL teams).python Import/importeer_seizoen.py --execute --ook-opschonen -
Backend herstarten (uvicorn)
Vereist na backend-wijzigingen.python -m uvicorn backend.main:app --reload -
Poule-fase
Verwacht: 120 wedstrijden gespeeld (40 via productie- flow + 80 via WL-shortcut); sectie 5 in run-rapport leeg; doorlooptijd ~30-60s in sectie 1.python Import/vul_uitslagen.py --alleen poule -
Tot en met AF (laatste leeg)
Verwacht: poule al ingevuld, 7 AF gespeeld + 1 overgeslagen.python Import/vul_uitslagen.py --tm AF-1 -
Laatste AF + KF-trekking
Verwacht: 1 AF nieuw gespeeld, 7 al ingevuld, KF-rijen krijgen team-id's.python Import/vul_uitslagen.py --alleen AF -
Hele competitie afmaken
Verwacht: KF + HF + BF gespeeld, sync-tabellen voor 1/4, 1/2, finale.python Import/vul_uitslagen.py --tm BF
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 tab 4 (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
- Tab 4 (spelersresultaten): 320 speler-wedstrijd- koppelingen, echte namen en ratings.
- Tab 1: enkele productie- en WL-wedstrijden bekijken; productie heeft 18 sets in detail-view, WL alleen totaal.
- Akkoord-namen:
Test thuis/Test uit(productie) enWedstrijdleiding(WL).
AF-fase (1/8)
- Tab 7 (KO-bracket): 8 AF-wedstrijden met team-namen, geen placeholders. Eindstanden zichtbaar.
KF + HF (1/4 en 1/2)
- Tab 7: winnaars uit vorige ronde doorgepropageerd. Geen placeholders in afgeronde rondes.
BF (finale)
- Tab 7: bekerwinnaar zichtbaar.
- Tab 1: BF-wedstrijd met eindstand.
Algemeen (bij elke run)
- Tab "0. Test en Import": versie-badge en doorlooptijd komen overeen met de actuele v0.5.
- Run-rapport secties 8 en 9: contextspecifieke checks zichtbaar.
Wedstrijden (tab 1)
- 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.
Spelers (tab 4)
- Spelersresultaten gevuld met echte namen.
- Ratings doorgewerkt voor productie-wedstrijden.
- WL-wedstrijden tellen niet mee in spelersresultaten.
KO-bracket (tab 7)
- AF: 8 wedstrijden met team-namen.
- KF/HF: winnaars uit vorige ronde doorgepropageerd.
- BF: bekerwinnaar zichtbaar.
- Geen placeholders in afgeronde rondes.
Algemeen
- Tab "0. Test en Import": versie + doorlooptijd correct.
- Run-rapport secties 8 en 9: gelezen.
Troubleshooting
Start uvicorn:
python -m uvicorn backend.main:app --reload
Vorige fase nog niet gespeeld of
POST /knockout/bijwerken niet aangeroepen.
Gebruik --tm in plaats van
--alleen, of doe handmatig
POST /knockout/bijwerken via tab 9.
schema_synced ontbreekt in bijwerken-response
Backend draait nog op oude code (vΓ³Γ³r KO-sync-fixes). Herstart uvicorn.
Gebruik --tm BF of --alleen BF
zonder -1.
β 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
| Code | Naam | Bondsnr βΉ | Rating |
|---|
| Code | Naam | Bondsnr βΉ | Rating |
|---|
| Set | Start βΉοΈ | Teller | Spelers | G1 | G2 | G3 | G4 | G5 | Games | Set | Acties |
|---|
π Beslissend dubbel (9-9)
De stand is 9-9. Speel een beslissend dubbel en registreer de winnaar:
| Naam | Bondsnr | Rating | Gew. | Verl. |
|---|
| Naam | Bondsnr | Rating | Gew. | Verl. |
|---|
Wedstrijden
Stand Poule A
| # | Team β | Gespeeld β | Punten β |
|---|
Nrs 1 en 2 gaan door naar de knock-out fase
| Nr β | Datum β | Thuis β | Uit β | Uitslag | Status β | Acties |
|---|
Spelersresultaten
Individuele resultaten per speler β alleen enkels (sets 1-8 en 11-18)
| Poule β | Naam β | Team β | Gewonnen β | Verloren β | % β |
|---|
Wedstrijdschema beheer
Voeg hier nieuwe geplande wedstrijden toe aan het schema. Bewerken/verwijderen van bestaande items kan ook vanuit de lijst op tab 1.
| NR β | DATUM β | POULE β | THUIS β | UIT β | UITSLAG | STATUS | ACTIES |
|---|
Verenigingenbeheer
Nieuwe vereniging
| Naam β | Adres & Plaats β | Speelavond β | Contact | Telefoon | Tafels | Zaal tot | Acties |
|---|
Poule-indelingen
Poule A
Teamnaam wordt automatisch:
| Nr β | Teamnaam β | Bijnaam β | Spelers | Acties |
|---|
Kies een poule hierboven om de teams te bekijken.
Spelerbeheer
| Naam β | Bondsnummer β | Team β | Vereniging β | Rating β | Notitie β | Acties |
|---|