Doel:
De volledige les- en ontwikkelomgeving bouwen voor Padelschool OS.
Van:
"Een trainer geeft een les"
naar:
"Een trainer bouwt een complete ontwikkelroute voor iedere speler."
LessonEngine.gs
Lessons.gs
Exercises.gs
TrainingSeries.gs
Evaluation.gs
PlayerDevelopment.gs
Lessons
LessonSeries
Exercises
Evaluations
PlayerDevelopment
Skills
StrokeLibrary
Iedere les krijgt:
LessonID
Datum
TrainerID
GroepID
Niveau
Doel
Thema
Oefeningen
Evaluatie
Volgende stap
CAMTE ondersteunt:
A1
Opwarming
A2
Techniek voorbereiding
B
Oefenvorm / spelvorm
E
Evaluatie
Per oefening:
ExerciseID
Naam
Niveau
Aantal spelers
Duur
Doel
Techniek
Tactiek
Differentiatie
Koppeling met:
Forehand
Backhand
Service
Return
Chiquita
Bandeja
Vibora
Smash
Glas
Volley
Elke slag krijgt:
Grip
Raakpunt
Armactie
Stand
Wanneer?
Waarom?
Waarheen?
Welke keuze?
Iedere speler krijgt:
Player Development Card
Met:
Sterktes
Verbeterpunten
Doelen
Historie
Progressie
Trainer feedback
Voorbeeld:
SPELER VOORNAAM 1
Les 1
Service verbeterd
Les 2
Return stabieler
Les 3
Netpositie beter
Les 4
Bandeja ontwikkeld
CAMTE kan maken:
Speler Rapport
Periode:
3 maanden
Ontwikkeling:
Techniek +20%
Tactiek +15%
Wedstrijdinzicht +25%
CAMTE
+
Les Engine
+
Oefeningen
+
Evaluaties
+
Spelerontwikkeling
=
Digitale Padel Coach omgeving
Volgende stap:
Daar bouwen we:
urenregistratie trainers;
facturen;
abonnementen;
betalingen;
administratie;
rapportages.
Perfect. Dan gaan we dit aanpakken zoals een professioneel softwarebedrijf dat zou doen.
Vanaf nu schrijven we niet alleen code, maar ook de Software Architecture Documentation (SAD). Aan het einde van Sprint 50 heb je dan niet alleen een werkende applicatie, maar ook een compleet handboek waarmee een andere ontwikkelaar het systeem kan begrijpen en uitbreiden.
Versie: Alpha 0.2
Status: Ontwerp
Config.gs is het centrale configuratiebestand van de hele applicatie.
Belangrijke regel:
Alle instellingen staan op één plek.
Geen enkel ander .gs-bestand mag hardgecodeerde Spreadsheet-ID's, tabbladnamen of versienummers bevatten.
Config.gs
│
├── Systeem
├── Database
├── Tabellen
├── Rollen
├── Kleuren
├── Instellingen
├── Facturatie
├── Logging
└── AI
Iedere module leest alleen uit Config.gs.
App Naam
Padelschool OS
Versie
0.2 Alpha
Ontwikkelaar
Stijn Gabeler
Project
Padelschool OS
Hier staat slechts één Spreadsheet-ID.
SpreadsheetID
xxxxxxxxxxxxxxxxxxxxxxxx
Later hoeft alleen deze waarde aangepast te worden als je verhuist naar een andere spreadsheet.
In plaats van overal "Players" te schrijven:
Players
Trainers
Groups
Lessons
Planning
Bookings
Attendance
Exercises
Evaluations
Invoices
Payments
Logs
Settings
Users
Roles
Permissions
Iedere module gebruikt deze centrale namen.
Stel je verandert:
Players
naar
Spelers
Dan wijzig je dat maar op één plaats.
PLAYER
TRAINER
CLUB_MANAGER
ADMIN
Iedere gebruiker krijgt één rol.
Later kunnen meerdere rollen per gebruiker worden toegevoegd.
Spelers
Actief
Inactief
Geblesseerd
Gestopt
Lessen
Gepland
Bevestigd
Afgerond
Geannuleerd
Facturen
Open
Verzonden
Betaald
Herinnering
Geannuleerd
Standaard instellingen.
Bijvoorbeeld.
BTW
21%
Valuta
EUR
Factuur Prefix
INV
Urenregistratie
Per kwartier
Instellingen.
Alle wijzigingen loggen
JA
Login loggen
JA
Exports loggen
JA
Widgets.
Aantal spelers
Aantal trainers
Planning
Agenda
Recente wijzigingen
Open facturen
Omzet
Uren
Later kunnen gebruikers zelf kiezen welke widgets zichtbaar zijn.
Voorbereiding.
AI Coach
UIT
AI Lesson Generator
UIT
AI Analyse
UIT
Hierdoor kun je AI later eenvoudig activeren.
Standaard afzender.
Bijvoorbeeld.
info@padelschool.nl
Ook toekomstige sjablonen kunnen hier worden beheerd.
Primary
#0ea5e9
Success
#22c55e
Warning
#f59e0b
Danger
#ef4444
Alpha
Beta
Release Candidate
Production
De applicatie weet altijd in welke fase deze draait.
Code.gs
Router.gs
Database.gs
Players.gs
Trainers.gs
Planning.gs
Lessons.gs
Invoices.gs
Security.gs
Logger.gs
Iedere module gebruikt dezelfde instellingen.
Config.gs
↓
Spreadsheet ID
↓
Database.gs
↓
Google Spreadsheet
↓
Players
Trainers
Lessons
Planning
Invoices
Config.gs
↓
Database.gs
↓
Players.gs
↓
Router.gs
↓
HTML
Daarom wordt Config.gs als eerste geladen.
Controleer of:
De Spreadsheet-ID wordt correct gebruikt.
Alle tabbladnamen bestaan.
Rollen overeenkomen met de permissies.
Statuswaarden worden herkend.
Dashboardwidgets laden met de juiste instellingen.
Geen dubbele configuraties aanwezig zijn.
Sprint 2.2 is gereed wanneer:
Alle systeeminstellingen centraal zijn vastgelegd.
Geen hardgecodeerde tabbladnamen meer in andere bestanden voorkomen.
Rollen en statussen zijn gedefinieerd.
Facturatie-instellingen zijn aanwezig.
Dashboardconfiguratie bestaat.
AI-instellingen zijn voorbereid.
Configuratie kan door alle andere .gs-bestanden worden gebruikt.
Veel projecten slaan deze stap over en verspreiden instellingen door de hele codebase. Dat werkt zolang een project klein is, maar wordt lastig te onderhouden zodra het groeit.
Door nu één centrale configuratielaag te maken, kunnen we in de volgende sprint (Database.gs) alle communicatie met Google Sheets op een consistente manier opbouwen. Dat maakt de rest van de ontwikkeling eenvoudiger en voorkomt dat dezelfde instellingen op tientallen plaatsen aangepast moeten worden.
Perfect. Sprint 2 wordt misschien wel de belangrijkste sprint van het hele project.
Waarom?
Omdat iedere volgende HTML-pagina, mobiele app en toekomstige functie dezelfde ontwerpregels gaat gebruiken.
We ontwerpen dus niet zomaar een dashboard.
We ontwerpen de digitale werkplek van de complete padelwereld.
Sprint: 2 van 50
Status: Ontwerp
Sprint 2 beschrijft hoe PadelSchool OS eruit gaat zien.
Niet de techniek.
Niet de database.
Maar de gebruikerservaring.
Iedere knop.
Iedere pagina.
Iedere kleur.
Iedere kaart.
Iedere tabel.
Iedere popup.
Iedere gebruiker.
Alles krijgt dezelfde stijl.
De software moet voelen alsof iemand de eenvoud van Google, de overzichtelijkheid van Notion, de snelheid van Linear en de professionaliteit van Microsoft 365 heeft gecombineerd, speciaal voor de padelwereld.
De gebruiker hoeft nooit na te denken waar iets staat.
Alles voelt logisch.
Na het inloggen ziet iedere gebruiker hetzelfde ontwerp.
Alleen de inhoud verandert.
Dus:
Trainer
↓
Trainer Dashboard
Speler
↓
Speler Dashboard
Administrator
↓
Administrator Dashboard
Maar de software blijft hetzelfde.
Ik stel een 3-delige layout voor.
┌────────────────────────────────────────────────────────────────────────────┐
│ Topbar 👤 │
├──────────────┬───────────────────────────────────────────────┬─────────────┤
│ Sidebar │ │ │
│ │ │ AI Assistant│
│ Dashboard │ Werkruimte │ │
│ Planning │ │ Meldingen │
│ Agenda │ │ Taken │
│ Lessons │ │ Chat │
│ Trainers │ │ │
│ Players │ │ │
│ Finance │ │ │
│ Academy │ │ │
└──────────────┴───────────────────────────────────────────────┴─────────────┘
Bovenin altijd zichtbaar.
Links
Logo
PadelSchool OS
Midden
Zoekbalk
Rechts
Meldingen
Chat
Taken
AI
Profiel
Instellingen
De sidebar wordt het hart van de software.
Niet meer dan ongeveer twintig hoofdonderdelen.
🏠 Dashboard
📅 Agenda
🗓 Planning
🎾 Lessen
📚 Lessenreeksen
👤 Spelers
🎓 Trainers
👥 Teams
👨👩👧 Groepen
📍 Locaties
⭐ Evaluaties
💬 Communicatie
💰 Facturen
💳 Betalingen
📊 Rapportages
🤖 AI Coach
🎓 Academy
🛒 Marketplace
⚙ Instellingen
Alles daaronder wordt submenu.
Iedere gebruiker krijgt kaarten.
Bijvoorbeeld.
Vandaag
3 lessen
↓
Agenda
↓
Open berichten
↓
Open evaluaties
↓
Facturen
↓
Planning
↓
Taken
Iedere kaart krijgt exact dezelfde stijl.
Titel
↓
Waarde
↓
Kleine uitleg
↓
Actieknop
Bijvoorbeeld.
Lessen
58
Bekijk
Iedere tabel krijgt dezelfde structuur.
Zoeken
Filter
Kolommen
Sorteren
Exporteren
Nieuwe toevoegen
Daaronder.
Naam
Status
Datum
Trainer
Locatie
Acties
Iedere invoerpagina krijgt dezelfde opbouw.
Persoonsgegevens
↓
Planning
↓
Notities
↓
Documenten
↓
Communicatie
↓
Opslaan
Primary
#0B5FFF
Success
#22C55E
Warning
#F59E0B
Danger
#EF4444
Sidebar
#111827
Background
#F7F9FC
Cards
#FFFFFF
Inter
16 px basis
20 px subtitel
32 px paginatitel
40 px dashboardtitel
Één stijl.
Bijvoorbeeld Lucide Icons.
Rustig.
Modern.
Niet een verkleinde desktop.
Maar echt opnieuw ontworpen.
Onderin:
Dashboard
Planning
Agenda
Chat
Meer
Swipebaar.
Rechts onderin.
Altijd zichtbaar.
Hallo Stijn.
Vandaag heb je
3 lessen.
↓
2 evaluaties ontbreken.
↓
Factuur klaar.
↓
Nieuwe speler toegevoegd.
Later ook spraak.
Geen popups.
Maar een notificatiecentrum.
Vandaag
↓
Planning gewijzigd
↓
Nieuwe speler
↓
Factuur betaald
↓
Chatbericht
Misschien wel de belangrijkste knop.
Zoeken...
Speler
Trainer
Groep
Les
Video
Document
Factuur
Planning
Evaluatie
Alles doorzoekbaar.
Ik wil dat een nieuwe trainer binnen vijf minuten begrijpt hoe de software werkt.
Geen handleiding.
Geen cursus.
Gewoon logisch.
Elke nieuwe pagina moet voldoen aan de volgende regels:
Maximaal drie klikken naar iedere belangrijke functie.
Consistente navigatie op desktop, tablet en mobiel.
Eén vaste visuele taal voor knoppen, kaarten, tabellen en formulieren.
Altijd een zoekfunctie en filters waar lijsten voorkomen.
Acties zijn duidelijk zichtbaar en vragen alleen bevestiging wanneer dat echt nodig is.
Toegankelijk ontwerp met voldoende contrast, duidelijke lettergroottes en toetsenbordnavigatie.
De index.html wordt geen verzameling losse componenten meer, maar de applicatieshell van PadelSchool OS.
Deze shell bevat:
Topbar met logo, globale zoekfunctie, meldingen, AI-assistent en gebruikersprofiel.
Sidebar met alle hoofdmodules en uitklapbare submenu's.
Werkruimte waarin modules dynamisch worden geladen zonder de pagina te verversen.
Rechter informatiepaneel (optioneel) voor AI-tips, taken, meldingen of contextinformatie.
Elke module (Planning, Spelers, Trainers, Facturen, enzovoort) gebruikt vervolgens dezelfde kaarten, tabellen, formulieren en navigatie. Daardoor ontstaat één herkenbare gebruikerservaring die eenvoudig uit te breiden is.
Na Sprint 2 hebben we:
✔ De volledige UX-visie van PadelSchool OS.
✔ Het Design System (kleuren, typografie, iconen en componenten).
✔ De navigatiestructuur.
✔ Het concept van de nieuwe index.html.
✔ De basis voor de HTML-, CSS- en JavaScript-ontwikkeling.
Sprint 3 richt zich vervolgens op de technische architectuur: de Google Sheets-database, objectrelaties, API-laag en de definitieve gegevensstructuur waarop alle modules gaan draaien. Dat vormt de brug tussen het ontwerp en de daadwerkelijke softwareontwikkeling