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

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

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

Thinking of development

Zicht - Content Management Systeem een algemene beschrijving

Quickstart handleiding

Documentatie. InstantModules Q42. Versie 1.1

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

ProjectHeatmap. Onderzoeksrapport v Dennis Wagenaar

Xampp Web Development omgeving opzetten onder Windows.

Koppeling met een database

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

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

Project plan. Erwin Hannaart Sander Tegelaar

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

En hoe gaan ze dit allemaal terugvinden?

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

Handleiding CMS. Auteur: J. Bijl Coldfusion Consultant

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

Handleiding Website Laatste update: april 2014

Databases - Inleiding

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

Programmeren met databanken volgens het lagenmodel in C#

Connect Social Business

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

HANDLEIDING. Emjee ICT diensten Ticketsysteem

Test Joomla op je PC 1

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

Uitgebreid voorstel Masterproef Informatica

Verdien model. Affiliate marketing

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

Plan van aanpak Toogle

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

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

10 FACEBOOK TIPS VOOR BEDRIJVEN

Peelland ICT Online Back-up

Plan van Aanpak Jeugddienst Turnhout

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

Social media checklist

Programmeren met databanken volgens het lagenmodel in C#

Software Test Plan. Yannick Verschueren

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%

Handleiding Mijn Kerk

Beveiligingsbeleid. Online platform Perflectie

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

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

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

Fuel. Handleiding voor installatie en gebruik

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

Organisatie. Gestart in 2009 Open Source Webdevelopment Grafische achtergrond Servicegericht

SQL SERVER Werking van Database Snapshots

Handleiding enquetemaken.be

Handleiding Websitebeheer

Zelftest Informatica-terminologie

Inventus Software. Antum Secured Mail / Message System. Gebruikershandleiding

Cursus Programmeren en Dataverwerking.

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT

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

Drupal lokale installatie op Windows 7.

WordPress in het Kort

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

Handleiding. Social Media Management Software

Beschrijving functioneel en technisch design van de website

Handleiding Reseller Controle Paneel

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

Tools voor canonieke datamodellering Bert Dingemans

Inhoudsopgave. versie 0.8

Een database gebruiken

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

Search Engine Optimalisation Rapport mrcreezy.be

Handleiding Webhosting Online Linux

CLOUD COMPUTING Falco, Goan & Wouter CURSUSAVOND. Teach-IT

VERENIGINGSWIJZER.NL FINAL DOCUMENT

Online Marketing. Door: Annika Woud ONLINE MARKETING

VBA voor doe het Zelvers - deel 10

Handleiding Leerplatform EVA 3IMSA

Handleiding voor het installeren van VBA scripts in Outlook

Handleiding voor Zotero versie 2.0

Aan de slag met WordPress

Inhoud. Endnote X7 Handleiding Mediacentrum maart 2015 Page 2

PHP-OPDRACHT SITE BOUWEN

Taxis Pitane SQL beheerder. Censys BV - Eindhoven

Installatie van WerkMeester

React en React Native voor websites en apps

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

Transcriptie:

1 Eindrapport Nahnisim 2013-2014 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 MoSCoW- methode. 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 Excelbestanden gebruikt bij het organiseren van hun werking is er ook onderzoek gedaan naar het importeren van Excelgegevens. 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 Exceldocument. 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 MoSCoWoverzicht 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 Exceldocumenten in het nieuwe project, hoe we de veiligheid kunnen garanderen doormiddel van encryptie en hoe de integratie van verschillende Facebook plugins 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 CMSsystemen 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 emailadres 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 email Standaard: o 4 MB Attachments o Ondersteuning via telefoon en email Premium: o 8 MB Attachments o Ondersteuning via telefoon en email 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 id ActiviteitId reclameid id soortactiviteitid rapportid datum beginuur einduur omschrijving uitleg prijsperpersoon geldactiviteit inschrijvenopvoorhand id omschrijving id activiteitid groepid id naam id activiteitid buurtid id gemeenteid naam Autonummering String ReclamePerActiviteit Activiteit SoortActiviteit Autonummering Autonummering Date Date Date Double Double Boolean Autonummering ActiviteitPerGroep Groep Autonummering Autonummering ActiviteitPerBuurt Buurt Autonummering Autonummering Aanwezigheid id activiteitid jongerenid gespot id personeelid Autonummering Boolean PersoneelPerActiviteit Autonummering

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

14 omschrijving opgelost id naam postcode id jongereid voogdid id buurtid naam voornaam functie contactnummer notities Boolean Gemeente 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 EXCELGEGEVENS IN DATABASE Het invoegen van bestaande Excelgegevens is noodzakelijk en word mogelijk gemaakt met behulp van een MySQL databank. Sla het Excelbestand op als een CSVbestand en maak gebruik van de phymyadmin importeer functie. 3.1 Wat is een CSV bestand? Een CSVbestand 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 CSVformaat. 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 Excelbestand 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 sqlinject scripts. Door authenticatie te omzeilen in de sqlquery 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 plugins en API s die vrij gebruikt kunnen worden in de te ontwerpen webapplicatie. Slechts een drietal van de aangeboden plugins 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 plugins Facebook biedt een hele reeks aan sociale plugins 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 Likeknop 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 Likeknop 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 Sendknop is het voor een gebruiker mogelijk om inhoud van de website naar één of meerdere vrienden te versturen via een privaat Facebookbericht. De Sendknop 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 Commentsplugin 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 Commentsplugin 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 plugins, 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 metaelementen 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 metatags 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 Reactiesectie. De overige plugins die worden aangeboden zijn niet van toepassing voor de jeugddienst van Turnhout. De te implementeren plugins zijn niet alleen heel handig, ze zijn tegelijkertijd makkelijk te implementeren in de applicatie. Niet alleen zijn plugins 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 plugins is ook deze API zeer makkelijk te installeren. Dankzij de hele Facebookimplementatie 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 WRMmethode 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 serverside 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 PHPjobs 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 PHPproject 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 MySQLdatabases. Deze zouden veel sneller zijn dan de andere databases die beschikbaar zijn op de markt. Een ander pluspunt is dat een MySQLdatabase makkelijk te integreren is in PHPapplicaties. 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.