icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous



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

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

XAMPP Web Development omgeving opzetten onder Windows.

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

icafe Een digitaal bestelsysteem voor de horeca

Project plan. Erwin Hannaart Sander Tegelaar

Test Joomla op je PC 1

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

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

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

LES 3: XAMPP OF MAMP. Lesoverzicht:

Analyse Programmeertalen

owncloud Het alternatief tegen grote gluurders

Producten en prijzen 2012

PHP-OPDRACHT SITE BOUWEN

DrICTVoip.dll v 2.1 Informatie en handleiding

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

Appendix 1 Teamplayers

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

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

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

Les 2 Eenvoudige queries

Beschrijving functioneel en technisch design van de website

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

SEO search engine optimalisatie

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

Producten en prijzen 2012

Wij de werkzaamheden u het resultaat!

Een ASP.NET applicatie opzetten. Beginsituatie:

Object Oriented Programming

VERENIGINGSWIJZER.NL FINAL DOCUMENT

Zicht - Content Management Systeem een algemene beschrijving

Koppeling met een database

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Handleiding installatie Rental Dynamics

Acht stappen voor JSF

Indoor Navigation System

Installeer Apache2: Landstede februari 2009 versie 3 1 Bertil Hoentjen

Behaal je diploma secundair onderwijs

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

Inhoudsopgave. versie 0.8

Foto web applicatie documentatie

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

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

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

VERENIGINGSWIJZER.NL PROJECTPLAN

Inhoud. Introductie tot de cursus

De voordelen van Drupal

Over de schutting: Tour top 100

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

IcarOS maakt het mogelijk op een veilige manier bestanden en informatie online uit te wisselen. IcarOS biedt een eenvoudige en gebruiksvriendelijke

DRENTHECOLLEGE.NU STUDIEGIDS ICT-LYCEUM Programma van Toetsing en Afsluiting. TE nr1

Geert Dekkers Web Studio +31(0)

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica

Bottleball Onderzoeksverslag MovingMonsters. Uitgevoerd door Arno Classens

Tinus Plotseling MySQL

Webwinkel in het D-cluster van de opleiding Logistiek

Zelftest Informatica-terminologie

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

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

Inhoudsopgave. Hoofdstuk 1: Ant...4

dr. H. Crijns WordPress Algemene informatie 19 juni 2012

ZÉLF JE WORDPRESS WEBSITE MAKEN?

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

UWV Security SSD Instructies

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

Handleiding voor het installeren van Tomcat7

Prijslijst Algemeen. Reparaties. Installaties. Voorrijkosten binnen gemeente Bedum: 5,- Voorrijkosten buiten gemeente Bedum: 20,-

Basisregistratie Ondergrond (BRO) Testen verbinding webservices met SoapUI Booronderzoek. Datum 28 maart 2017 Status Versie 1.0

NOTITIE. Vragen gebruikersgroep

Google Chrome Windows Vista Windows 7 Windows Apple imac ibook Adobe Acrobat Reader

Handleiding CMS. Auteur: J. Bijl Coldfusion Consultant

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database

Transcriptie:

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007

Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash........................... 3 1.4 Smarty Template Engine..................... 3 1.4.1 Web templates...................... 3 1.4.2 Onze aanpak....................... 3 1.4.3 Smarty.......................... 4 1.5 Software.............................. 5 1.5.1 Eclipse IDE........................ 5 1.5.2 XAMPP.......................... 5 1.5.3 Tortoise SVN....................... 6 1.6 Hulp................................ 6 2 Problemen 7 2.1 Samenwerking........................... 7 2.2 Engineering............................ 7 2.2.1 Verwijderen van producten............... 7 1

Hoofdstuk 1 1.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. 2

Hoofdstuk 1. 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. 1.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. 1.3 Adobe Flash 1.4 Smarty Template Engine 1.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. 1.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. 3

Hoofdstuk 1. 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. 1.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. 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) 4

Hoofdstuk 1. 1.5 Software 1.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.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. 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. 5

Hoofdstuk 1. 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. 1.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. 1.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/ 6

Hoofdstuk 2 Problemen 2.1 Samenwerking 2.2 Engineering 2.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. 7