Project 17 - Fitness Challenge Platform
Een platform voor challenges, trainingsregistraties, badges en eerlijke ranglijsten.
1. Achtergrond en probleem
Momentum Lab organiseert maandelijkse challenges voor leden. Resultaten worden via formulieren ingestuurd en handmatig in een ranglijst gezet.
De gym wil resultaten laten registreren, verdachte invoer laten controleren en deelnemers motiveren met voortgang en badges.
2. Doelstelling
De opdrachtgever wil een eerste werkende versie (MVP) laten maken onder de naam LevelUp. 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
- Sportlid
- neemt deel aan challenges en registreert eigen resultaten.
- Coach
- beheert challenges, controleert resultaten en publiceert standen.
4. Gewenste functies
Voor de eerste versie zijn dit de belangrijkste functies. De opdrachtgever wil deze onderdelen in ieder geval terugzien.
Voor sportleden
- Actieve challenges bekijken en deelnemen.
- Resultaat met datum, waarde en bewijslink invoeren.
- Eigen voortgang per challenge bekijken.
Voor coaches
- Challenges met eenheid, periode en regels beheren.
- Inzendingen goedkeuren, afwijzen of markeren voor controle.
- Ranglijst per challenge publiceren.
Algemeen
- Ranglijst alleen uit goedgekeurde resultaten berekenen.
- Eenheden en waarden op de grens van wat is toegestaan per challenge controleren.
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.
- Gebruik alleen goedgekeurde resultaten in de ranglijst.
- Controleer of een resultaat binnen de ingestelde minimum- en maximumwaarde valt.
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: #0F172A, #EF4444, #22C55E en #F8FAFC. Deze kleuren zijn een richting. Een passend alternatief mag ook.
Mogelijke indeling: Een sportief dashboard met grote voortgangsgegevens en challengecards.
Handige onderdelen: Ranglijst, voortgangsring, bewijsstatus en badgegrid.
- 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.