Project 28 - Sports Court Booking
Een reserveringssysteem voor padel-, basketbal- en zaalvoetbalvelden met materiaalhuur.
1. Achtergrond en probleem
Urban Courts verhuurt verschillende sportvelden per blok. Boekingen worden telefonisch aangenomen en materiaalsets worden soms dubbel uitgegeven.
Het centrum wil klanten online laten reserveren en medewerkers een betrouwbaar overzicht geven van velden, blokkades en materiaal.
2. Doelstelling
De opdrachtgever wil een eerste werkende versie (MVP) laten maken onder de naam CourtConnect. Het eindproduct moet het beschreven proces overzichtelijker, betrouwbaarder en veiliger maken.
De eerste versie is goed wanneer de belangrijkste gebruikers hun taken kunnen uitvoeren, de gegevens goed worden opgeslagen en iedere gebruiker alleen ziet wat bij zijn rol hoort.
3. Doelgroepen
- Sportklant
- zoekt en reserveert een geschikt veld.
- Centrumbeheerder
- beheert velden, tarieven, blokkades en materiaalsets.
4. Gewenste functies
Voor de eerste versie zijn dit de belangrijkste functies. De opdrachtgever wil deze onderdelen in ieder geval terugzien.
Voor klanten
- Veld zoeken op sport, datum en tijd.
- Beschikbare tijdsblokken bekijken.
- Reserveren met aantal spelers.
Voor beheerders
- Velden, openingstijden en tarieven beheren.
- Onderhoudsblokkade instellen.
- Materiaalvoorraad per tijdsblok beheren.
Algemeen
- Overlap voor veld en materiaal voorkomen.
- Prijs op basis van duur, piekuren en extra’s berekenen.
5. Technische wensen en voorwaarden
- De oplossing is een webapp die goed werkt op telefoon, tablet en computer.
- PHP 8+ met MySQL/MariaDB past bij deze opdracht. Laravel en een frontend-framework mogen worden gebruikt, maar dat is niet verplicht.
- Er zijn verschillende soorten accounts. Iedere gebruiker mag alleen zien en doen wat bij zijn rol hoort.
- Wachtwoorden worden veilig opgeslagen. De app controleert ingevulde gegevens en toont teksten op een veilige manier.
- De code wordt duidelijk verdeeld in onderdelen met namen die goed te begrijpen zijn.
- De app geeft duidelijke meldingen bij succes, fouten, lege resultaten en acties die niet zijn toegestaan.
- Voorkom dubbele boekingen van een veld en materialen.
- Bereken de prijs met een eenvoudige regel op basis van tijdsduur en extra’s.
Nog niet nodig voor de eerste versie
- Online betalingen en koppelingen met echte betaalproviders.
- Een verplichte koppeling met een externe API, tenzij dit later als uitbreiding wordt gekozen.
- De app openbaar aanbieden en werken met echte persoonsgegevens.
- Extra functies die niet in deze eerste versie zijn beschreven.
Globale wensen voor design en interface
Richting voor kleurgebruik: #064E3B, #34D399, #FBBF24 en #F8FAFC. Deze kleuren zijn een richting. Een passend alternatief mag ook.
Mogelijke indeling: Een sportieve tijdslotkiezer en een beheerweekrooster.
Handige onderdelen: Veldkaarten, tijdsblokgrid, prijsopbouw en materiaalstatus.
- De app werkt goed op telefoon, tablet en computer.
- Formulieren hebben duidelijke namen bij de velden en begrijpelijke foutmeldingen.
- Een status wordt met kleur én tekst aangegeven.
- Bij een lege lijst of een fout ziet de gebruiker een duidelijke melding.