COOLbackend

Web app for 0-0-0.nl

View the Project on GitHub PJvanDiepen/COOLbackend

0-0-0 versie 0.8.66

Dit is de actuele versie van 0-0-0, die voorlopig uitsluitend de interne competitie van schaakvereniging de Waagtoren verwerkt.

Problemen of vragen kan je melden in een e-mail naar pvdiepen@gmail.com of als issue op GitHub.

0-0-0 versie 0.8.67

Het is de bedoeling dat in de volgende versie van 0-0-0 de volgende problemen zijn opgelost:

Een meer uitgebreide planning staat op GitHub.

0-0-0 versie 1.0.0

Bij de Waagtoren draait 0-0-0 al een aantal seizoenen mee, maar is nog steeds niet helemaal compleet. Tussen versie 0.8.0 en 0.9.0 wordt 0-0-0 helemaal opnieuw ontworpen en geschikt gemaakt voor andere schaakverenigingen. Daarna wordt 0-0-0 zo compleet mogelijk gemaakt, zodat versie 1.0.0 ook bij andere schaakverenigingen kan draaien.

Rokade wordt 0-0-0

Vroeger gebruikte schaakvereniging de Waagtoren Rokade van Herman Nijhuis voor het maken van indelingen en ranglijsten voor de interne competitie volgens het Alkmaarse systeem. Sinds het schaakseizoen 2021-2022 wordt Rokade vervangen door 0-0-0.

Rokade gebruikte een Microsoft Access database, die lokaal op de computer van de intern wedstrijdleider van de Waagtoren draaide. Vanuit Rokade konden we HTML maken en uploads doen naar de Waagtoren-website. 0-0-0 is een online database met een web-app die uitslagen en ranglijsten laat zien. De backend bestaat uit MySQL en Node.js. De frontend verwerkt JSON en gebruikt zo standaard mogelijke HTML, CSS en JavaScript.

Het belangrijkste verschil tussen 0-0-0 en Rokade is dus dat bij 0-0-0 alles online staat en niet lokaal en offline zoals bij Rokade. Met 0-0-0 is het mogelijk om vanaf allerlei computers, tablets of smartphones de database te raadplegen en te muteren.

Uitslagen en ranglijsten

Het is de bedoeling dat 0-0-0 een universeel bruikbaar uitslagen en ranglijsten systeem voor schaakverenigingen wordt. De database is daarom zodanig ontworpen dat de regels van het interne competitie reglement in de database zijn vastgelegd en niet in de software van 0-0-0.

Voor de Waagtoren staat de logica van het Alkmaar systeem in reglement-data, maar die kunnen we vervangen door bijvoorbeeld het Keizer systeem, halve competitie of het Zwitsers systeem. Ranglijsten worden gegenereerd vanuit de uitslagen aan de hand van reglement-data.

Door deze opzet is het mogelijk om wijzigingen van het reglement eenvoudig te testen door het wijzigen van de reglement-data en vervolgens nieuwe ranglijsten te genereren. Per seizoen (en per schaakvereniging) zal er dus andere reglement-data in de database staan.

Externe wedstrijden in het Alkmaar systeem tellen mee voor de interne competitie. Daarom maakt 0-0-0 overzichten van scores in de interne en externe competitie.

Aanmelden / Afzeggen en Voorlopige indeling

Op 0-0-0 kan iedereen de uitslagen en ranglijsten zien van een aantal seizoenen van de Waagtoren. Als lid van de Waagtoren zie je bovendien een persoonlijke agenda met de ronden van de interne competitie,
jouw externe wedstrijden en andere interne competities. Op deze agenda-pagina kunnen leden zich per datum of ronde aanmelden of afzeggen.

Op basis van de leden die zijn aangemeld voor de komende ronde van de interne competitie maakt 0-0-0 automatisch een voorlopige indeling, die uitsluitend zichtbaar is voor leden. De intern wedstrijdleider hoeft de voorlopige indeling alleen maar definitief te maken.

Overzicht voor teamleiders

Sinds 2022-2023 krijgen de teamleiders (en het bestuur) een overzicht van vaste spelers en mogelijke invallers. In dat overzicht houdt 0-0-0 bij hoe vaak spelers meespelen per team en laat zien wat de mogelijkheden voor invallers zijn volgens de reglementen van de KNSB en NHSB.

Een teamleiders kan in dit overzicht een invaller vragen en dan verschijnt de wedstrijd in de persoonlijke agenda van de invaller. Vervolgens kan de eventuele invaller in zijn of haar persoonlijke agenda zich aanmelden of afzeggen.

Het overzicht is zichtbaar voor alle teamleiders en bovendien uitsluitend voor teamleiders (en het bestuur), zodat alle teamleiders een overzicht hebben van alle teams.

Ontwerpbeslissingen

Voor de reglement-data zijn prototypes gemaakt voor het Alkmaar systeem, de Rapid competitie en snelschaaktoernooien. De algemene opzet voor reglement-data zal ongetwijfeld nog veranderen als we het Keizer systeem of Zwitsers systeem gaan implementeren.

Maar 0-0-0 berekent geen ratings en is geen leden administratie. In de database van 0-0-0 gebruiken we uitsluitend gegevens die noodzakelijk zijn voor de uitslagen en ranglijsten zoals naam, KNSB nummer en KNSB rating (met een bijbehorende datum), die worden overgenomen uit ratinglijsten van de KNSB.

Voor het vullen van de 0-0-0 database is een offline toepassing gemaakt die informatie inleest uit andere systemen:

De online 0-0-0 kan de maandelijkse ratinglijst van de KNSB inlezen. Daarnaast gaan we ook zorgen dat 0-0-0 informatie kan uitwisselen met SwissMaster.

Hoofddoel is wedstrijdleiders zo min mogelijk hoeven in te toetsen. Spelers kunnen zelf hun eigen uitslagen invoeren, maar alleen de intern wedstrijdleider kan uitslagen wijzigen.