PHP- OPDRACHT
SITE BOUWEN
PERIODE
4
Opleiding:
Applicatieontwikkelaar
Duur:
1 onderwijsperiode (4 - 8 weken)
LEERJAAR
1
Voorkennis: •
Basiscursus PHP 5.4 – Victor Peters (978 90 125 8499 9)
•
Basiscursus XHTML, CSS en Javascript - Peter Doolaard, Peter Kassenaar (978 90 395 2452 7)
Benodigdheden: •
webserver (bijvoorbeeld Apache) inclusief PHP-engine
•
database-server (bijvoorbeeld MySQL of MariaDB)
•
tekstverwerker / ontwikkelomgeving (IDE)
Inleiding In deze opdracht ga je een dynamische webapplicatie bouwen. Bij deze opdracht ga je gefaseerd te werk. Je begint met een ontwerp, werkt deze technisch uit en gaat dan de applicatie bouwen. Bij elke fase staat kwaliteit centraal; kwaliteit van je ontwerp, kwaliteit van je technische keuzes en uitwerkingen en kwaliteit van je code.
Fasering De opdracht ga je uitvoeren in drie fases; ontwerp, technische uitwerking en bouwen. Elke fase wordt apart uitgevoerd. Je mag pas met een volgende fase beginnen als het eindproduct van een fase is goedgekeurd. Na goedkeuring mag je niet meer terug, dus na het ontwerp mag je geen schermen meer toevoegen, en na de technische beschrijving moet je bij het bouwen volgens de gemaakte keuzes werken. Dus plannen en vooruit kijken is belangrijk, iets ontwerpen dat je niet kunt maken levert problemen!
O n tw e rp ( 1 – 2 w ek en ) Aan de hand van de opdracht maak je een ontwerp. Het ontwerp bestaat uit de volgende onderdelen: •
Globale beschrijving Beschrijf in een half A4 ( 200 tot 300 woorden) de website die je gaat maken. Dit moet een beschrijving zijn vanuit de eindgebruiker van de webapplicatie. Alles wat je in je beschrijving
Drenthe College – ICT-Lyceum Gebruikt OpenDyslexic, beschikbaar op http://dyslexicfonts.com, gemaakt door Abelardo Gonzalez
1 Van 6 pagina's
zet moet aan het eind van het opdracht herkenbaar zijn voor de eindgebruiker als hij de webapplicatie gaat gebruiken. De belangrijkste functie worden genoemd, details worden weggelaten. •
Een lijst van gebruikersschermen In deze lijst staan alle schermen die je nodig hebt voor het invoeren, bewerken en tonen van de gegevens. Een scherm kan bestaan uit een (invul-)formulier, een lijst met gegevens of een statische pagina met tekst en plaatjes. Voor elke scherm beschrijf je welke gegevens je te zien krijgt, wat je kunt invoeren, waar je kunt klikken en wat er gebeurt als je ergens klikt. De lijst moet compleet zijn, je mag na het maken van het ontwerp geen schermen meer toevoegen.
•
Een beschrijving van het uiterlijk van de website In de beschrijving van de website laat je zien hoe de website eruit komt te zien, inclusief schermindeling, kleuren, logo's, plaatjes, informatie-, status- en menubalken. Voor het maken van het ontwerp maak je gebruik van grafische applicaties om geschikt materiaal te maken of te bewerken. Als je bestaand materiaal gebruikt moet dit wel vrij van rechten zijn, controleer dus of je foto's die je van internet haalt vrij mag gebruiken. In je ontwerp geef je van bestaand materiaal de bron aan.
•
Een linkenplan In het linkenplan laat je zien hoe een gebruiker de verschillende schermen krijgt te zien. Waar moet hij klikken om een bepaald scherm te bekijken. Wat gebeurt er als hij op een menu-item klikt, welk scherm krijgt hij te zien als er een knop wordt aangeklikt. Het linkenplan kan een lijst zijn van koppelen maar ook een schema of een combinatie. Hoe je het linkenplan het best in je ontwerp opneemt moet je zelf kiezen.
•
Overige Alle onderdelen van de website (functionaliteit) die niet in één van de eerder onderdelen van je ontwerp is beschreven zet in het onderdeel overige. Dit mag alleen als het niet onder één van de eerste drie onderdelen past of als het er wel in staat maar nog
Tech ni sch e ui tw erk in g ( 1 – 2 wek en ) Aan de hand van je ontwerp maak een technische uitwerking. Let op; hier programmeer je niet! Je bedenkt de structuur van de website, de code, de database en oplossingen voor technische uitdagingen. In de technische uitwerking komen de volgende onderdelen te staan: •
Data-model
Drenthe College – ICT-Lyceum Gebruikt OpenDyslexic, beschikbaar op http://dyslexicfonts.com, gemaakt door Abelardo Gonzalez
2 Van 6 pagina's
Je gaat de database ontwerpen die je nodig hebt om de gegevens op te slaan. In dit datamodel staat de naam van de database, een complete lijst van tabellen, per tabel een complete lijst van velden. Per veld staat aangegeven de type en de lengte van het veld. De database moet gemaakt zijn volgens de principes van een relationele database en zijn genormaliseerd. In het data-model laat je zien welke relatie er zijn tussen de tabellen. Welke vorm je kiest voor het maken van het data-model; tekst, een lijst, een afbeelding of schema, of een combinatie hiervan, moet je zelf kiezen. •
Technieken Maak een lijst van technieken / protocollen / (programmeer-)talen die je gaat gebruiken. Bijvoorbeeld; HTML (Frameset, DIV), CSS (inline, internal, external) , Javascript (JQuery), MySQL, PHP, OOP, Cookies, fotobewerking, animated gifs. Bij elk item geef je aan hoe en waarvoor je de techniek gaat gebruiken / nodig hebt.
•
Uitdagingen Maak een lijst van (technische) uitdagingen welke je verwacht. Dat kan iets nieuws zijn, bijvoorbeeld (voor jouw) een nieuw techniek. Maar ook een combinatie van technieken die je nog niet eerder hebt gebruikt.
•
Oplossingen Beschrijf voor elke uitdaging een oplossing of oplossingen. Een uitdaging betekent vaak een risico; er kan wat misgaan. Geef in je oplossing aan hoe je met dit risico om gaat, wat ga je doen om het risico te verkleinen.
•
Objectmodel Je gaat (een deel van ) het project met OOP (Object Oriented Programming) uitvoeren. Maak voor dit deel van je programmacode een objectmodel. In het objectmodel worden alle objecten genoemd. Per object worden de eigenschappen (variabelen) en acties (methoden/functies) aangegeven. Ook afhankelijkheden worden aangegeven. Als een object gebruik maakt van een ander object moet dat in het objectmodel zichtbaar zijn.
B ouw en ( 2 – 4 w ek en ) 1.
Aan de hand van het ontwerp en de technische uitwerking ga je de toepassing bouwen. Je gaat de database inrichten en vullen met voorbeelddata en je gaat de verschillende schermen programmeren. Bij het bouwen houd je rekening met de volgende eisen:
•
Houd je aan het ontwerp en de technisch uitwerking
•
Elke afwijking van het ontwerp en/of technische uitwerking moet uitgelegd worden aan en goedgekeurd worden door de opdrachtgever.
Drenthe College – ICT-Lyceum Gebruikt OpenDyslexic, beschikbaar op http://dyslexicfonts.com, gemaakt door Abelardo Gonzalez
3 Van 6 pagina's
•
gebruik consequente naamgeving, zoveel mogelijk volgens de algemene afspraken. Let daarbij op gebruik van hoofd- en kleine letters, op enkel- en meervoud. Gebruik beschrijvende namen die aangeeft wat een functie doet, of welke waarde in een variabele wordt opgeslagen.
•
Gebruik bij namen in de programmeercode Engelstalige namen.
•
Geef variabelen een zo klein mogelijke scoop, voorkom het gebruik van globale variabelen.
Drenthe College – ICT-Lyceum Gebruikt OpenDyslexic, beschikbaar op http://dyslexicfonts.com, gemaakt door Abelardo Gonzalez
4 Van 6 pagina's
De opdracht Je gaat een dynamische website voor het beoordelen / reviewen van computergames. Voor de gebruikers van de site zijn verschillende rollen; admin, moderator, reviewer, reader.
Rol l en ADMIN De admin van de site is de hoofdgebruiker die de accounts van de andere gebruikers beheert. Hij kan gebruikers maken, wijzigen, verwijderen en blokkeren. Daarnaast kan de admin de basis informatie van de site wijzigen, bijvoorbeeld de title of een logo. Welke basis informatie te wijzigen is door de admin (zonder in de broncode van de site te duiken) bepaal je zelf in je ontwerp. De admin kan categorie van spellen en een spel toevoegen. Daarbij koppelt hij een gebruiker als moderator aan de categorie en / of het spel.
MODERATOR De moderator is de beheerder van de categorie of een enkel spel. Hij kan de informatie van het spel aanpassen. Bepaal zelf in je ontwerp welke informatie je wilt opslaan van een spel. De moderator kan bijdragen die reviewers leveren binnen de categorie of spel aanpassen of verwijderen. Hij kan een reviewer blokkeren voor de categorie of het spel.
REVIEWER De reviewer kan een bijdrage leveren aan een spel. Bijvoorbeeld een (tekstuele) beoordeling, een tip, een walk-through of een schermafdruk.
READER De reader kan bijdragen van de reviewers lezen en de review beoordeling. Bedenk zelf in je ontwerp een beoordelingsmethode, maar houdt het simpel, bijvoorbeeld een 'sterrenladder' van vijf sterren. De reader kan ook het spel beoordelen volgens de eenvoudige methode, bijvoorbeeld door sterren te geven. Bij het spel wordt aan de hand van alle beoordelingen een bemiddeld getoond. Een gebruiker mag een item maar één keer beoordelen, een nieuwe beoordelen overschrijft de eerdere.
ALLE ROLLEN Voor de rollen geldt dat een admin ook een moderator is, een moderator ook een reviewer en een reviewer ook een reader. Uiteindelijk kan een admin dus ook een review en een spel beoordelen als reader. Alle (aangemelde) gebruikers kunnen berichten aan elkaar versturen. Dit zijn alleen persoonlijke berichten die een gebruiker op een berichten venster kan bekijken. Op deze manier kan een geblokkeerd gebruiker aan de moderator vragen waarom hij geblokkeerd is. Dus na het blokkeren Drenthe College – ICT-Lyceum Gebruikt OpenDyslexic, beschikbaar op http://dyslexicfonts.com, gemaakt door Abelardo Gonzalez
5 Van 6 pagina's
moeten het gedeelte met berichten blijven werken!
OVERIGE GEBRUIKERS Alle overige bezoekers van de site, die niet aangemeld zijn, kunnen alleen informatie lezen en zoeken.
Zo ek en Op de site moet er een mogelijkheid zijn spellen te zoeken. Beschrijf in je ontwerp duidelijk hoe en waarop gezocht kan worden en hoe je de resultaten van het zoeken toont.
S ch er maf d ru kk en Verschillende gebruikers kunnen schermafdrukken bij een spel toevoegen. Maak in het scherm van het spel een mogelijkheid de schermafdrukken de bekijken.
Drenthe College – ICT-Lyceum Gebruikt OpenDyslexic, beschikbaar op http://dyslexicfonts.com, gemaakt door Abelardo Gonzalez
6 Van 6 pagina's