π 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 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 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.
- 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.
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 π 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.
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
| 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 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
| 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 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) enWedstrijdleiding(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
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 de Wedstrijden-tab.
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 | Toegift βΉοΈ | Teller | Spelers | G1 | G2 | G3 | G4 | G5 | Games | Set | Acties |
|---|---|---|---|---|---|---|---|---|---|---|---|
| UITSLAG | 0 | 0 | |||||||||
π 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. |
|---|
Stand Poule A
| # | Team β | Gespeeld β | Winst β | Punten β |
|---|
Nrs 1 en 2 gaan door naar de knock-out fase
| Wedstrijd β | Nr β | Datum β | Poule β | Thuis β | Uit β | Uitslag β | Acties |
|---|
Spelersresultaten
Individuele resultaten per speler β alleen enkels (sets 1-8 en 11-18)
| Poule β | Speler | Naam β | Team β | Rating β | Score β | % β |
|---|
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 |
|---|