Cornelius Arne wil een online receptenboek maken voor gebruikers. Zodat iedere amateur kok recepten kan uploaden naar het systeem en deze kan delen.
De receptenboek applicatie wordt beheerd door verschillende mensen: De heer Cornelius Arne (eigenaar), mevrouw Pascal-Anne Stá (manager) en verschillende amateur koks die recepten kunnen uploaden.
De komende twee weken werk je aan deze opdracht. Je maakt deze opdracht individueel. Tijdens het assessment laat je je product, je code en je werkwijze zien.
Je gaat een applicatie bouwen met HTML, CSS, PHP en MYSQL. Sommige (deel)onderwerpen zullen nieuw voor je zijn. Dit geeft niet. Dit is onderdeel van het beroep waar je je in gaat begeven. Als softwareontwikkelaar zullen er altijd nieuwe technologieën en oplossingen voorbijkomen. Je kunt dit.
Je gaat een receptenboek maken voor een keuken naar keuze. Deze keuze geef je door aan de docent voordat je begint met coderen of maken van het ERD. Bijvoorbeeld je kiest de keuken Italiaans, Grieks of Vega. Als er al een keuken gekozen is dan moet je een andere keuze maken
Lees dit document van begin tot eind 1x goed door. Zie je de technische eisen?
Lees de usertories, hierin staan gegevens om een ERD te maken. Maak een ERD-verslag en lever deze in.
Codeer aan de hand van de userstories je webapp. Je kunt beginnen met eerst de backend (PHP en MYSQL) maar je mag ook beginnen met de frontend (HTML en CSS). Wil je JavaScript gebruiken? Doe dit dan pas op het laatst als je tijd over hebt.
- Fork het project
- Open een terminal met als lokatie C:\Projecten (o.i.d.)
- Clone het project vanuit je eigen GitHub omgeving naar je projecten map (C:\Projecten)
git clone ...
- Start Docker Desktop
- Open het project in VS Code
- Vanuit de terminal start je het project
docker-compose up
- project is te benaderen via http://localhost
- PhPmyAdmin is te benaderen via http://localhost:8000
- Als gebruiker wil ik een professionele site met de look en feel van een echte recepten webapp zodat ik trek krijg in de gekozen keuken.
- Als gebruiker wil ik op elke pagina een duidelijk navigatiemenu hebben zodat ik makkelijk door de webapp kan navigeren
- Als gebruiker wil ik een overzicht zien van alle recepten met enkel de titel en een afbeelding zodat de recepten duidelijk getoond kunnen worden. (geen tabel)
- Als gebruiker wil ik elke individuele recept in detail (met de attributen: titel, foto, kookduur, aantal ingrediënten, menugang, moeilijkheidsgraad en stappenplan) kunnen bekijken zodat ik het recept goed kan bekijken.
- Als gebruiker wil ik naast de navigatie op elke pagina kunnen zien hoeveel recepten er in de database staan zodat dat duidelijk is. (dynamisch getoond)
- Als gebruiker wil ik in een speciaal overzicht direct kunnen zien welk recept het langst duurt om te maken
- Als gebruiker wil ik in een speciaal overzicht direct kunnen zien welk(e) recept(en) de makkelijkste moeilijkheidsgraad hebben
- Als gebruiker wil ik in een speciaal overzicht direct kunnen zien welk(e) recept(en) de meest ingrediënten hebben.
- Als gebruiker wil ik kunnen inloggen zodat ik bij de afgeschermde pagina's kan komen
- Als gebruiker wil ik mijzelf registreren zodat ik later kan inloggen
- Als gebruiker wil ik een recept kunnen aanmaken
- Als gebruiker wil ik recepten kunnen zoeken op naam
- Maak een ERD voor recept (id, title, image)
- Maak een ERD voor receptDetails (recept_id, cook_time, number_of_ingredients, menu_course, difficulty, steps)
Tussen de twee tabellen is een 1-op-1 relatie. Een recept heeft 1 receptDetails en een receptDetails hoort bij 1 recept.
- Als gebruiker wil ik een professionele site met de look en feel van een echte recepten web app zodat ik trek krijg in de gekozen keuken.
- Als gebruiker wil ik op elke pagina een duidelijk navigatiemenu hebben zodat ik makkelijk door de web app kan navigeren
- Als gebruiker wil ik een overzicht zien van alle recepten met enkel de titel en een afbeelding zodat de recepten duidelijk getoond kunnen worden. (geen tabel)
- Als gebruiker wil ik elke individuele recept in detail (met alle attributen) kunnen bekijken zodat ik het recept goed kan bekijken.
- Als gebruiker wil ik recepten bestaande uit een titel, foto, duur, aantal ingrediënten, menugang en moeilijkheidsgraad kunnen bekijken
- Als gebruiker wil ik ook per recept de ingrediënten kunnen bekijken zodat ik zie welke ingrediënten ik moet kopen
- Als gebruiker wil ik mijn eigen recept kunnen wijzigen zodat het altijd up-to-date blijft
- Als gebruiker wil ik een overzicht zien van alle ingrediënten met enkel de naam van het ingrediënt. (tabel vorm) zodat ik weet welke ingrediënten beschikbaar zijn
- Als gebruiker wil ik de naam van een ingrediënt kunnen wijzigen
- Als gebruiker wil ik naast de navigatie op elke pagina kunnen zien hoeveel recepten er in de database staan zodat dat duidelijk is. (dynamisch getoond)
- Als gebruiker wil ik in een speciaal overzicht direct kunnen zien welk recept het langst duurt om te maken
- Als gebruiker wil ik in een speciaal overzicht direct kunnen zien welk(e) recept(en) de makkelijkste moeilijkheidsgraad hebben
- Als gebruiker wil ik in een speciaal overzicht direct kunnen zien welk(e) recept(en) de meest ingrediënten hebben.
- Als administrator wil ik recepten kunnen toevoegen, wijzigen en verwijderen zodat de applicatie up-to-date blijft
- Als administrator wil ik gebruikers kunnen toevoegen, wijzigen en verwijderen zodat de gebruikers van de applicatie up-to-date blijven
- Als gebruiker wil ik kunnen inloggen om zo mijn eigen recepten te kunnen bekijken
- Als gebruiker wil ik kunnen registreren zodat ik gebruik kan maken van de applicatie
- Maak een ERD voor recept (id, title, image, user_id)
- Maak een ERD voor receptDetails (recept_id, cook_time, number_of_ingredients, menu_course, difficulty, steps)
- Maak een ERD voor ingredient (id, name, recipe_id)
- Maak een ERD voor user (id, name, email, password)
- Een recept heeft 1 receptDetails en een receptDetails hoort bij 1 recept.
- Een recept heeft meerdere ingrediënten en een ingrediënt hoort bij 1 recept.
- Een gebruiker heeft meerdere recepten en een recept hoort bij 1 gebruiker.