Project 3 - Campus Food Pickup
Een bestel- en afhaalportaal waarmee studenten hun lunch vooraf reserveren en wachtrijen vermijden.
1. Achtergrond en probleem
Urban Spoon verkoopt lunches op locaties bij meerdere onderwijsgebouwen. Tijdens de pauze ontstaan lange rijen en populaire producten raken onverwacht uitverkocht.
De vestigingsmanager wil vooraf bestellingen ontvangen, de voorraad per tijdslot bewaken en bestellingen snel als afgehaald registreren.
2. Doelstelling
De opdrachtgever wil een eerste werkende versie (MVP) laten maken onder de naam QuickBite. 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
- Klant
- bekijkt het menu, reserveert producten en volgt de bestelstatus.
- Baliemedewerker
- beheert voorraad, bereidt bestellingen voor en registreert afhalen.
4. Gewenste functies
Voor de eerste versie zijn dit de belangrijkste functies. De opdrachtgever wil deze onderdelen in ieder geval terugzien.
Voor klanten
- Account maken en veilig inloggen.
- Menu filteren op categorie en dieetkenmerk.
- Producten met aantallen aan een mandje toevoegen.
Voor medewerkers
- Producten, prijzen, allergenen en dagvoorraad beheren.
- Maximumaantal bestellingen per tijdslot instellen.
- Bestellingen filteren op locatie, tijdslot en status.
Algemeen
- Voorraad pas definitief verlagen bij een geldige bestelling.
- Uitverkochte producten direct onbestelbaar maken.
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.
- Verlaag de voorraad alleen bij een geldige bestelling.
- Laat een klant alleen een afhaalmoment kiezen waar nog plaats is.
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: #FFF7ED, #EA580C, #14532D en #1F2937. Deze kleuren zijn een richting. Een passend alternatief mag ook.
Mogelijke indeling: Een mobiele menukaart voor klanten en een productieoverzicht voor medewerkers.
Handige onderdelen: Productkaarten, allergenenchips, tijdslotkiezer en een duidelijke afhaalcode.
- 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.