Eindrapport Nahnisim 2013-2014. Sim Jacobs Han Mermans Niels Mangelschots Niels Maes. 3 e Jaar Toegepaste Informatica Thomas More Geel



Vergelijkbare documenten
Analyse Programmeertalen

Eindrapport Nahnisim Sim Jacobs Han Mermans Niels Mangelschots Niels Maes. 3 e Jaar Toegepaste Informatica Thomas More Geel

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

FASERING BUSINESSPROJECT

De voordelen van Drupal

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

XAMPP Web Development omgeving opzetten onder Windows.

Tinus Plotseling MySQL

Webdesign voor ondernemers

Quickstart handleiding

ProjectHeatmap. Onderzoeksrapport v Dennis Wagenaar

Thinking of development

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

Zicht - Content Management Systeem een algemene beschrijving

Documentatie. InstantModules Q42. Versie 1.1

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

Koppeling met een database

Xampp Web Development omgeving opzetten onder Windows.

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

En hoe gaan ze dit allemaal terugvinden?

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

Databases - Inleiding

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

Handleiding CMS. Auteur: J. Bijl Coldfusion Consultant

Technische nota AbiFire5 Rapporten maken via ODBC

LES 1: AAN DE SLAG MET WORDPRESS. Lesoverzicht: Aan de slag Wat is WordPress CMS Front-end Back-end Samenvatting. Tijd: 5 minuten

Programmeren met databanken volgens het lagenmodel in C#

Project plan. Erwin Hannaart Sander Tegelaar

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

SURFconext Cookbook. Het koppelen van Alfresco aan SURFconext. Versie: 1.0. Datum: 8 december admin@surfnet.nl

HANDLEIDING. Emjee ICT diensten Ticketsysteem

Handleiding Website Laatste update: april 2014

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling

Verdien model. Affiliate marketing

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

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

Plan van aanpak Door: Jeroen Corsius en Mitchell Diels. GameShop

Plan van Aanpak Jeugddienst Turnhout

Programmeren met databanken volgens het lagenmodel in C#

Fuel. Handleiding voor installatie en gebruik

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

Waarom WordPress? Wat is WordPress? Bloggen en website Uniek design is mogelijk Makkelijk zelf te beheren

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

Handleiding Websitebeheer

Uitgebreid voorstel Masterproef Informatica

Handleiding. Social Media Management Software

Handleiding voor het gebruik van de community website van OBS t Padland

Met deze module heeft u de mogelijkheid om gemakkelijk, snel en efficiënt uw documenten als naslag in Unit 4 Multivers te koppelen.

Inhoudsopgave. versie 0.8

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

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50%

10 FACEBOOK TIPS VOOR BEDRIJVEN

Handleiding Leerplatform EVA 3IMSA

Search Engine Optimalisation Rapport mrcreezy.be

Werken in de Cloud. Prijzen.xls. Geschikt voor. Werken in de cloud

Social media checklist

Handleiding voor Zotero versie 2.0

WordPress Website. Bouw zelf je WordPress Website. Maarten Hendrix. Maarten Hendrix

Handleiding voor het installeren van VBA scripts in Outlook

Kijk eerst in Computer (Mijn Computer) van je werkplek. Welke stationsletters zie je op de PC?

Software Test Plan. Yannick Verschueren

Handleiding Mijn Kerk

Inhoud! Taak Joomla en zo Door Paul van der Linden. Taak Joomla en zo

Installatie van WerkMeester

Zelftest Informatica-terminologie

Handleiding Reseller Controle Paneel

Peelland ICT Online Back-up

Connect Social Business

Beschrijving functioneel en technisch design van de website

Handleiding Webhosting Online Linux

Wij de werkzaamheden u het resultaat!

Website plaatsen op het Parallels-platform van InterNLnet / Tele2.

VERENIGINGSWIJZER.NL FINAL DOCUMENT

Handleiding enquetemaken.be

Handleiding Videoplatform AmersfoortBreed.

Een database gebruiken

Inventus Software. Antum Secured Mail / Message System. Gebruikershandleiding

WordPress in het Kort

Organisatie. Gestart in 2009 Open Source Webdevelopment Grafische achtergrond Servicegericht

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

PHP-OPDRACHT SITE BOUWEN

LIVE PERFORMANCE. Bijlage Onderzoek Social Media. Sander van de Rijt PTTM22

Cursus Programmeren en Dataverwerking.

SQL SERVER Werking van Database Snapshots

MA!N Rapportages en Analyses

De Kleine WordPress Handleiding

Succesvol campagne voeren

Content Management Systeem Specifieke modules van het Steenstra CMS 2011

Kleine cursus PHP5. Auteur: Raymond Moesker

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

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

Drupal lokale installatie op Windows 7.

Online Marketing. Door: Annika Woud ONLINE MARKETING

Plan van aanpak Toogle

Technologie en Interactie 3.2: software architectuur

Transcriptie:

2013-2014 1 Eindrapport Nahnisim Sim Jacobs Han Mermans Niels Mangelschots Niels Maes 3 e Jaar Toegepaste Informatica Thomas More Geel

2 VOORWOORD Deze analyse is gemaakt in het kader van het vak Businessproject en businesscommunicatie in de opleiding Toegepaste Informatica aan de Thomas More Hogeschool Kempen te Geel. Het is opgesteld in een samenwerking tussen Sim Jacobs, Niels Maes, Niels Mangelschots en Han Mermans. Wij willen enkele mensen bedanken voor hun hulp bij het tot stand brengen van dit document. Allereerst bedanken we de jeugddienst van de stad Turnhout, vooral Loes omdat zij ons van alle nodige informatie voorzag. Ook bedanken we bij deze onze coaches Els Peetermans en Dirk De Peuter voor hun steun bij het schrijven van de inhoud.

3 MANAGEMENTSAMENVATTING Dit document bevat een uitgebreide analyse die steun biedt bij de creatie van een webapplicatie die het beheer van de jeugddienst van de stad Turnhout zal vergemakkelijken. De beschrijving van de functionele eisen bevat een opsomming van alle eisen waaran de applicatie zal moeten doen. Deze eisen zullen ook een prioriteit meekrijgen dankzij het toepassen van de MoSCoWmethode. Zo worden de eisen van zowel de webapplicatie als de website beschreven, maar ook de integratie met de sociale netwerksite Facebook. Vervolgens vindt u een volledig uitgewerkt datamodel dat weergeeft hoe de data van de leden zal worden bijgehouden. Een datamodel stelt de tabellen in de database en hun relaties visueel voor. De relaties zullen ook worden beschreven en tenslotte wordt ook visueel weergegeven wat personen met verschillende bevoegdheden zullen kunnen doen met het systeem in het Use Case Diagram. Aangezien de jeugddienst van Turnhout momenteel Excel-bestanden gebruikt bij het organiseren van hun werking is er ook onderzoek gedaan naar het importeren van Excel-gegevens. Hoe dit wordt mogelijk gemaakt wordt verder beschreven in dit document. Beveiliging van de gevoelige gegevens in de database stond bovenaan het prioriteitenlijstje. Daarom wordt ook beschreven hoe hier de nodige aandacht aan wordt geschonken. Omdat Facebook zo gigantisch populair is bij jongeren kan enige vorm van integratie in deze webapplicatie niet ontbreken. Daarom is er ook uitgebreid onderzocht welke van de vele nuttige features die Facebook aanbiedt op deze webapplicatie van toepassing zouden kunnen zijn. Om te kiezen uit de vele verschillende programmeertalen en databasemanagementsystemen is een Weighted Ranking Methode toegepast. Deze vorm van vergelijken geeft de gekozen criteria elk een wegingsfactor waarmee de score die aan de mogelijke keuze wordt gegeven vermenigvuldigd wordt. Zo krijg je een zo objectief mogelijke vergelijking.

4 INHOUDSTAFEL VOORWOORD... 2 MANAGEMENTSAMENVATTING... 3 INHOUDSTAFEL... 4 INLEIDING... 7 1 FUNCTIONELE EISEN... 8 1.1 Beschrijving functionele eisen... 8 1.2 Applicatie... 8 1.2.1 Ledenlijst beheren... 8 1.2.2 Activiteiten beheren... 8 1.2.3 Gesprekken beheren... 8 1.2.4 Statistieken genereren... 8 1.3 Mailsysteem... 8 1.3.1 Inleiding... 8 1.3.2 osticket... 9 1.3.2.1 Beschrijving... 9 1.3.2.2 Installatie en implementatie... 9 1.3.2.3 Prijs... 9 1.3.2.4 Conclusie... 9 1.4 Website... 9 1.4.1 Registratie... 9 1.4.2 Activiteitenkalender... 9 1.5 Integratie Facebook... 10 1.6 MoSCoW... 10 2 DATAMODEL... 11 2.1 Relationeel schema... 11 2.2 Attributenlijst... 12 2.3 Relatiebeschrijvingen... 14 2.4 Use Case Diagram... 16 3 INVOEGEN EXCEL-GEGEVENS IN DATABASE... 17 3.1 Wat is een CSV bestand?... 17 3.2 Voorbeeld CSV bestand... 17 3.3 Voordelen... 17 4 ENCRYPTIE... 18 4.1 Methode: Salt... 18 4.1.1 Voorbeeld... 18 4.1.2 Waarom encrypten van data?... 18 4.2 Risico s... 18 5 ANALYSE FACEBOOK... 19 5.1 Sociale plug-ins... 19 5.1.1 Like Button... 19 5.1.2 Send Button... 19 5.1.3 Comments... 19 5.2 Facebook API s... 20 5.2.1 Open Graph API... 20 5.2.1.1 Social Graph... 20 5.2.1.2 Voorbeeld... 20 5.3 Conclusie... 21 6 ANALYSE PROGRAMMEERTALEN... 22 6.1 Aanbod van verschillende talen... 22 6.1.1 PHP... 22

5 6.1.1.1 Voordelen... 22 6.1.1.2 Nadelen... 22 6.1.2 ASP.NET... 23 6.1.2.1 Voordelen... 23 6.1.2.2 Nadelen... 23 6.1.3 Ruby... 24 6.1.3.1 Voordelen... 24 6.1.3.2 Nadelen... 24 6.1.4 Python... 24 6.1.4.1 Voordelen... 25 6.1.4.2 Nadelen... 25 6.1.5 Java... 25 6.1.5.1 Voordelen... 26 6.1.5.2 Nadelen... 26 6.2 Een keuze maken... 26 6.2.1 Kostprijs... 26 6.2.2 Weighted Ranking Method... 26 6.2.3 Weighted Ranking Method - Verklaring... 28 6.3 Conclusie... 28 7 ANALYSE DATABASEMANAGEMENTSYSTEMEN... 29 7.1 Aanbod van verschillende databasemanagementsystemen... 29 7.1.1 Microsoft Access... 29 7.1.1.1 Voordelen... 29 7.1.1.2 Nadelen... 29 7.1.2 MySQL... 30 7.1.2.1 Voordelen... 30 7.1.2.2 Nadelen... 30 7.1.3 Microsoft SQL Server... 30 7.1.3.1 Voordelen... 30 7.1.3.2 Nadelen... 30 7.1.4 Oracle Database... 31 7.1.4.1 Voordelen... 31 7.1.4.2 Nadelen... 31 7.1.5 SQLite... 31 7.1.5.1 Voordelen... 31 7.1.5.2 Nadelen... 31 7.2 Een keuze maken... 32 7.2.1 Weighted Ranking Method - Verklaring... 32 7.3 Conclusie... 33 8 SUB TOOLS STATISTIEKEN GENEREREN... 34 8.1 Google Charts... 34 8.1.1 Voordelen... 34 8.1.2 Nadelen... 34 8.1.3 Voorbeelden... 34 8.2 Chart.js... 35 8.2.1 Voordelen... 35 8.2.2 Nadelen... 35 8.2.3 Voorbeelden... 35 8.3 WRM... 36 8.3.1 Resultaat... 36 8.3.2 Verklaring... 36 8.4 Conclusie... 36 8.5 Bootstrap... 37 8.5.1 Voordelen... 37 8.5.2 Voorbeelden... 37 9 REEDS BESCHIKBARE PAKKETTEN... 38 9.1 Wat is SQL injectie, sessionhacking en XSS-scripting?... 38 9.2 Framework... 38 9.2.1 9.2.1.1 CodeIgniter... 38 Voordelen... 38

6 9.2.1.2 Nadelen... 38 9.2.2 Symfony2... 39 9.2.2.1 Voordelen... 39 9.2.2.2 Nadelen... 39 9.2.2.3 Conclusie... 39 9.3 Content managementsystemen... 39 9.3.1 Joomla... 39 9.3.1.1 Voordelen... 39 9.3.1.2 Nadelen... 39 9.3.1.3 Conclusie... 39 9.3.2 Drupal... 40 9.3.2.1 Voordelen... 40 9.3.2.2 Nadelen... 40 9.3.2.3 Conclusie... 40 9.3.3 Apex... 40 9.3.3.1 Voordelen... 40 9.3.3.2 Nadelen... 40 9.3.3.3 Conclusie... 40 9.4 WRM... 41 BESLUIT.... 42 LITERATUURLIJST... 43

7 INLEIDING De jeugddienst van Turnhout is een vereniging die zich inzet voor de jongeren in Turnhout. Ze organiseren wekelijks spelletjes, gaan met de kinderen op reis en zijn een contactpunt voor de jongeren. Bij het organiseren van activiteiten, reizen en het bijhouden van jongeren komen natuurlijk een heleboel administratieve zaken bij kijken. Deze worden momenteel bijgehouden in een Excel-document. Dit document omvat allerlei informatie van de kinderen en activiteiten. Na verloop van tijd wordt zo n bestand te groot en dus te omslachtig om mee te werken. Het was overduidelijk dat de jeugddienst nood had aan een nieuw systeem dat beter omgaat met informatie. Een systeem dat alle informatie in verband met kinderen en activiteiten bijhoudt, zorgt voor een betere communicatie met de jeugd, in een grafische vorm alle bijgehouden informatie kan tonen en nog veel meer. Daarom werd de hulp van de studenten van 3Ti ingeroepen. Het is onze opdracht om een project te analyseren dat eventueel uitgewerkt kan worden tot een webapplicatie die de jeugddienst kan gebruiken. De teksten en diagrammen over deze analyse staan volledig uitgewerkt in dit document. Het is via dit document dat we onze visie willen tonen aan de jeugddienst van Turnhout. We bespreken de verschillende aandachtspunten die de dienst ons heeft opgedragen. Elk aandachtspunt is geanalyseerd en verwerkt. Hierdoor ontstaat er een document waarin alle tools staan beschreven die nodig zijn voor de uitwerking van de applicatie. We beginnen met het bespreken van de functionele eisen die de jeugddienst heeft opgesteld. Op basis van deze eisen creëren we een MoSCoW-overzicht dat duidelijk maakt welke eisen voorrang krijgen en welke eventueel kunnen afvallen in geval van tijdsnood. Het datamodel dat van toepassing is wordt ook volledig besproken en gevolgd door het use case diagram. Deze geeft een beeld van wat de gebruikers allemaal moeten kunnen met het systeem. Hierna begint de eigenlijke analyse van mogelijke oplossingen voor het systeem. We bespreken onder meer de integratie van de bestaande Excel-documenten in het nieuwe project, hoe we de veiligheid kunnen garanderen doormiddel van encryptie en hoe de integratie van verschillende Facebook plug-ins en API s van toepassing zijn voor de applicatie. In het geval van het ontwikkelen van een nieuw systeem bekijken we ook de keuze van programmeertalen en welke hiervan de meest voordelige is. We doen ook een onderzoek naar eventuele bestaande pakketten die handig kunnen zijn voor het project. We bekijken hierbij onder andere de beschikbare CMS-systemen die op het internet te vinden zijn.

8 1 FUNCTIONELE EISEN 1.1 Beschrijving functionele eisen Applicatie o Ledenlijst beheren (toevoegen, bekijken, aanpassen, verwijderen) o Activiteiten beheren (toevoegen, bekijken, aanpassen, verwijderen) o Gesprekken beheren (toevoegen, bekijken, aanpassen, verwijderen) o Statistieken genereren o Mailsysteem Website o Registratie voor leden o Activiteitenkalender 1.2 Applicatie 1.2.1 Ledenlijst beheren Om een goed overzicht te bewaren van de leden zal de jeugddienst jongeren kunnen toevoegen aan hun ledenlijst. De detailgegevens van de leden zullen kunnen bekeken en aangepast worden. Er zal ook een profielfoto kunnen worden toegevoegd. Deze profielfoto kan ook worden aangepast. Wanneer er een lid verhuist zal hij/zij verwijderd kunnen worden uit de lijst. Van elk lid wordt ook bijgehouden wie de ouders zijn, en wie zijn broers of zussen zijn. Kinderen kunnen worden gesorteerd en gezocht op basis van verschillende criteria. Bij overschrijding van een bepaalde leeftijd zal een lid niet meer onder de vleugels van de jeugddienst vallen en bijgevolg een andere status krijgen of verwijderd worden uit de lijst. 1.2.2 Activiteiten beheren Van de georganiseerde activiteiten zullen ook een aantal gegevens kunnen worden bijgehouden. Zo zijn er de naam, datum en plaats van de activiteit, maar ook een lijst van benodigdheden voor de organisatie en een lijst van aanwezigen. Er zullen activiteiten kunnen worden bekeken, aangepast, toegevoegd en verwijderd worden. 1.2.3 Gesprekken beheren Indien nodig voeren de medewerkers van de jeugddienst gesprekken met leden die het nodig hebben. Van deze gesprekken wordt ook informatie bijgehouden. 1.2.4 Statistieken genereren Om het stadsbestuur te overtuigen van het nut van hun werking wenst de jeugddienst statistieken te kunnen voorleggen. Deze statistieken kunnen worden gegenereerd uit de database. 1.3 Mailsysteem 1.3.1 Inleiding Om vlot te werken zou het handig zijn als het mailverkeer ook in de web applicatie wordt verwerkt. Het is mogelijk een lijstje van inkomende mails weer te geven en aan de hand van enkele clicks de binnenkomende post door te geven aan de bevoegde medewerkers. Deze mensen kunnen dan de vraag beantwoorden of de informatie verwerken binnen dezelfde applicatie.

9 1.3.2 osticket 1.3.2.1 Beschrijving osticket is een plugin die het mogelijk maakt om een mailsysteem in je applicatie te implementeren indien er gebruik wordt gemaakt van PHP en MySQL. Uit de afweging van de te gebruiken programmeertalen blijkt dat een implementatie van osticket zeker mogelijk is binnen de webapplicatie. 1.3.2.2 Installatie en implementatie De installatie wordt via een stappenplan uitgelegd op de website http://osticket.com/wiki/home. Na de installatie zal osticket moeten geconfigureerd worden. Ook hiervoor is een handleiding te vinden op de website. Om mails te versturen zal je altijd een e-mailadres nodig hebben. osticket kan geconfigureerd worden met een Gmailadres. 1.3.2.3 Prijs osticket biedt verschillende paketten aan. Gratis: o Zelf hosten o Ondersteund door de gebruikersgemeenschap Basis: o 2 MB Attachments o Ondersteuning via telefoon en e-mail Standaard: o 4 MB Attachments o Ondersteuning via telefoon en e-mail Premium: o 8 MB Attachments o Ondersteuning via telefoon en e-mail o Vebeterde beveiliging 1.3.2.4 Conclusie Indien er gekozen wordt om een applicatie in PHP te maken en MySQL te gebruiken voor de database kan osticket gebruikt worden. Het belangrijkste voordeel hiervan is dat er rechtstreeks vanuit de applicatie zal kunnen gecommuniceerd worden. De informatie die gebruikt wordt zal binnen de applicatie kunnen blijven. De omslachtigheid van de installatie en implementatie kan mogelijk als nadeel gezien worden. Maar een installatie vindt natuurlijk maar één keer plaats. 1.4 Website 1.4.1 Registratie Potentiële gebruikers zullen zich ook zelf kunnen registreren, om zoveel mogelijk mensen te bereiken. 1.4.2 Activiteitenkalender Alle gebruikers zullen een activiteitenkalender kunnen bekijken die gevuld wordt vanuit de database.

10 1.5 Integratie Facebook Om voor een goede communicatie te zorgen tussen de jeugddienst en de jongeren kijken we naar de integratie van Facebook. Het zou via Facebook mogelijk zijn om de website meer bekend te maken onder de jeugd door gebruik te maken van Like- en Deelknoppen en reacties. 1.6 MoSCoW Functionele eis Applicatie Ledenlijst beheren (toevoegen, bekijken, aanpassen, verwijderen) Activiteiten beheren (toevoegen, bekijken, aanpassen, verwijderen) Gesprekken beheren (toevoegen, bekijken, aanpassen, verwijderen) Statistieken genereren Mailsysteem Website Registratie voor leden Activiteitenkalender Facebook MoSCoW toekenning Must have Must have Should have Must have Could have Must have Could have Should have

11 2 DATAMODEL 2.1 Relationeel schema

12 2.2 Attributenlijst Reclame id Naam Autonummering String ReclamePerActiviteit id ActiviteitId reclameid Autonummering Activiteit id soortactiviteitid rapportid datum beginuur einduur omschrijving uitleg prijsperpersoon geldactiviteit inschrijvenopvoorhand Autonummering Date Date Date Double Double Boolean SoortActiviteit id omschrijving Autonummering ActiviteitPerGroep id activiteitid groepid Autonummering Groep id naam Autonummering ActiviteitPerBuurt id activiteitid buurtid Autonummering Buurt id gemeenteid naam Autonummering Aanwezigheid id activiteitid jongerenid gespot Autonummering Boolean PersoneelPerActiviteit id personeelid Autonummering

13 activiteitid Personeel id gemeenteid naam voornaam email adres GSM functie Autonummering Familie id jongereid broerofzusid Autonummering Jongere id groepid buurtid jongereid gemeenteid heeftfamilie naam voornaam adres telefoon GSM Geboortedatum Email datumregistratie facebook geslacht foto Autonummering Boolean Date Date Char Blob JongerePerRapport id jongereid rapportid Autonummering Rapport id opmerking titel datum laatstewijziging Autonummering Date Date PersoneelPerRapport id rapportid personeelid Autonummering Opvolging id jongereid titel Autonummering

14 omschrijving opgelost id naam postcode id jongereid voogdid id buurtid naam voornaam functie contactnummer notities Gemeente Boolean JongerePerVoogd Voogd Autonummering Autonummering Autonummering 2.3 Relatiebeschrijvingen 1. Reclame Activiteit a. Een soort reclame kan voor meerdere activiteiten gebruikt worden en een activiteit kan meerdere soorten reclame hebben. 2. Activiteit SoortActiviteit a. Een activiteit is van een bepaalde soort en een soortactiviteit hoort bij meerdere activiteiten. 3. Activiteit Groep a. Een activiteit kan voor meerdere groepen worden georganiseerd en voor een groep kunnen meerdere activiteiten gemaakt worden. 4. Activiteit Buurt a. Een activiteit kaan doorgaan in meerdere buurten en in een buurt kunnen meerdere activiteiten georganiseerd worden. 5. Activiteit Personeel a. Een activiteit kan georganiseerd worden door meerdere personeelsleden en een personeelslid kan bij meerdere activiteiten helpen. 6. Activiteit Jongere a. Bij een activiteit kunnen meerdere jongere aanwezig zijn en een jongere kan bij meerdere activiteiten aanwezig zijn. 7. Activiteit Rapport a. Een activiteit heeft 1 rapport en een rapport gaat over 1 activiteit. 8. Jongere Groep a. Een jongere kan maar in 1 groep zitten en in 1 groep kunnen meerdere jongeren zitten. 9. Jongere Familie a. Een jongere kan 0 of meerdere broers of zussen hebben (familie) en een familie heeft sowieso 1 jongere. 10. Jongere Opvolging a. Een jongere heeft 1 of meerdere opvolgingen en een opvolging hoort bij 1 jongere. 11. Jongere Voogd a. Een jongere kan meerdere voogden hebben en een voogd kan meerdere jongere hebben.

12. Jongere Rapport a. Een jongere kan op meerdere rapporten staan en een rapport kan meerdere jongere hebben. 13. Jongere Gemeente a. Een jongere woont in 1 gemeente en in een gemeente kunnen meerdere jongeren wonen. 14. Jongere Buurt a. Een jongere woont in 1 buurt en in een buurt kunnen meerdere jongeren wonen. 15. Personeel Rapport a. Een personeelslid kan op meerdere rapporten staan en een rapport kan meerdere personeelsleden hebben. 16. Personeel Gemeente a. Een personeelslid woont in 1 gemeente en in een gemeente kunnen meerdere personeelsleden wonen. 17. Buurt Gemeente a. Een buurt hoort bij 1 gemeente en in een gemeente zijn er meerdere buurten. 18. Voogd Buurt a. Een voogd woont in 1 buurt en een in een buurt kunnen meerdere voogden wonen. 15

2.4 Use Case Diagram 16

17 3 INVOEGEN EXCEL-GEGEVENS IN DATABASE Het invoegen van bestaande Excel-gegevens is noodzakelijk en word mogelijk gemaakt met behulp van een MySQL databank. Sla het Excel-bestand op als een CSV-bestand en maak gebruik van de phymyadmin importeer functie. 3.1 Wat is een CSV bestand? Een CSV-bestand is een specificatie voor tabelbestanden. De informatie word gescheiden door komma s, daarom noemen mensen het ook wel eens een kommagescheiden bestand. Het bestand bestaat alleen uit tekst die wordt gescheiden door komma s en enters. Met behulp van het programma Excel kan je dus sheets exporteren naar CSV-formaat. 3.2 Voorbeeld CSV bestand voornaam,naam,adres,geslacht Verheyen,Mieke, Markt 15,m Mertens,Toon, Molenstraat 18,m 3.3 Voordelen Aangezien er in het verleden veel is gewerkt met Microsoft Excel is de functie een groot voordeel. Elk aparte Excel-bestand dat al bestaat kan gemakkelijk in de databank worden geïmporteerd.

18 4 ENCRYPTIE Om de veiligheid van data te optimaliseren stellen wij voor om wachtwoorden en gevoelige gegevens zoals naam, adres en aanwezigheid te encrypteren volgens een veilige methode. Een gewoon MD5, SHA1, NTLM algoritme gaat het een aanvaller niet moeilijk maken om deze data te decrypteren. Daarom gebruiken we beter een methode die het de aanvaller moeilijker maakt om data buit te maken. De beste methode om data te beschermen is door de webapplcatie alleen in een privaat netwerk beschikbaar te maken. 4.1 Methode: Salt Genereer een random string van 3 karakters of meer en plak deze voor het wachtwoord. Nu heb je een wachtwoord met drie random tekens vooraan. Bedenk een vaste variabele van minimum 7 karakters of meer die je niet zult opslaan in de database maar enkel in de broncode van je applicatie. Plak deze nogmaals vooraan het wachtwoord met de drie random tekens. Deze vaste variabele kan je bekijken als de decryption key dus bewaar deze op een veilige plek. 4.1.1 Voorbeeld Random salt Static salt Wachtwoord String mmj 24#NS@!mKQH ikbenloes mmj24qns@mkqhikbenloes Hashed values ikbenloes123 5295b83efb74c00623946ff0cffbac9f mmj24qns@mkqhikbenloes 9afafccafceb781c1131d77daaa617ec Met deze methode voorkomen we voor een groot deel dat de aanvaller de uiteindelijke decryption key in handen kan krijgen. Als de aanvaller ontdekt dat de eerste drie karakters niet van toepassing zijn is er wel een probleem. We kunnen de lengte van elke random salt string verschillend maken maar dan moeten we dit opvangen in de applicatie omdat het dan meermaals moet decrypteren en wachten op een positief resultaat. Het decrypteert dan een eerste keer met -3 karakters vooraan, als deze actie faalt probeert het te decrypteren met -4 en zo verder tot er een positief resultaat is. Bewaar nooit een salt string in de databank! Dit maakt het aanvallers makkelijk. 4.1.2 Waarom encrypten van data? Aanvallers kunnen de databank rechtstreeks binnendringen door middel van de meest gebruikte methode namelijk sql-inject scripts. Door authenticatie te omzeilen in de sql-query worden gegevens buitgemaakt zonder enige tussenkomst van de webapplicatie zelf. Je bent nooit 100% beschermd tegen exploits maar je moet het de aanvallers het wel zo moeilijk mogelijk maken. Mochten ze de databank kunnen lezen waarin alle gevoelige data is geëncrypteerd dan kunnen ze het niet lezen zonder de decryption key. 4.2 Risico s - Root access op de webserver o Oplossing: aparte encrpyie/decryptie server

19 5 ANALYSE FACEBOOK Facebook is zonder twijfel de bekendste en meest gebruikte social website die momenteel bestaat. Het is dus niet verwonderlijk dat de jeugddienst van Turnhout Facebook wil gebruiken als onder meer een communicatiemiddel. Facebook biedt voldoende plug-ins en API s die vrij gebruikt kunnen worden in de te ontwerpen webapplicatie. Slechts een drietal van de aangeboden plug-ins zijn van toepassing op de website. Daarnaast is er ook een API beschikbaar die zeker en vast gebruikt kan worden om zo het delen van artikels te vergemakkelijken. 5.1 Sociale plug-ins Facebook biedt een hele reeks aan sociale plug-ins die interessant kunnen zijn voor de webapplicatie van de Jeugddienst Turnhout. Omdat de jeugddienst vooral met een jong publiek werkt, is het een goed idee om integratie van Facebook te overwegen. We bespreken enkel elementen die van toepassing kunnen zijn voor het project. 5.1.1 Like Button De Like-knop van Facebook zorgt ervoor dat mensen snel bepaalde zaken kunnen delen met familie en vrienden. Een simpele klik op de knop zal bepaalde stukken van een website liken delen met Facebook waardoor ze gezien kunnen worden door vrienden. De Like-knop is vooral handig om ervoor te zorgen dat bepaalde stukken van de website meer aandacht krijgen. Als een gebruiker een bepaalde pagina interessant vindt en deze dus liket dan zullen zijn of haar vrienden op de hoogte worden gebracht van de bestaande pagina. Dit kan bijvoorbeeld gebruikt worden om de site van de jeugddienst te promoten. 5.1.2 Send Button Via de Send-knop is het voor een gebruiker mogelijk om inhoud van de website naar één of meerdere vrienden te versturen via een privaat Facebook-bericht. De Send-knop is in het Nederlands beter bekend onder Delen. Hoe kan dit van toepassing zijn voor de jeugddienst? Als een gebruiker van de website bevriend is met iemand die graag op vakantie wil gaan maar hiervoor niet genoeg budget heeft, kan deze gebruiker in een privébericht de voordelige vakantieactiviteit doorsturen naar deze vriend. Hierdoor wordt enkel de vriend in kwestie op een discrete manier op de hoogte gebracht. 5.1.3 Comments De Comments-plugin laat gebruikers toe om op eender welke pagina commentaar te plaatsen. Dit is vooral handig om op een snelle en eenvoudige manier een commentaarsectie toe te voegen op een pagina. Comments zijn in het Nederlands beter herkenbaar onder de naam Reacties. Op deze manier is het mogelijk om rechtstreeks per pagina of per voorgestelde activiteit feedback te krijgen van de gebruikers. De Comments-plugin kan ook gebruikt worden om voorstellen te krijgen van de gebruikers over toekomstige activiteiten. Gebruikers kunnen reageren op de commentaar van anderen en deze ook liken. Als er dus een voorstel wordt gedaan en andere gebruikers zijn hiermee eens, zal men dit sneller kunnen afleiden door het aantal likes van de geplaatste commentaar.

20 5.2 Facebook API s Niet alleen biedt Facebook een reeks sociale plug-ins, het bedrijf stelt ook een resem API s beschikbaar. Hoewel er tien API s tot onze beschikking staan, is er slechts één van toepassing op de webapplicatie van de jeugddienst, namelijk de Open Graph API. 5.2.1 Open Graph API Dankzij Open Graph is het mogelijk om externe site te integreren in de zogenaamde Social Graph. In een Open Graph worden websites gezien als een object waardoor het mogelijk is voor gebruikers om connecties te leggen tussen websites en Facebook. Het Open Graph protocol zorgt voor een manier om bepaalde inhoud gestructureerd aan te bieden zodat deze altijd op de zelfde manier wordt uitgelezen door verschillende sociale media sites zoals Facebook en Google+. Dit klinkt ingewikkeld maar is het totaal niet. Het implementeren van Open Graph gebeurt door het toevoegen van enkele meta-elementen in de head van de website. Dankzij Open Graph heeft u meer controle over hoe de inhoud van uw website getoond wordt op sociale media. Het is onder meer mogelijk om te bepalen welke afbeelding, titel, omschrijving en url gebruikt worden. 5.2.1.1 Social Graph Via de Open Graph is het mogelijk om inhoud van een website te integreren met de Social Graph. Deze Social Graph van Facebook houdt de connectie bij tussen gebruikers, pagina s en andere objecten. Het is technisch gezien een database met de relaties tussen alles en iedereen op de welbekende sociale website. Deze sociale grafiek is de kern van Facebook aangezien elke foto, reactie, prikbord update en veel meer hierin wordt opgeslagen. Elke keer wanneer de functionaliteit van Facebook uitbreidt wordt ook deze sociale grafiek groter, complexer en waardevoller. 5.2.1.2 Voorbeeld Om duidelijk te maken hoe simpel het is om gebruik te maken van Open Graph wordt er gebruik gemaakt van een voorbeeld van de nieuwssite deredactie.be. Dit stukje code komt uit de broncode van een artikel die op de website te vinden is. De code zorgt ervoor dat het artikel dat op Facebook wordt gezet er netjes uitziet. Facebook gaat dus op zoek naar deze meta-tags om het artikel op te maken. Zijn deze tags niet aanwezig dan is het mogelijk dat Facebook verkeerde informatie toont. <meta property="og:site_name" content="deredactie.be" /> <meta property="og:type" content="article" /> <meta property="og:title" content=""voor de werknemers én de klant zal niets veranderen"" /> <meta property="og:description" content="de directie van BNP Paribas Fortis beklemtoont dat de verkoop door de Belgische staat van zijn belang in de bank aan het Franse BNP Paribas, geen gevolgen zal hebben voor de klant." /> <meta property="og:url" content="http://www.deredactie.be/permalink/1.1778475"/> <meta property="og:image" content="http://www.deredactie.be/polopoly_fs/1.1509135!image/949133456.jpg_gen/derivatives/landsca pe670/949133456.jpg" />

21 De getoonde code geeft volgend resultaat op de Facebookpagina van deredactie.be. 5.3 Conclusie Facebook biedt een heleboel tools die heel nuttig zijn voor de webapplicatie van de Jeugddienst. Drie ervan kunnen we perfect implementeren, namelijk de Like- en Deelknop en de Reactie-sectie. De overige plug-ins die worden aangeboden zijn niet van toepassing voor de jeugddienst van Turnhout. De te implementeren plug-ins zijn niet alleen heel handig, ze zijn tegelijkertijd makkelijk te implementeren in de applicatie. Niet alleen zijn plug-ins van toepassing, ook springt er een API uit die aangeboden wordt door Facebook die een plaats vindt in de applicatie van de jeugddienst. Via de Open Graph API krijgen we een correcte opmaak als we artikels op Facebook plaatsen. Net als de plug-ins is ook deze API zeer makkelijk te installeren. Dankzij de hele Facebook-implementatie zijn we ervan overtuigd dat de website zo een breder publiek zal aanspreken. Aangezien de meeste jongeren actief zijn op Facebook, kunnen zij onmiddellijk nieuws ontvangen over de jeugddienst. Ook kunnen ze de nodige reacties geven aan bepaalde ideeën of evenementen.

22 6 ANALYSE PROGRAMMEERTALEN De keuze van een programmeertaal mag niet onderschat worden. Het is dankzij deze taal dat de gebruiker interactie heeft met het complete systeem. Het is dus vanzelfsprekend dat een analyse van verschillende programmeertalen belangrijk is. Deze analyse gebeurt door de verschillende talen te vergelijken met elkaar en de voor- en nadelen per taal op te sommen. We kijken onder meer naar de schaalbaarheid, het onderhoud en vooral de prijs van de verschillende programmeertalen. Uiteindelijk stellen we een WRM-methode op die één programmeertaal selecteert die het best te gebruiken is voor het ontwikkelen van de webapplicatie. 6.1 Aanbod van verschillende talen De keuze van een programmeertaal bij het ontwikkelen van een webapplicatie is een zeer belangrijke beslissing. Aangezien er vele verschillende talen beschikbaar zijn, is het belangrijk om hiertussen een vergelijking te maken. Een overzicht van de belangrijkste talen vindt u hieronder. 6.1.1 PHP PHP is speciaal ontwikkeld voor het opzetten van webapplicaties en is één van de meest voorkomende programmeertalen in dit gebied. Dit komt vooral omdat PHP freeware is waardoor veel onafhankelijke programmeurs hiermee werken. PHP is een zeer populaire programmeertaal. Meer dan 81% van alle websites die gebruik maken van een server-side programmeertaal draaien PHP. Enkele bekende sites die PHP gebruiken zijn onder andere Google, Facebook, YouTube en Yahoo. Op het moment van schrijven zijn er 166 PHP-jobs beschikbaar in België volgens de website van VDAB. Deze populariteit komt mede dankzij de open source licentie die PHP hanteert. Dit wil zeggen dat de broncode van PHP gepubliceerd is en vrij beschikbaar is voor het publiek. Iedereen kan de broncode dus vrij kopiëren en aanpassen zonder dat men auteursrechten moet betalen. Door deze open source licentie is het opstellen van een PHP-project ook zeer goedkoop. 6.1.1.1 Voordelen PHP draait op alle systemen. Dit is één van de redenen waarom PHP zo populair is; je hebt geen dure licentie nodig van Windows Server om een webapplicatie, geschreven in PHP, te ondersteunen. PHP draait namelijk op Linux wat een opensource besturingssysteem is. Hierdoor kan men al veel geld besparen. Dit betekent niet dat als je Windows hebt je geen PHP mag draaien. Een belangrijk punt is dat PHP gratis is. Je moet geen licentie betalen om gebruik te maken van deze populaire taal. PHP is vrij te downloaden van het internet waardoor het ook populair is bij startende programmeurs die net in de bedrijfswereld zijn terechtgekomen. PHP gaat goed hand in hand met MySQL-databases. Deze zouden veel sneller zijn dan de andere databases die beschikbaar zijn op de markt. Een ander pluspunt is dat een MySQL-database makkelijk te integreren is in PHP-applicaties. Er zijn gigantisch veel libraries die toegevoegd kunnen worden aan PHP waardoor te taal extra aantrekkelijk is voor de verschillende benodigdheden in de industrie. 6.1.1.2 Nadelen Hoewel PHP makkelijk is om te leren, is het dom om te denken dat een beginner meteen complexe sites kan ontwikkelen. Er zijn natuurlijk een heleboel frameworks beschikbaar die het werkproces versnellen.

23 Maar we moeten in het achterhoofd houden dat een beginnend team een bepaalde tijd nodig zal hebben om de voordelen van beschikbare tools te selecteren voor elk project. 6.1.2 ASP.NET ASP.NET is de opvolger van ASP en is onderdeel van het.net framework van Microsoft. In tegenstelling tot PHP is ASP.NET niet open source maar propriëtaire software. Slechts één individu of een bedrijf heeft de exclusieve auteursrechten op de software. Mensen kunnen dus niet zomaar de broncode kopiëren en aanpassen. Met andere woorden uitgelegd is ASP.NET niet gratis en moet er dus een som geld op tafel gelegd worden voordat je er gebruik van kan maken. ASP.NET kan enkel geïnstalleerd worden op systemen waarop het besturingssysteem Windows draait. Als men deze programmeertaal wil gebruiken, kan men dus beter gebruik maken van Windows Server. Het is echter mogelijk om een beperkte vorm van ASP.NET te draaien op een Linux machine. De functionaliteiten zijn dan wel niet allemaal beschikbaar. Meer dan 21% van alle websites die een server-side programmeertaal gebruiken, maken gebruik van ASP.NET. Sites die gebruik maken van ASP.NET zijn onder andere Live.com en MSN.com die allebei eigendom zijn van Microsoft. De website van VDAB biedt ons 308 jobs voor het ontwikkelen van ASP.NET. 6.1.2.1 Voordelen Ontwikkeling in ASP.NET is zeer makkelijk met de bestaande server controls die beschikbaar zijn. Hierdoor is er minder code nodig in vergelijking met andere programmeertalen om bepaalde functies te schrijven. Deze controllers zijn ingebouwd in Visual Studio waardoor je deze niet als aparte plug-ins moet toevoegen. ASP.NET maakt gebruik van master pages. Een master page kan ervoor zorgen dat elke webpagina op de site dezelfde lay-out heeft en zich hetzelfde gedraagt. Het is dan mogelijk om aparte pagina s te creëren met telkens een andere inhoud. Wanneer een gebruiker dan één van deze pagina s opvraagt zal deze pagina fuseren met de master page. Hierdoor krijg je de lay-out die je hebt geschreven in de master page en de inhoud van de aparte webpagina in één uiteindelijke resultaatpagina. Met ASP.NET is het niet nodig om de volledig ontwikkelde webpagina s te kopiëren naar de hosting server. Met deze programmeertaal is het voldoende om enkel de dll-bestanden te hosten op de server. Dit zorgt ervoor dat de broncode niet in het openbaar beschikbaar is op de hosting server wat een extra vorm van beveiliging voor de code met zich meebrengt. 6.1.2.2 Nadelen Zoals eerder aangehaald, is ASP.NET niet gratis. Voor de ontwikkeling van ASP-code moet je Visual Studio aankopen. De goedkoopste versie, Visual Studio 2013 Professional, heeft een prijskaartje van 646. Er zijn ook gratis pakketten te verkrijgen maar die bieden niet de verwachte voordelen. Kleine projecten zijn misschien wel mogelijk maar als men toekomstgericht wil werken en openstaat voor grotere projecten, is men uiteindelijk toch verplicht om over te stappen naar een betaalde versie van Visual Studio. ASP.NET draait niet op alle beschikbare systemen, enkel en alleen op Windows-besturingssystemen. Er is een versie beschikbaar voor Linux maar deze biedt niet alle oorspronkelijke functionaliteiten die deze taal te bieden heeft.

24 6.1.3 Ruby Ruby is een programmeertaal ontworpen om op een snelle en makkelijke manier objectgeoriënteerd te programmeren. Om Ruby te gebruiken voor de ontwikkeling van webapplicaties moeten we gebruik maken van de Ruby on Rails framework. Ruby hanteert een BSD-licentie waarbij de gebruikers de naam van auteur en licentie moeten vermelden als de software gebruiken in hun eigen producten. Ze mogen ook niet zonder toestemming de naam van de auteurs in advertentiemateriaal gebruiken. Ruby is te gebruiken op verschillende platforms zoals Windows en Linux. De taal wordt ongeveer door 0,5% van de websites, die gebruikmaken van een server-side programmeertaal, gebruikt. Enkele voorbeelden van websites die ontwikkeld zijn in deze taal zijn onder andere Hulu, Github en Howcast. Als we zoeken naar Ruby-ontwikkelaars vinden we slechts 10 jobs op de website van VDAB. 6.1.3.1 Voordelen Als je zoekt naar de voordelen van Ruby springt er altijd één naar de voorgrond, namelijk snelheid. In Ruby kan je in een kleinere periode grote projecten afronden. Waar het bij andere talen zo n 12 weken duurt, kan een Ruby-project al in zes weken afgerond zijn. Hoewel Ruby ontwikkeld is om te draaien op Linux, kan je ook Ruby-applicaties laten werken op Windows. Net zoals PHP hoeft men geen licentie te betalen om gebruik te maken van Ruby. Al sinds het ontwerp van Ruby, is deze taal ontwikkeld om volledig object georiënteerd te zijn en vooral in het voordeel te werken van de programmeurs. Een functie geschreven in zo n 10 lijnen PHP-code kan in 3 lijnen samengevat worden in Ruby. 6.1.3.2 Nadelen Ruby was oorspronkelijk niet ontwikkeld voor webapplicaties maar eerder voor het ontwikkelen van scripts met een makkelijke leesbaarheid. Hierdoor heeft Ruby niet dezelfde materniteit die je zou verwachten van een server-side programmeertaal zoals Java en PHP. De populariteit van Ruby is vele malen kleiner in vergelijking met PHP en ASP.NET. Dit kan een probleem vormen als je stuit op een programmeerprobleem. Er zijn veel minder communities die je met deze fout kunnen helpen. Het is moeilijker om een server te vinden die Ruby on Rails ondersteunt. Degenen die deze taal ondersteunen zijn ook nog eens een heel stuk duurder. Men betaalt net niet het dubbele voor Rubyhosting dan met PHP-hosting. 6.1.4 Python Naast het gebruik als een scriptingtaal, is Python ook een programmeertaal die vooral focust op een goede leesbaarheid. De syntax van Python zorgt ervoor dat men bepaalde functies in minder code kan uitdrukken in vergelijking met andere programmeertalen zoals C. We zullen gebruik moeten maken van het framework Django als we Python willen gebruiken voor het ontwikkelen van een webapplicatie. Python hanteert een licentie waarbij ontwikkelaars vrij de broncode van de taal mogen aanpassen. Dit doet denken aan een open source licentie maar dat is bij Python niet het geval. De Python-licentie is gebaseerd op het BSD-licentie wat vergelijkbaar is met de licentie van Ruby.

25 Het ontwikkelen van een webapplicatie in Python is dus redelijk goedkoop. Dit is zeker het geval als we in acht nemen dat Python meerdere platforms ondersteunt. Hierdoor kan er bijvoorbeeld gebruik gemaakt worden van Linux waardoor we zo goed als geen kosten hebben aan het besturingssyteem. Hoewel het ontwikkelen in Python redelijk goedkoop is, maken slechts 0,2% van de websites die gebruikmaken van een server-side programmeertaal gebruik van Python. Het webframework Django wordt vooral gebruikt door krantensites. Enkele bekende websites die gebruik maken van Python zijn onder meer Instagram, support.mozilla.com en de welbekende Britse krantensite The Guardian. Net als Ruby, zijn er slechts weinig jobaanbiedingen beschikbaar op de website van VDAB als we zoeken naar Python-ontwikkelaars. Zo zijn er slechts 18 jobs beschikbaar in België. 6.1.4.1 Voordelen De syntax van Python is duidelijk en goed leesbaar wat ervoor zorgt dat Python een goede programmeertaal is voor beginners. Python draait niet alleen op meerdere systemen, het heeft ook op de verschillende platforms dezelfde interface. Dit komt omdat het ontwerp van Python niet perse ontwikkelt met één enkel systeem in gedachte. Het zou dus mogelijk zijn om een Python-programma op te stellen op een Mac, te testen op een Linux-machine en deze te laten hosten door een Windows-systeem. Het opstellen van een Python webapplicatie is vrij goedkoop aangezien men geen licentie moet betalen voor het gebruik ervan. 6.1.4.2 Nadelen Python zou traag zijn in vergelijking met andere programmeertalen. Dit is in sommige gevallen niet echt een nadeel maar als snelheid een must is, is men toch genoodzaakt om een andere taal te zoeken. De kwaliteit van de Python-documentatie is minder goed in vergelijking met die van PHP of Java. Dit is een probleem als je bepaalde functies wil opzoeken. Voor het aanleren van een nieuwe programmeertaal is goede documentatie wel vereist. Er zijn niet veel Python-ontwikkelaars aanwezig op de markt. Het is veel gemakkelijker om een Java- of een PHP-ontwikkelaar te vinden. Dit wil dus ook zeggen dat bestaande Python-ontwikkelaars duurder zijn in vergelijking met andere ontwikkelaars. Net als Ruby is het hosten van Python bijna twee keer zo duur als PHP hosting. Het aantal hosting servers die Python ondersteunen is ook veel kleiner in vergelijking met PHP-hosting. 6.1.5 Java Eén van de meest bekende programmeertalen is zonder meer Java. Het is een klasse-gebaseerde en objectgeoriënteerde taal die de zogenaamde WORA-regel ( write once, run anywhere ) hanteert. Javaapplicaties worden gecompileerd tot een bytecode-bestand dat op eender welke computer architectuur werkt zolang het systeem Java kan draaien. Om gebruik te maken van Java als programmeertaal voor de ontwikkeling van webapplicaties zullen we gebruik moeten maken van de JavaServer Pages Standard Tag Library (JSTL) wat een onderdeel is van Java EE. Java hanteert de zogenaamde GNU General Public License waardoor ontwikkelaars alles met de software mogen doen wat ze willen zolang dat ze dat recht ook doorgeven aan anderen. De auteurs van de software moeten ook vermeld worden. Java is dus uiteindelijk freeware. Net zoals de meeste programmeertalen die al besproken zijn, is Java te gebruiken op meerdere platforms zoals Linux, Mac en Windows.

26 Java kent een gebruik van 2,7% bij websites die gebruik maken van een server-side programmeertaal. Enkele bekende websites die gebruik maken van Java zijn onder andere LinkedIn, Ebay en Adobe.com. Java is een zeer populaire taal onder de ontwikkelaars. Dit is ook af te leiden als we zoeken naar het aantal jobaanbiedingen op de site van VDAB. Er zijn zo n 469 jobs beschikbaar voor Java-ontwikkelaars. 6.1.5.1 Voordelen Het ontwikkelen van een webapplicatie in Java is goedkoop aangezien je geen licentiekosten moet betalen om gebruik te maken van de code. Terwijl PHP vooral geschikt is voor kleinere projecten, is Java ideaal voor de grote opdrachten omwille van zijn schaalbaarheid. Een voorbeeld van een drukbezochte website die gebruik maakt van Java is Gmail van Google. Ook Twitter maakt momenteel gebruik van Java. Deze sociale netwerksite was oorspronkelijk geschreven in Ruby maar is, omwille van schaalbaarheid, overgestapt naar Java webdevelopment. Java is platformonafhankelijk, wat ervoor zorgt dat Java op alle systemen die momenteel beschikbaar zijn kan draaien. 6.1.5.2 Nadelen Java is niet de beste keuze voor kleine projecten. Gebruik maken van Java voor een website met slechts één database is te veel werk voor zo n klein resultaat. Dit doe je beter in een andere taal. Het vinden van een hostingserver die Java webapplicaties kan hosten is zeer moeilijk in vergelijking met andere programmeertalen. 6.2 Een keuze maken Nu elke taal uitgebreid is besproken met de voornaamste voor- en nadelen per taal, is het mogelijk om bepaalde talen te schrappen waarbij de voordelen niet opwegen tegen de nadelen. 6.2.1 Kostprijs De kostprijs is één van de belangrijkste punten die invloed hebben op de keuze van een programmeertaal. De jeugddienst heeft een budget ter beschikking maar het is niet de bedoeling om dit al volledig op te gebruiken door een verkeerde programmeertaal te gebruiken. Als we de verschillende talen vergelijken op basis van de kostprijs, valt er één taal op, namelijk ASP.NET. Voor de ontwikkeling van ASP.NET ben je verplicht om Visual Studio Professional 2013 aan te kopen. Deze ontwikkelomgeving kost maar liefst 646. Hiernaast draait een ASP-systeem enkel op een Windowsbesturingssysteem waarvoor je ook moet betalen. Omwille van deze hoge kostprijs kunnen we ASP.NET schrappen uit de lijst van overwegende programmeertalen. De voordelen van deze taal wegen niet op tegen de nadelige kostprijs. 6.2.2 Weighted Ranking Method Om één uiteindelijke taal te selecteren maken we gebruik van de Weighted Ranking Method. Hierbij geven we de criteria waarop we vergelijken punten. Des te belangrijker de criteria, des te meer punten deze criteria kan opleveren. De taal die uiteindelijk de meeste punten heeft, zal gebruikt worden voor het project. We vergelijken de programmeertalen op volgende criteria en bijhorende punten: Kostprijs van de hosting: 10 punten Schaalbaarheid: 5 punten

27 Onderhoud: 5 punten Beschikbare ontwikkelaars: 5 punten Bij de kostprijs van de hosting kijken we naar de totale prijs die de jeugddienst zou moeten betalen als men de website wil hosten. Onder de schaalbaarheid verstaan we hoe makkelijk het is om de site uit te breiden. Des te beter de schaalbaarheid, des te hoger de score. We bekijken ook het onderhoud van de site en hoe makkelijk het is om de applicatie in deze taal te onderhouden. We hebben nagekeken hoeveel ontwikkelaars beschikbaar zijn per programmeertaal. Indien er meer ontwikkelaars zijn stijgt de score. Omdat we een lage kostprijs van het gebruik van een programmeertaal zeer belangrijk vinden krijgt dit criterium de hoogste score, namelijk een tien. De overige criteria zijn minder belangrijk in vergelijking met de kostprijs.

28 Met deze criteria en bijhorende punten krijgen we het resultaat in de volgende WRM-tabel: Criteria Gewicht PHP Ruby Python Java Kostprijs van hosting 10 80% 40% 40% 20% Schaalbaarheid 5 50% 40% 50% 80% Onderhoud 5 75% 75% 75% 75% Beschikbare ontwikkelaars 5 80% 30% 40% 90% Totaal 25 18,25 11,25 12,25 14,25 6.2.3 Weighted Ranking Method - Verklaring Criteria PHP Ruby Python Java Kostprijs van hosting Prijs ligt laag in vergelijking met andere talen De prijs bij Ruby is bij het dubbele van PHP-hosting Schaalbaarheid Matig schaalbaar Slecht schaalbaar, sites stappen na een tijd over op een andere taal. Onderhoud Beschikbare ontwikkelaars Matig te onderhouden Veel PHPontwikkelaars op de markt Matig te onderhouden Zeer weinig ontwikkelaars voor Ruby Net als Ruby; dubbele van PHP Matig schaalbaar Matig te onderhouden Weinig ontwikkelaars voor Python Totaal 18,25 11,25 12,25 14,25 Bijna geen hosts beschikbaar voor Java Zeer schaalbaar in vergelijking met de andere talen Matig te onderhouden Zeer veel Javaontwikkelaars aanwezig 6.3 Conclusie Door verschillende programmeertalen te vergelijken met elkaar hebben we een uiteindelijke keuze kunnen maken. We deden een onderzoek naar PHP, ASP.NET, Ruby, Python en Java waaruit PHP als beste taal is gekomen. Volgens ons is deze taal de beste voor de situatie. Het is de bedoeling dat de gekozen programmeertaal gebruikt zal worden tijdens het ontwikkelen van de webapplicatie van de jeugddienst. We hebben een taal kunnen kiezen door de voor-en nadelen van elke taal te vergelijken met de andere talen. Hierdoor kregen we een long list van de verschillende talen. Daaruit hebben we al kunnen besluiten welke talen eventueel gebruikt kunnen worden en welke niet. Een belangrijke factor waar we naar gekeken hebben is de kostprijs van de taal. Het opstellen van een applicatie als die van de jeugddienst mag in onze ogen niet te duur zijn. Hierdoor viel ASP.NET al weg aangezien men al een aardige som geld moet neertellen om in deze taal te ontwikkelen. Na het filteren van de talen creëerden we een WRM-tabel waarin deze talen beter met elkaar vergeleken konden worden. Door elk criterium een score te geven en deze per taal op te tellen krijgen we zo een winnende taal. Hieruit is gebleken dat PHP de meest voordelige taal is voor deze applicatie. Deze taal is in onze ogen de beste programmeertaal die gebruikt moet worden tijdens de ontwikkeling van het project.

29 7 ANALYSE DATABASEMANAGEMENTSYSTEMEN Het is belangrijk dat we gebruik maken van een databasemanagementsysteem (DBMS). In dit databasemanagementsysteem zullen alle gegevens terecht komen die van belang zijn voor dit project. Met behulp van een databasemanagementsysteem kunnen we alle belangrijke gegevens opvragen. Zo kunnen we de gegevens opvragen van alle leden van bij de jeugddienst, wie er allemaal werkt op de jeugddienst, 7.1 Aanbod van verschillende databasemanagementsystemen De keuze van een databasemanagementsysteem bij het ontwikkelen van een webapplicatie is zeer belangrijk. Er bestaan veel verschillende databasemanagementsystemen. Hieronder wordt een vergelijking gemaakt tussen de verschillende systemen. 7.1.1 Microsoft Access Microsoft Access is een relationele database-applicatie van Microsoft. Microsoft Access wordt meestal gebruikt door gebruikers die niet al te veel kennis hebben van het maken van een database. Access gebruikt dan ook een grafische interface en dit maakt het gemakkelijker. Met Access is het mogelijk om een front-end te bouwen. Een front-end houdt in dat het mogelijk is om formulieren, pagina s en rapporten te maken. We kunnen Access verkrijgen als onderdeel van Microsoft Office Professional. Het programma werd Access genoemd tot versie 2002. Momenteel is de naam veranderd naar Microsoft Office Access. 7.1.1.1 Voordelen - De kostprijs van Access is niet zo groot vergeleken met andere databasemanagementsystemen. - Access is gemakkelijk te gebruiken. Access werkt met een wizard waardoor je gewoon alles stap voor stap kan maken. Je hebt geen ervaring nodig met databases om het programma te gebruiken. 7.1.1.2 Nadelen - Het is niet mogelijk om met meerdere mensen in een keer te werken aan functionaliteiten. - Alle informatie van de database wordt opgeslagen in één bestand. Hierdoor zullen reports, query s en forms trager werken. - Access is een heel gemakkelijke database, we kunnen hier niet alles in doen. Dit databasemanagementsysteem is niet uitgebreid. - Elke database kan maximaal bestaan uit 2GB. - Access kan niet omgaan met veel data, dit wil zeggen dat wanneer we dicht bij het maximum zitten alles wat trager zal lopen.

30 7.1.2 MySQL MySQL is een opensource-managementsysteem. Om een database op te bouwen, gegevens eruit halen of te onderhouden gebruiken we SQL (Structured Query Language). In het begin werd MySQL vooral gebruikt voor internettoepassingen zoals gastenboeken en fora, dit werd meestal gecombineerd met PHP. Momenteel wordt bijna altijd MySQL gebruikt voor internettoepassingen. Ook wordt MySQL voortaan gebruikt voor standalone software. Voorbeelden van websites die gebruik maken van MySQL zijn: - Wikipedia - Google - Youtube 7.1.2.1 Voordelen - MySQL is volledig gratis. - MySQL biedt een zeer hoge prestatie. - Ondersteunt een groot aantal embedded applicaties die MySQL zeer flexibel maakt. - Zeer snel. - Gemakkelijke syntax. - Goede management tool (phpmyadmin). - Compatibel met meerdere besturingssystemen. 7.1.2.2 Nadelen - MySQL kan nog wat verfijnd worden. - Er kan nog wat gewerkt worden aan de faciliteiten van MySQL. - MySQL ondersteunt geen heel grote database. - Transacties worden niet efficiënt afgehandeld. - Ondersteunt geen foreign keys. 7.1.3 Microsoft SQL Server Microsoft SQL Server is ook een databasemanagementsysteem dat ontwikkeld is door Microsoft. Hiervoor wordt ook SQL gebruikt (dit is dan ook de meest gebruikte databasetaal). Microsoft SQL Server wordt voornamelijk gebruikt door organisaties die gebruik maken van een kleine tot middelgrote database. Microsoft SQL Server is ontwikkeld uit Sybase. Het concurreert in deze markt met producten van grote bedrijven zoals: Oracle, IBM en Sybase. 7.1.3.1 Voordelen - Microsoft SQL Server is zeer gemakkelijk om te gebruiken (gemakkelijker dan MySQL). - Dit databasemanagementsysteem biedt meer functies aan dan MySQL. - Microsoft SQL Server werkt samen met.net frameworks. - Data kan gerepareerd worden nadat bijvoorbeeld de stroom uitvalt. - Het is mogelijk om een volledige database te repareren. - Goede beveiliging. 7.1.3.2 Nadelen - Zeer duur (onbetaalbaar voor kleine bedrijven).

31 - Microsoft SQL Server is enkel compatibel met Windows. 7.1.4 Oracle Database Ook Oracle Database is een databasemanagementsysteem. Oracle Database was de eerste database die gebruik maakt van SQL. Een Oracle Database biedt ondersteuning aan een groot aantal besturingssystemen. Oracle heeft een eigen ERP-lijn (Enterprise Resource Planning) opgebouwd. De naam van deze ERP-lijn is Oracle E-Business Suite. Met deze software is het mogelijk om de ondersteunende processen in organisaties te beheren. 7.1.4.1 Voordelen - Het is mogelijk om zeer grote databanken aan te maken. - Deze databanken zijn zeer goed beveiligd. - Oracle database is altijd online. - Oracle database werkt zeer snel. 7.1.4.2 Nadelen - Zeer duur. - Ingewikkeld om het te onderhouden. 7.1.5 SQLite SQLite is ook een databasemanagementsysteem. Ook SQLite maakt gebruik van SQL. Bij SQLite is er geen serverinstallatie nodig. SQLite is ontwikkeld door D. Richard Hipp, Dan Kennedy and Joe Mistachkin. 7.1.5.1 Voordelen - Geen serverinstallatie nodig. - Het volledige relationeel model wordt opgeslagen in 1 bestand. - SQLite is compatibel met de meest gangbare besturingssystemen. - Geen MySQL database op de server nodig, het gebruikt eigen opslaggeheugen. - Het is gemakkelijk om de database op te slagen. - SQLite kan gebruikt worden met programma s die geschreven zijn in C of PHP of andere programmeertalen. 7.1.5.2 Nadelen - SQLite is traag. - Bij SQLite is het mogelijk dat een database maximaal 2GB kan zijn. - Het is niet mogelijk om de database aan te passen met meerdere gebruikers tegelijkertijd.

32 7.2 Een keuze maken Nu dat we de voor- en nadelen hebben besproken van de meest gebruikte databasemanagementsystemen kunnen we nu de weighted ranking method toepassen. Door gebruik te maken van de weighted ranking method is het mogelijk om het beste databasemanagementsysteem eruit te halen. We vergelijken de databasemanagementsystemen op volgende criteria en bijhorende punten: - Kostprijs van het product: 10 punten - Onderhoud: 5 punten - Beveiliging: 5 punten - Grote van de database: 5 punten - Gebruiksvriendelijkheid: 5 punten - Compatibiliteit: 5 punten Microsoft Access Microsoft SQL Server Oracle Database SQLite Criteria Gewicht MySQL Kostprijs van het product 10 70% 100% 0% 0% 30% Onderhoud 5 70% 80% 80% 0% 60% Beveiliging 5 60% 60% 100% 100% 60% Grote van de database 5 40% 60% 100% 100% 40% Gebruiksvriendelijkheid 5 80% 80% 80% 50% 80% Compatibiliteit 5 20% 100% 20% 100% 100% Totaal 35 20,5 29 19 17,5 20 7.2.1 Weighted Ranking Method - Verklaring Criteria Kostprijs van het product Onderhoud Beveiliging Grootte van de database Gebruiksvriendelijkheid Compatibiliteit Microsoft Access MySQL De kostprijs van Access is niet zo groot vergeleken met andere Gratis Zeer duur Zeer duur Vrij gemakkelijk te Gemakkelijk te Gemakkelijk te Zeer moeilijk te onderhouden onderhouden onderhouden onderhouden Voldoende Voldoende Zeer goed Zeer goed beveiligd beveiligd beveiligd beveiligd Ondersteunt geen Mogelijk om een Mogelijk om een heel grote grote database te grote database te Maximum 2GB databases gebruiken gebruiken Zeer gebruiksvriendelijk Compatibel met Microsoft Zeer gebruiksvriendelijk Compatibel met alles Microsoft SQL Server Oracle Database SQLite Zeer gebruiksvriendelijk Compatibel met Microsoft Niet zo gebruiksvriendelijk Compatibel met alles De kostprijs is iets groter als die van Microsoft Access De onderhoud in SQLite valt mee Voldoende beveiligd Maximum 2GB Zeer gebruiksvriendelijk Compatibel met alles

33 7.3 Conclusie Door de verschillende databasemanagementsystemen met elkaar te vergelijken hebben we uiteindelijk een keuze kunnen maken. Volgens ons is MySQL het beste databasemanagementsysteem voor dit project. MySQL werkt nauw samen met PHP wat een groot voordeel is aangezien PHP als beste uit de programmeertalen kwam. MySQL maakt gebruik van PHPMyAdmin. Dit databasemanagementsysteem hebben we gekozen door gebruik te maken van de Weighted Ranking methode. MySQL had een score van 29/35 waardoor deze als 1 ste eruit kwam. Het databasemanagementsysteem dat op de 2 de plaats eindigde was Microsoft Access met 20,5/35. Wij raden dus aan om MySQL als databasemanagementsysteem te gebruiken.

34 8 SUB TOOLS STATISTIEKEN GENEREREN 8.1 Google Charts Google Charts is een webtool die developers in staat stelt om statistieken te genereren en deze te integreren in de webpagina. Website: https://developers.google.com/chart Google Charts libraries zijn toegankelijk voor volgende platformen: - Java (Google Chart API wrapper & charts4j) - C#.NET (nqchart) - Ruby (gchart) - PHP (gchartphp) - Python (google-chartwrapper) - Perl (Google::Chart) 8.1.1 Voordelen - Gratis - Veel keuze in grafiektypes - Mogelijkheid om kaarten en QR codes te genereren 8.1.2 Nadelen - Google gelimiteerde API requests (25 000 per dag) 8.1.3 Voorbeelden