PHP 7 - PO

1 / 27
next
Slide 1: Slide
InformaticaWOStudiejaar 4,5

This lesson contains 27 slides, with text slides.

time-iconLesson duration is: 45 min

Items in this lesson

Slide 1 - Slide

This item has no instructions

Leerdoelen
Na deze les kun je:
  • zeggen met wie je samen je PO gaat maken
  • de gemeenschappelijke voorwaarden uitleggen
  • uitleggen wat een user story is
  • uitleggen wat het doel is van Git en Github
  • het proces van Git in hoofdlijnen beschrijven

Slide 2 - Slide

Rode achtergrond betekent: klas is stil, dit zijn de leerdoelen en quizzes waarbij niet overlegd mag worden.

Doel van deze les is om het leren zichtbaar te maken voor zowel leerling als docent.
Het PO Webapp bouwen
  • We gaan het PO in tweetallen maken
  • Je moet hiervoor Github gebruiken
  • Je moet jklos-smc toevoegen aan je Github project
  • De deadline is 22 november 2024
  • Je webapp voldoet aan de gemeenschappelijke voorwaarden

Slide 3 - Slide

This item has no instructions

Gemeenschappelijke voorwaarden 1/2
De volgende voorwaarden gelden voor alle PO's!
  • RDBMS, HTML, CSS, PHP worden allemaal correct gebruikt;
  • je gebruikt GitHub en je hebt je docent toegevoegd aan dat project;
  • je webapp houdt rekening met SQL-injecties en XSS aanvallen;
  • je webapp is gebruiksvriendelijk (usability regels van F1);
  • je webapp is voldoende complex en 3 user stories;
  • de hele RDBMS is gevuld met logische en kloppende data;
  • je RDBMS heeft minimaal 4 relationele tabellen;
  • je webapp vermeldt alle relevante bronnen;

Slide 4 - Slide

This item has no instructions

Gemeenschappelijke voorwaarden 2/2
readme.md heeft de volgende informatie:
  • de namen van elk lid van je PO
  • elk lid schrijft een reflectie over het PO, hierin staat voldoende uitgebreid wat je geleerd hebt

Let op:
  • je GitHub project staat op private
  • je voegt geen privacy gevoelige informatie toe in GitHub
  • de inhoud van je project moet voldoen aan GitHub's Terms of Service
 

Slide 5 - Slide

This item has no instructions

Onderwerp: zelf gekozen

Een zelfgekozen onderwerp van de Webapp:
  • moet vooraf toestemming krijgen van de docent;
  • moet rekening houden met de voorwaarden van de docent;
  • moet rekening houden met de gemeenschappelijke voorwaarden.

Slide 6 - Slide

This item has no instructions

Onderwerp: voorgebakken
Het voorgebakken onderwerp van de Webapp heeft als voorwaarde dat de instructies op de volgende slides correct zijn gevolgd

Deze slides gaan over de verschillende gebruikers en voorbeelden van user stories

Slide 7 - Slide

This item has no instructions

Onderwerp: voorgebakken
De app gaat gebruikt worden door 5 verschillende gebruikers:
  1. Klant
  2. Restaurantmedewerker
  3. Bezorger
  4. Restaurantmanager
  5. Chef keuken 
Van elke gebruiker volgen nu 3 voorbeelden van user stories
Je mag een alternatieve user story voorstellen per e-mail aan de docent

Slide 8 - Slide

This item has no instructions

User story: Klant
  1. Als klant wil ik het menu kunnen bekijken, zodat ik kan zien welke gerechten beschikbaar zijn.
  2. Als klant wil ik een bestelling kunnen plaatsen voor bezorging of afhalen of hier op eten zodat ik flexibel ben in hoe ik mijn eten ontvang.
  3. Als klant wil ik de status van mijn bestelling kunnen volgen, zodat ik weet wanneer mijn eten klaar is of arriveert. 


Slide 9 - Slide

This item has no instructions

User story: Restaurantmedewerker
  1. Als restaurantmedewerker wil ik inkomende bestellingen kunnen zien en beheren, zodat we ze efficiënt kunnen verwerken.
  2. Als restaurantmedewerker wil ik de beschikbaarheid van menu-items kunnen updaten, zodat klanten alleen kunnen bestellen wat er op voorraad is.
  3. Als restaurantmedewerker wil ik gemakkelijk contact kunnen opnemen met klanten als er problemen zijn met hun bestelling, zodat we snel oplossingen kunnen bieden. 



Slide 10 - Slide

This item has no instructions

User story: bezorger
  1. Als bezorger wil ik de contactgegevens van de klant kunnen zien, zodat ik ze kan bereiken als er problemen zijn met de bezorging.
  2. Als bezorger wil ik kunnen aangeven wanneer een bestelling is afgeleverd, zodat het restaurant op de hoogte is van de status.
  3. Als bezorger wil ik kunnen aangeven of de klant waar ik heb bezorgd heeft betaal en welke fooi ik heb ontvangen. 




Slide 11 - Slide

This item has no instructions

User story: Restaurantmanager
  1. Als restaurantmanager wil ik rapporten kunnen genereren over verkopen en populaire items, zodat ik geïnformeerde beslissingen kan nemen. 
  2. Als restaurantmanager wil ik medewerkers kunnen aannemen, ontslaan (wijzigen status medewerker bijvoorbeeld datum uitdiensttreding) en adreswijzigingen kunnen invoeren. 
  3. Als restaurantmanager wil ik het aantal gerechten die door een medewerker is bereid kunnen bekijken en analyseren, zodat ik weet welke medewerker “medewerker van de maand” is geworden. 

     




Slide 12 - Slide

This item has no instructions

User story: chef
  1. Als chef keuken wil ik een nieuw gerecht kunnen toevoegen en gerechten de status “niet meer assortiment” kunnen geven en prijswijzigingen kunnen doorvoeren
  2. Als chef keuken wil ik gemakkelijk kunnen aangeven wanneer een gerecht klaar is, zodat de status van de bestelling automatisch wordt bijgewerkt.
  3. Als chef keuken wil ik waarschuwingen krijgen over speciale dieetwensen of allergieën bij bestellingen, zodat ik de juiste voorzorgsmaatregelen kan nemen. 




Slide 13 - Slide

This item has no instructions

voorgebakken: RDBMS 1/4
Voordat je een app kunt bouwen zal je een relationele database moeten maken, voor de voorgebakken PO heeft die 6 tabellen:
  • Maak in Mysql een database aan met de naam fastfood.
  • Maak in die database een tabel aan met de naam klant:
CREATE TABLE klant (
    id int AUTO_INCREMENT,
    PRIMARY KEY (id)
);































Slide 14 - Slide

This item has no instructions

voorgebakken: RDBMS 2/4
  • Maak een tabel aan met de naam medewerker
  • Maak een tabel aan met naam categorie, met kolommen zoals vlees, vega, desert, etc
  • Maak een tabel met naam bestelling met FK (foreign key) klant_id en medewerker_id
  • Maak een tabel met naam bestelregel met FK bestelling_id en product_id 

Slide 15 - Slide

This item has no instructions

voorgebakken: RDBMS 3/4
  • Maak een tabel aan met naam product. Zorg ervoor dat er een Foreign Key wordt gedefinieerd voor de categorie.
CREATE TABLE gerecht (
    id int AUTO_INCREMENT,
    categorie_id INT,
    PRIMARY KEY (id),
    FOREIGN KEY (categorie_id) REFERENCES categorie (ID)
  ); 

Slide 16 - Slide

This item has no instructions

voorgebakken: RDBMS 4/4
Als je de database zoals hiervoor aangegeven hebt ingericht, dan kun je in PHPMyAdmin kijken of je database er goed uitziet via het menu "Meer" > "Ontwerper":

Slide 17 - Slide

This item has no instructions

voorgebakken: datamodel
Nu moet je het datamodel uitbreiden met extra kolommen om de benodigde informatie op te slaan
Dat kun je bijvoorbeeld doen met de volgende SQL query:
ALTER TABLE table_name
ADD column_name datatype;

De groene en paarse gedeeltes moet je natuurlijk aanpassen
Om de tabellen in je database te vullen, mag je gebruik maken van AI zoals CHATGPT

Slide 18 - Slide

This item has no instructions

Git en Github
Voor je PO moet je gebruikmaken van Github
Daarvoor is kennis nodig van Git en Github

Hiervoor heb je huiswerk dat je voor volgende les moet afhebben:
https://www.codecademy.com/learn/learn-git-introduction
https://www.codecademy.com/learn/learn-github-introduction

Log in op Codecademy.com met je schoolaccount via Google


Slide 19 - Slide

This item has no instructions

Wat is Git?
Git
  • is gemaakt in 2005 door Linus Torvalds voor Linux
  • is voor versiebeheer (VCS: version control system)
  • is open-source
  • heeft meerdere online varianten, zoals GitLab en GitHub


Slide 20 - Slide

This item has no instructions

Waarom Git?
Versiebeheer is handig om samen te werken, maar ook als je alleen werkt is het heel handig om terug te kunnen gaan naar eerdere versie(s)

bijvoorbeeld als je per ongeluk een bestand hebt verwijderd of hebt overschreven

Slide 21 - Slide

This item has no instructions

Hoe werkt Git? 1/2
Git is een programma dat op je computer staat (lokaal dus)

Om online samen te werken gaan we gebruikmaken van Github.com

Om Git en Github te leren gaan we ons registreren voor Codecademy.com en Github.com

Slide 22 - Slide

This item has no instructions

Hoe werkt Git? 2/2
Ruwweg bestaat Git uit 3 onderdelen:
  1. Working Directory: (lokaal) hier pas je bestanden aan
  2. Staging Area: (lokaal) hier staan aangepaste bestanden 
  3. Repository: (in Git lokaal, maar bij Github op een server) hier slaat Git de veranderingen op als verschillende versies van je project

Slide 23 - Slide

This item has no instructions

a



                     git add bestand1.txt
                     git add bestand2.txt
                                                       git commit -m "test"

Slide 24 - Slide

This item has no instructions

Opdracht: Codecademy: Git
  1. Log in op Codecademy.com met je schoolaccount 
  2. Start deze cursus:
    https://www.codecademy.com/learn/learn-git-introduction

  3. Doe de rest van de cursus
    (wat je niet afkrijgt is huiswerk)
timer
45:00

Slide 25 - Slide

This item has no instructions

Leerdoelen
Nu kun je:
  • zeggen met wie je samen je PO gaat maken
  • de gemeenschappelijke voorwaarden uitleggen
  • uitleggen wat een user story is
  • uitleggen wat het doel is van Git en Github
  • het proces van Git in hoofdlijnen beschrijven

Slide 26 - Slide

Rode achtergrond betekent: klas is stil, dit zijn de leerdoelen en quizzes waarbij niet overlegd mag worden.

Doel van deze les is om het leren zichtbaar te maken voor zowel leerling als docent.

Slide 27 - Slide

This item has no instructions