icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous



Vergelijkbare documenten
icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous

icafe Een digitaal bestelsysteem voor de horeca

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

XAMPP Web Development omgeving opzetten onder Windows.

Project plan. Erwin Hannaart Sander Tegelaar

Test Joomla op je PC 1

Inhoudsopgave... 1 Disclaimer... 3 Voorwoord... 3 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

Over PHP. PHP en MySQL. 1.1 Inleiding. In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze

Xampp Web Development omgeving opzetten onder Windows.

In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze. programmeertaal? En hoe is het ontstaan? Ook leer je welke editors

Appendix 1 Teamplayers

PHP-OPDRACHT SITE BOUWEN

LES 3: XAMPP OF MAMP. Lesoverzicht:

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

DrICTVoip.dll v 2.1 Informatie en handleiding

owncloud Het alternatief tegen grote gluurders

Analyse Programmeertalen

Gegevens. Cliënt met browser Server met Apache/IIS Databaseserver En PHP

VERENIGINGSWIJZER.NL PROJECTPLAN

1 Inleiding Installatie 21. WAMP met Apache Friends 23. XAMPP starten en controleren 26. LAMP 32 De installatie ongedaan maken 33

Wij de werkzaamheden u het resultaat!

SEO search engine optimalisatie

Producten en prijzen 2012

Producten en prijzen 2012

Koppeling met een database

Technisch Ontwerp W e b s i t e W O S I

Cursus Analyse voor Web Applicaties 1. Webdesign / Web Programmeren Analyse voor web applicaties SDM methode + Basis UML

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april Versie 2.1.0

Producten en prijzen 2012

Les 2 Eenvoudige queries

VERENIGINGSWIJZER.NL FINAL DOCUMENT

Chris de Kok TDI 3. Vak: Software Architectuur Datum: Docent: Fons van Kesteren

De voordelen van Drupal

Bottleball Onderzoeksverslag MovingMonsters. Uitgevoerd door Arno Classens

Projectdocument Airport Suite. The Wright Company: Zehna van den Berg Steven Both Reinier Maas Adolfo Ochagavía Bas Ouwerkerk Thijs van der Zaan

Zicht - Content Management Systeem een algemene beschrijving

Barry van Zanten. Ux Designer / Developer. Kokosnootstraat 39, 2555 XB Den Haag - barry@uthinkicreate.nl

Object Oriented Programming

Voordat er optimaal gebruik gemaakt kan worden gemaakt van Magister 5 via het web, kan deze FAQ mogelijk van pas komen.

Inhoudsopgave. versie 0.8

Handleiding voor het installeren van Tomcat7

Tinus Plotseling MySQL

HTML. Media. Hans Roeyen V 3.0

Opdrachtformulering (pagina 3 van 7)

Acht stappen voor JSF

VMBO-ICT-Route examen 2009 Naam: Marc Schattorie Datum:

Inhoud: Inleiding tot Taak Omschrijving van vacatures 2 Matrix van benodigde 5 Bronvermeldingen 7

weken jaren Applicatieontwikkelaar /Mediadeveloper Opleiding Complexiteit Begeleiding afnemend vanaf het eerste subsysteem. Duur Leerjaar 2, Blok 2

Beschrijving functioneel en technisch design van de website

Technisch Ontwerp Stylin s

Foto web applicatie documentatie

Meehelpen met de ontwikkeling van nieuwe of verbetering van bestaande spellen. Pag. 1

Installeer Apache2: Landstede februari 2009 versie 3 1 Bertil Hoentjen

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Het besturingssysteem of operating system, vaak afgekort tot OS is verantwoordelijk voor de communicatie van de software met de hardware.

Curriculum Vitae. Personalia: Samenvatting: Chris van der Scheer Geboortedatum:

Werking van de Office Connector, en het oplossen van fouten.

Geert Dekkers Web Studio +31(0)

Curriculum Vitae. Barry van Zanten Grafisch Lyceum Utrecht Utrecht

Behaal je diploma secundair onderwijs

Zelftest Informatica-terminologie

Handleiding CMS. Auteur: J. Bijl Coldfusion Consultant

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Voor vragen: of mail naar

Orbis Software. Portal4U. Installatie Handleiding. Dit document bevat de Installatie Handleiding voor Portal4U

Dynamische websites met PHP (basis) Karel Nijs 2010/09

Release notes PCTrans. Release notes PCTrans. Aantekeningen voor PCTrans 5.0 ( )

Een ASP.NET applicatie opzetten. Beginsituatie:

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Systeem de web based omgeving 2 Website Presentatie - Informatie Items 3

ZÉLF JE WORDPRESS WEBSITE MAKEN?

Howto Subversion. 1. Subversion structuur en uitleg

Systeemvereisten. Datum: Naam: Systeemvereisten versie 43 revisie 15 Status:

Drupal lokale installatie op Windows 7.

Mitchell Bouley & Paul vd Linden Taak Zoekmachines Vakdocent: Biggelaar Tutor: Griensven Mentor: Biggelaar

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

HANDLEIDING. IPv6 implementatie op een DirectAdmin server met CentOS

Transcriptie:

icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous 2006-2007

Voorwoord 1

Inhoudsopgave 2

Hoofdstuk 1 Inleiding 3

Hoofdstuk 2 icafe 2.1 Het idee 2.2 Mogelijkheden 2.3 Werking 2.4 Droom 4

Hoofdstuk 3 Project 3.1 Algemene aanpak 3.2 Teamwork 3.3 Verdeling van de taken 3.3.1 Toelichting 3.3.2 Klassen 3.3.3 Applicaties 3.4 Communicatie 3.4.1 IM Al de dagelijkse (minder omvangrijke) communicatie ging via chat/im. 3.4.2 Meetings De grotere onderwerpen van het project werden besproken tijdens meetings 1. Op deze meetings werden allerhande dingen besproken die uitgedacht moesten worden. Zo werd er bv. gediscussieerd over de aanpak van de voorraadbeheer, het database ontwerp,...). Ook prangende en/of complexe vragen werden hier besproken, zoals het opzetten van de turtoise SVN client. Tot slot werden de meetings beã indigd met het opstellen van de planning tegen de volgende meeting. 3.4.3 SVN 3.4.4 Forum 1 Voor de verslagen van de meetings zie bijlage?? 5

Hoofdstuk 4 Fases 4.1 Brainstormen 4.2 Scenario s 4.3 Diagrammen 4.4 Klassen 4.5 Applicaties 4.5.1 Admin 4.5.2 Client - Barman 4.5.3 Client - Klant 4.6 Testfase 4.7 Afwerking 4.8 Verslag 6

Hoofdstuk 5 icafe engineering 5.1 Programmeertaal PHP5 PHP is een serverside scripttaal en heeft een syntax die sterk lijkt op C. Het is mogelijk van functiegeoriënteerd te programmeren of objectgeoriënteerd. Er werd gekozen voor deze laatste optie, om de aanpasbaarheid van de code zo groot mogelijk te maken Er waren echter nog kenmerken van PHP5 die tot de keuze van deze programmeertaal leidde. Open-Source PHP is vrij te verkrijgen, er moet geen som geld voor neergeteld worden om het te gebruiken. Ook is het volledig legaal om de broncode aan te passen. Platformonafhankelijk PHP werkt op de meest gangbare besturingsystemen, Windows, Linux en Mac OSX Webservers PHP werkt op de meeste webservers, er wordt een Apache webserver gebruikt. MySQL PHP werkt goed samen met een MySQL database en heeft hier tal van geïntegreerde functies voor aan boord. Ondersteuning Voor elk probleem is er wel een oplossing te vinden op het internet. PHP is wereldwijd bekent en heeft ook een zeer uitgebreide ondersteuning. Browseronafhankelijk Aangezien het een serverside scripttaal is, moet er geen speciale browser of programmatuur geïnstalleerd worden. Object georiënteerd Zoals eerder vermeld bied PHP ondersteuning voor object georiënteerd programmeren, zo kan er gebruik gemaakt worden van verschillende klassen die later als objecten kunnen gebruikt worden. 7

Hoofdstuk 5. icafe engineering Toekomst Het ziet er niet naar uit dat PHP de eerste jaren zal uitsterven. De taal blijft evolueren en wordt steeds meer gebruikt. Momenteel is versie 5.2.1 de recentste stabiele versie bekend, deze werd gereleased op 8 april 2006. Wij maakten echter gebruik van versie 5.0.37 die bij het XAMPP pakket zit. 5.2 MySQL database MySQL is een relationele database management systeem, dat werkt volgens het relationeel model. Hierbij worden alle gegevens opgeslagen in tabellen, deze bevatten op zich kolommen die bepaalde gegevens kunnen bevatten, namelijk de rijen. Deze gegevens kunnen opgevraagd, toegevoegd, verwijderd of gewijzigd worden aan de hand van SQL queries. De keuze voor het gebruik van MySQL als database werd samen met die van PHP5 gemaakt. Aangezien PHP5 perfect samenwerkt met MySQL en ook tot de open-source wereld behoord. 5.3 Adobe Flash Flash van Adobe (vroeger Macromedia) is één van de meest gebruikte programma s om video s te maken, animatie te creëren en om websites te maken. Flash is voorzien van een tijdslijn waardoor het gemakkelijk is om tijdsgebaseerde frames te maken. Er kan worden geprogrammeerd door middel van ActionScript, een programmeertaal eigen aan Flash. In de nieuwe CS3 is ActionScript al aan versie 3.0 toe. Voor icafé werd er gebruik gemaakt van ActionScript 2.0 omdat deze nog het meest ondersteund wordt en omdat CS3 pas in april 2007 is verschenen. Ondersteuning Flash wordt door de meeste webbrowsers ondersteunt, al moet daarvoor een extra plug-in worden geïnstalleerd. Verder is het platformonafhankelijk waardoor het systeem kan draaien op UNIX, MAC en Windows machines. Het internet staat vol met tutorials en uitleg over Flash, zodat problemen goed kunnen worden opgelost. PHP en MySQL Dankzij loadvars, is het nu mogelijk om in Flash gegevens te sturen naar PHP en MySql en te ontvangen. Wanneer loadvars wordt aangemaakt, wordt de variabele ook object waardoor je aan dit object meerdere waardes kan meegeven. Voor het ontvangen van gegevens worden de gegevens ook toegekend aan hetzelfde loadvars object die dan weer in de ActionScript kan gebruikt worden. 8

Hoofdstuk 5. icafe engineering 5.4 Smarty Template Engine 5.4.1 Web templates In het algemeen zorgen web templates voor een goede verdeling van het werk. Het wordt verdeeld in een reeks codeer werk en een reeks design werk. Hieruit mag men dus verstaan dat de gegevens worden opgehaald in het codeer werk, meer bepaald de data laag. Deze gegevens worden op hun beurt weergegeven op de website, ook de presentatielaag genoemd. Deze scheiding van lagen heeft zijn voordelen. Duidelijke scheiding tussen de voorstelling (design) en het eigenlijke programmeer werk. De designer heeft niet de kennis nodig die de coder heeft en omgekeerd. Flexibel qua aanpasbaarheid en uitbreiding. Wanneer in de datalaag wijzigingen worden aangebracht zal de presentatielaag hier geen hinder van hebben. 5.4.2 Onze aanpak Er worden verschillende klassen geschreven aangezien er objectgeoriënteerd gewerkt word. Deze klassen zijn objecten zoals een product, een bestelling, enz... Vanuit deze klassen worden de gegevens uit de database opgehaald. Bijvoorbeeld wanneer er gegevens van een flesje Cola nodig zijn, kunnen deze gegevens aan de hand van een nieuw product object worden opgehaald uit de database. De klassen zijn dus de datalaag van het template systeem. Het doel is deze gegevens weer te geven op een website. Dit wil zeggen dat deze moeten doorgegeven worden aan de presentatie laag, die het design van de website vertegenwoordigt. Het is niet de bedoeling om rechtstreeks vanuit een klasse gegevens door te geven aan de presentatielaag, hiervoor wordt de applicatielaag gebruikt. Wat er gebeurt in de applicatielaag is vrij simpel. In deze laag wordt een nieuw object aangemaakt en het object wordt gevuld met gegevens. Hierbij maakt de applicatielaag verbinding met de datalaag door het gebruik van de klassen. Nadien zal de applicatielaag de gegevens van het object doorgeven aan de presentatielaag, die op zijn beurt de gegevens weergeeft. 5.4.3 Smarty Smarty is een template engine voor PHP. Wat wil zeggen dat het mogelijk is deze lagen aan te maken en door Smarty kunnen de verschillende lagen in het ontwerp met elkaar communiceren. Smarty op zich is ook een klasse die de nodig functies aan boord heeft om het geheel uit te voeren. Volgend voorbeeld zal voor verduidelijking zorgen. 9

Hoofdstuk 5. icafe engineering Voorbeeld Het doel is om de gegevens van een product in een webpagina te tonen. Er word hiervoor gebruik gemaakt van drie verschillende bestanden en de Smarty template engine. Klasse bestand Hierin wordt de connectie gelegd met de database en de gegevens opgehaald die nodig zijn of gevraagd worden. (datalaag) Applicatie bestand Dit bestand maakt een nieuw Smarty object aan. Aan dit Smarty object worden variabelen meegegeven die gegevens bevatten. Nadien wordt er aan dit object meegegeven welke template er gebruikt zal worden. (applicatielaag) Template bestand Dit is het enige bestand waarin html code aanwezig is. De opmaak van de pagina wordt hierin bepaald. Door het Smarty object dat in het applicatie bestand aangemaakt is, kan het template bestand de gegevens ontvangen en ook tonen in de pagina. (presentatielaag) 5.5 Software 5.5.1 Eclipse IDE Om te coderen in PHP werd er gebruikt gemaakt van de open-source framework 1 Eclipse. Eclipse is standaard een java ontwikkelingomgeving, maar door plug-ins kan de functionaliteit uitgebreid worden. Er werd ook gebruik gemaakt van de PHPEclipse plugin die syntax highlighting heeft voor PHP, HTML, XML, CSS en Smarty. Hierbij wordt het programmeren in PHP makkelijker, sneller en aangenamer. Ook het gebruik van Smarty werd hierdoor bevorderd. De grote voordelen die we bij deze plug-in gebruikt hebben zijn: Overzicht van alles functies die aanwezig zijn in een bestand Het gebruik van de auto-complete functie De uitgebreide syntax highlighting 2 De onmiddellijke weergave van syntax fouten Geïntegreerde controle over XAMPP 1 Een framework zijn softwarecomponenten die kunnen gebruikt worden bij het programmeren van applicaties, op dit framework kan men dan verder bouwen met bepaalde libraries of plug-ins. 2 Syntax highlighting zorgt ervoor dat de tekst van de code in bepaalde opmaak wordt weergegeven zodanig dat het herkennen van bepaalde termen, functies of variabelen makkelijker wordt. 10

Hoofdstuk 5. icafe engineering 5.5.2 XAMPP Het gehele icafe systeem is een webapplicatie, hierbij hoort natuurlijk een webserver om deze applicatie op te draaien. De webserver moet ondersteuning bieden voor PHP5 en ook een MySQL server moet aanwezig zijn. Bij normale gang van zaken worden alle modules (Apache, PHP5, MySQL) afzonderlijk geïnstalleerd en dan op elkaar afgestemd. Het is echter ook mogelijk een all-in-one oplossing te gebruiken, hierbij worden alle benodigdheden in één installatiebestand gestoken. De gebruikelijke naam voor deze all-in-one oplossing is AMP, de afkorting voor Apache MySQL en PHP. Aan de hand van het besturingsysteem waarvoor de AMP server gemaakt is zal er vooraan een letter toegevoegd worden (bv. WAMP voor Windows, LAMP voor Linux). Voor het icafe Project word er echter gebruikt gemaakt van XAMPP. Waarbij de X te verklaren is door de beschikbaarheid voor de drie grootste besturingsystemen (Windows,Mac OSX en Linux). XAMPP is een opensource project van ApacheFriends en gratis te verkrijgen op het internet. ApacheFriends is een non-profit projectgroep die het gebruik van de Apache server promoten aan de hand van hun XAMPP project. XAMPP werd op de computers van de projectleden geïnstalleerd zodanig dat deze hun code en dergelijke lokaal konden testen. 5.5.3 Tortoise SVN Om dat de code verdeeld werd onder de verschillende projectleden moest er een oplossing gezocht worden om alles steeds synchroon met elkaar te lopen. Een systeem dat ervoor moest zorgen dat iedereen de laatste nieuwe versies van de bestanden kon downloaden. Hiervoor is er gebruik gemaakt van een SVN systeem. Er zijn verschillende SVN 3 oplossingen beschikbaar, er werd gebruik gemaakt van Tortoise SVN. Tortoise SVN werd gekozen omdat er reeds projectleden waren die kennis hebben van dit programma. De bestanden worden centraal opgeslagen op een server. Er werd gekozen voor gratis hosting van Google Code om de bestanden naartoe te zenden. Het is namelijk mogelijk om via Google een project 4 te starten, hiervoor biedt Google dan de nodige hulpmiddelen aan, waaronder een server met SVN ondersteuning. 5.6 Hulp 3 SVN is een programma waarmee het versiebeheer van een softwareproject wordt onderhouden. 4 Meer info over dit project op Google is te vinden op http://code.google.com/p/projecticafe/ 11

Hoofdstuk 6 Problemen 6.1 Samenwerking 6.2 Engineering 6.2.1 Verwijderen van producten Tijdens het debuggen van het administrator gedeelte is er een kleine design fout opgedoken. Het gaat erom dat producten kunnen verwijderd worden, en alle gegevens van deze producten ook verwijderd worden. Hierbij kan er dus geen archief aangelegd worden. Op zich is dit niet zo n groot probleem, maar wanneer er naar het archief van de bestellingen word gekeken is er wel iets aan de hand. In het archief van de bestellingen is het mogelijk om de prijzen van de producten en de totale omvang van de bestelling te bekijken. Hierbij moeten er gegevens opgehaald worden van de betwiste producten. Deze gegevens worden opgehaald uit de database. Maar wanneer een product uit het assortiment gehaald word dan worden alle gegevens van het product verwijderd. Hierbij worden dus ook de gegevens die nodig zijn voor het archief van de bestellingen verwijderd en zullen er foutmeldingen optreden. Dit probleem is opgelost door een parameter toe te voegen aan elk product. Deze parameter is een boolean die bepaald of een product actief is of niet. Niet actief wil in dit geval zeggen dat het product verwijderd is, maar dat de gegevens nog steeds beschikbaar zijn in de database. Natuurlijk worden alleen actieve producten weergegeven in de client applicatie. 12

Hoofdstuk 6. Problemen 6.3 Deadlines 6.4 Computers 6.5 Mogelijkheden 13

Hoofdstuk 7 Eigen Beoordeling 7.1 Naim 7.1.1 Zelfreflectie 7.1.2 Stef 7.1.3 Joeri 7.2 Stef 7.2.1 Zelfreflectie 7.2.2 Naim 7.2.3 Joeri 7.3 Joeri 7.3.1 Zelfreflectie 7.3.2 Naim 7.3.3 Stef 14

Hoofdstuk 8 Dankwoord 15

Bijlage A Bijlagen A.1 Scenario s A.2 Diagrammen A.3 Verslagen van vergaderingen 16