Scriptie ingediend tot het behalen van de graad van PROFESSIONELE BACHELOR IN DE ELEKTRONICA-ICT
Uitbreiden van het AGORA Kwaliteitsmanagementsysteem Psychosociale risisco’s, maand- en jaarverslagen Sebastian Plachytka Departement Wetenschappen en Techniek Opleiding Elektronica-ICT Academiejaar 2014-2015
Interne promotor: Patrick Van Houtven Externe promotor: Alain Naets
Versie: 12 juni 2015
Dankwoord
Na een periode van 12 weken eindigt de stage van deze bachelorproef. Tijdens deze periode werd er vooral data verzameld waarna de opbouw van deze scriptie kon beginnen. De stageperiode was intensief maar tegerlijkertijd ook leerlijk. Het gaf mij een goed beeld over het bedrijfsleven, de manier van werken en de verwachtingen binnen een bepaalde tijdsperiode. Het succesvol bee¨ındigen van deze stageperiode zou echter geen feit zijn geweest zonder de hulp van enkele personen die ik vervolgens wil bedanken. Als eerste wil ik Jan Van Ocken bedanken voor het aanbieden van deze stage. Ook wil ik hem bedanken voor de tijd en energie die hij heeft gestoken om mij te begeleiden tijdens mijn stageperiode. Vervolgens wil ik hem ook bedanken voor het aanbieden van de 7-daagse cursus preventieadviseur niveau 3 die ik samen met mijn collega student Ikhlas Berrazi heb gevolgd. Deze cursus gaf mij een beter beeld over preventie en het hielp mij bij het schrijven en opbouwen van deze bachelorproef. Ook wil ik mijn externe promotor Alain Naets bedanken. Hij hielp mij met veel technische problemen die ik tegenkwam tijdens de stageperiode. Ook wil ik hem bedanken voor de professionele aanpak van deze stage. Ik wil ook mijn collega student Ikhlas Berrazi bedanken. Hij was diegene die ik als eerste kon benaderen met bepaalde vragen of problemen die ik ondervond. Tenslotte wil ik ook mijn interne promotor Patrick Van Houtven bedanken. Hij zorgde voor de ondersteuning van de stage. Ook gaf hij mij enkele goede tips die ik kon gebruiken bij het schrijven van deze scriptie. Antwerpen, 12 juni 2015 Sebastian Plachytka
i
Inhoudsopgave
Dankwoord
i
1 Situering
1
2 Bespreking 2.1 Terminologie . . . . . . . . . . . 2.1.1 Hi¨erarchie preventie . . . 2.1.2 Agora . . . . . . . . . . . 2.1.3 Psychosociale risico’s . . 2.1.4 Maandverslag . . . . . . 2.1.5 Jaarverslag . . . . . . . . 2.2 Technologi¨een . . . . . . . . . . 2.2.1 Php . . . . . . . . . . . . 2.2.2 Javascript . . . . . . . . 2.2.3 CSS . . . . . . . . . . . 2.2.4 MySQL . . . . . . . . . . 2.2.5 Apache . . . . . . . . . . 2.2.6 Owasp . . . . . . . . . . 2.3 Gebruikte softwareomgeving . . . 2.3.1 Owncloud . . . . . . . . 2.3.2 Php Designer . . . . . . . 2.3.3 USB Webserver . . . . . 2.3.4 phpMyAdmin . . . . . . . 2.3.5 Google Chrome . . . . . 2.4 Psychosociale risico’s . . . . . . 2.4.1 Doelstellingen . . . . . . 2.4.2 Resultaten . . . . . . . . 2.4.3 Problemen en oplossingen 2.5 Maandverslag . . . . . . . . . . 2.5.1 Doelstellingen . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . ii
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
2 2 2 2 3 3 4 4 4 6 8 8 9 9 10 10 10 10 11 11 12 12 12 14 14 14
INHOUDSOPGAVE
2.6
2.5.2 Resultaten . . . . . . . . 2.5.3 Problemen en oplossingen Jaarverslag . . . . . . . . . . . . 2.6.1 Doelstellingen . . . . . . 2.6.2 Resultaten . . . . . . . . 2.6.3 Problemen en oplossingen
iii . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
15 17 18 18 18 20
3 Besluit
21
A Appendix
23
Lijst van figuren
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14
Het dashboard van Agora . . . . . . . . . . . . php dompdf . . . . . . . . . . . . . . . . . . . Werking switchcase en javascript . . . . . . . . jQuery POST functie en serialize . . . . . . . . Werking Mysql injection . . . . . . . . . . . . . Anti Mysql injection . . . . . . . . . . . . . . . De interface van usbwebserver 8 . . . . . . . . . Tabblad structuur op vertrouwenspersoon niveau Tabblad structuur op school en cpa niveau . . . Tabblad structuur op school niveau . . . . . . . Tabblad structuur op cpa niveau . . . . . . . . . Archief van maandverslagen op cpa niveau . . . Tabblad structuur op school niveau . . . . . . . Tabblad structuur op cpa niveau . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
3 6 6 7 9 10 11 13 13 16 16 17 19 20
A.1 A.2 A.3 A.4
Interventieformulier . . . . . . . . Overzicht voor leerlingenongevallen Overzicht voor personeelsongevallen Formulier van een jaarverslag . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
24 25 25 26
. . . .
iv
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Hoofdstuk
1
Situering Binnen de wereld van preventie zijn er bepaalde wettelijke verplichtingen waaraan een preventieadviseur zich moet houden. Een preventieadviseur die tewerk gesteld is in een school, moet bepaalde documenten invullen en deze inleveren aan onder andere het schoolbestuur. Dit draagt echter veel papierwerk met zich mee. Daarom is Coprant vzw met een oplossing gekomen: Agora. Agora is een digitale omgeving waarin verschillende webapplicaties te vinden zijn. Deze webapplicaties worden gebruikt door preventieadviseurs die in verschillende scholen actief zijn. Agora bestaat echter niet lang en het heeft nog niet alle webapplicaties die een preventieadviseur nodig zou hebben. Er moeten nog applicaties ontwikkeld worden om het applicatiepakket van Agora uit te breiden naar de behoeften van de preventieadviseurs die deze zullen gebruiken. Dit is tevens ook het doel van deze bachelorproef. Voor deze bachelorproef werden de volgende applicaties ontwikkeld: psychosociale risico’s, maandverslag en jaarverslag. Aan het applicatiepakket van Agora werd gewerkt door mij (schrijver van deze thesis), Alain Naets (externe promotor) en Ikhlas Berrazi (collega student).
1
Hoofdstuk
2
Bespreking Zoals kort besproken in het vorige hoofdstuk, is de doelstelling van deze bachelorproef het uitbreiden van Agora’s applicatiepakket. Dit wordt verwezenlijkt door het ontwikkelen van 3 applicaties genaamd: psychosociale risico’s, maandverslag en jaarverslag. Deze termen zullen in de volgende subsecties uitgebreid worden toegelicht.
2.1 2.1.1
Terminologie Hi¨ erarchie preventie
Preventie in Belg¨ıe omvat een bepaalde hi¨erarchie. Deze hi¨erarchie is meer bepaald voor de functies binnen preventie, waarin vooral preventieadviseurs werken. Hun functie is het advies geven op gebied van veiligheid en preventie in een bepaalde organisatie. Er kunnen verschillende soorten preventieadviseurs worden onderscheiden. Zo is er de lokale preventieadviseur (LPA). Deze preventieadviseur is werkzaam in een school of kleine tot middelmatige organisatie. Er is ook een co¨ordinerende preventieadviseur (CPA). Deze preventieadviseur heeft meer een co¨ordinerende functie. Hij of zij heeft 1 of meer scholen en hun lokale preventieadviseur onder zich.
2.1.2
Agora
Agora is een applicatiepakket waar scholen zich voor een bijdrage van 65 euro jaarlijks op kunnen abonneren. Het bevat verschillende webapplicaties waar een preventieadviseur van een school gebruik van kan maken om zijn job als preventieadviseur op een succesvollere manier te kunnen volbrengen. Binnen Agora wordt er ook met rechten gewerkt. Er zijn 3 hoofdrechten aanwezig: Admin, Cpa en school. Admin wordt toegewezen aan de beheerder van het hele 2
HOOFDSTUK 2. BESPREKING
3
Agora systeem. Cpa wordt toegewezen aan co¨ordinerende preventieadviseurs en school wordt toegewezen aan lokale preventieadviseurs.
Figuur 2.1: Het dashboard van Agora Het dashboard van Agora is hetgene dat de gebruiker te zien krijgt na het inloggen. Hier kan de applicatie gestart worden die de gebruiker wenst te gebruiken.
2.1.3
Psychosociale risico’s
Bij preventie op school wordt er veel aandacht besteedt aan psychosociale risico’s. Maar wat zijn psychosociale risico’s eigenlijk? Psychosociale risico’s bepalen de kans dat iemand (meestal een werknemer) psychische schade kan oplopen al dan niet gepaard gaande met lichamelijke schade.1 Dit ten gevolge van elementen van een bepaalde arbeidsorganisatie, -inhoud, arbeidsvoorwaarden en/of -omstandigheden. Psychosociale risico’s kunnen ook aanwezig zijn op school. De persoon die mogelijke voorgevallen van psychosociale schade moet documenteren is de vertrouwenspersoon. Hij of zij moet elke maand een verslag indienen bij het schoolbestuur waarin alle statistische gegevens worden gedocumenteerd in verband met interventies van psychosociale schade in de schoolomgeving.
2.1.4
Maandverslag
Zoals besproken in de vorige subsectie moet er maandelijks een verslag met interventies worden afgeleverd aan het schoolbestuur. Dit gebeurd door de vertrouwenspersoon van de school. In elke school is er echter ook een preventieadviseur werkzaam. Hij of zij moet maandelijks 1
http://www.werk.belgie.be
HOOFDSTUK 2. BESPREKING
4
een maandverslag inleveren van deze school. Dit maandverslag bevat statistische gegevens in verband met leerlingen- en personeelsongevallen.
2.1.5
Jaarverslag
Wettelijk is een preventieadviseur van een school ook verplicht om jaarlijks een jaarverslag in te dienen bij het schoolbestuur. In dit jaarverslag staan, zoals in een maandverslag statistische gegevens in verband met leerlingen- en personeelsongevallen. Echter, het verschil is dat in dit verslag de statistieken per boekjaar en niet per maand zijn weergegeven. De statistieken zijn een optelling van de statistieken van alle maandverslagen van een bepaald boekjaar. Het jaarverslag dat per school zonder afdelingen moet worden aangemaakt heeft ook een andere naam, namelijk het formulier A. Een school met afdelingen moet een formulier B aanmaken. Een co¨ordinerende preventieadviseur moet een formulier C aanmaken. Er zijn 3 soorten jaarverslagen: • Formulier A: Dit jaarverslag wordt aangemaakt door een school zonder afdelingen. • Formulier B: Dit jaarverslag wordt aangemaakt door een school met afdelingen. • Formulier C: Dit jaarverslag wordt aangemaakt door een co¨ordinerende preventieadviseur en bevat opgetelde data van formulieren A en B.
2.2 2.2.1
Technologi¨ een Php
PHP staat voor Hypertext Preprocessor. Het was de technologie die domineerde bij de ontwikkeling van de verschillende applicaties. Php werd gebruikt om de html tekst te ’printen’ op het scherm. Php is een programmeertaal die serversided is. Dit wil zeggen dat het werkt vanop de server en dus niet lokaal. Er werd bij het ontwikkelen van de applicaties geopteerd voor dezelfde php versie als die van de server. Dit was nodig om geen compatibiliteitsproblemen teweeg te brengen. De php versie is ook niet de nieuwste die beschikbaar is. Op het moment van het schrijven van deze scriptie werd de versie 5.4.17 gebruikt. Een reden voor het gebruik van een oudere php versie is de zogenaamde oudere pc die vaak in het onderwijs wordt gebruikt. Deze pc heeft vaak een oudere php versie dan recentere pc’s. Zo kunnen de applicaties zonder problemen werken op deze oudere pc’s. Nog een voordeel van een serversided programmeertaal als php is dat al de berekeningen op de krachtigere server kunnen gebeuren en de weergave op de zwakere oude pc van de school. In de applicaties wordt er met behulp van php gebruik gemaakt van de sessie om uw sessie te behouden. Dit zorgt ervoor dat er niet telkens opnieuw moet worden aangemeld eens de pagina gesloten is. Een sessie binnen php omvat echter meer. Zo kunnen er bepaalde sessievariabelen worden meegegeven aan een sessie. Deze sessievariabelen kunnen vervolgens worden gebruikt om bepaalde controles in verband met rechten uit te voeren
HOOFDSTUK 2. BESPREKING
5
op bepaalde delen van een applicatie. Dit zorgt er bijvoorbeeld voor dat een CPA bepaalde functionaliteiten niet te zien krijgt en een LPA wel. Een mogelijke vraag die op dit moment gesteld kan worden is: Waar wordt html gebruikt? Het antwoord daarop is tegerlijkertijd simpel en logisch. Php zorgt ervoor dat de html code in de browser wordt geprint. De browser verwerkt de html code en laat dan het nodige op het scherm zien. GET en POST Bij de ontwikkeling van de applicaties werd er ook vaak gebruik gemaakt van POST en GET met behulp van php en javascript. Omdat php een serversided programmeertaal is, moet een bepaalde actie die lokaal wordt teweeggebracht ook worden doorgevoerd naar de serversided php code. Dit is waar POST en GET nuttig zijn. POST en GET zijn methodes om data van de client naar de server te sturen en ook om de responsie van deze data op te vangen. Het verschil tussen POST en GET is dat bij GET de doorgestuurde data zichtbaar is in de adresbalk van de gebruikte browser. Soms mag de verstuurde data door niemand gezien worden (zoals bijvoorbeeld een wachtwoord). Bij POST is dit niet zo. Dit maakt POST een veiligere optie dan GET. Javascript initi¨eert de post methode. Php verwerkt het verzoek op de server. Switch-case De ontwikkelde applicaties hebben een switch-case structuur die ge¨ınitieerd wordt eens er een POST gebeurd. De switch-case structuur bevat een switch met daarin veel cases. Elke case is verantwoordelijk voor het uitvoeren van bepaalde code. Het voordeel hiervan is dat niet alle code van het php bestand met de switch-case structuur tegerlijkertijd wordt uitgevoerd. De applicaties zijn zo opgebouwd dat er van de ene case naar de andere wordt overgegaan afhankelijk van welke actie de gebruiker init¨ıeert. Ter verduidelijking kan er gerefereerd worden naar figuur 2.3. DOMPDF Dompdf is een klasse die in staat is om html code te converteren naar een pdf bestand. In de applicaties werd de klasse gebruikt om de verschillende afdrukken in pdf formaat te genereren. De werking is als volgt: Eerst wordt de html code geconverteerd naar pdf code. Deze pdf code wordt als blob2 opgeslaan in de database. De opgeslagen pdf code wordt terug opgevraagd. Waarna deq pdf code wordt verwerkt. Vervolgens wordt de pdf op het scherm weergegeven. De volgende figuur illustreert dit aan de hand van code. 2
Blob staat voor Binary Large Object. In de praktijk is dit een bestand. In een database kunnen er getallen, tekst maar ook bestanden worden opgeslagen onder het type blob.
HOOFDSTUK 2. BESPREKING
6
Figuur 2.2: php dompdf
2.2.2
Javascript
Javascript is een scripttaal die wordt gebruikt voor interacties op een webpagina. In de ontwikkelde applicaties werd het echter gebruikt als tussenschakel tussen de serversided php code en de lokale code. Javascript zorgt voor de verwerking van de code. Het bevat functies die worden opgeroepen vanuit de door php geprinte html code. De functies bevatten een post methode die een case aanroept in de php code. De volgende figuur illustreert deze werking.
Figuur 2.3: Werking switchcase en javascript
HOOFDSTUK 2. BESPREKING
7
jQquery jQuery is een bibliotheek van javascript. In de applicaties van Agora wordt er al gebruik gemaakt van deze bibliotheek. Logischerwijze werd deze bibliotheek dus ook gebruikt tijdens de ontwikkeling van de applicaties van deze bachelorproef. In de komende subsecties wordt er meer in detail getreden in verband met de gebruikte jQuery functies. jQquery UI Bij de ontwikkeling van de applicaties werd er gebruik gemaakt van jQuery UI. JQuery UI bestaat uit verschillende elementen die zichtbaar zijn voor de gebruiker. Hiermee worden dialogboxes, accordions, tabs en meer mee bedoeld. Het uitzicht van deze widgets was al vooraf gedefinieerd en was gelijk in alle reeds bestaande Agora applicaties. jQquery POST en serialize Een volgende jQuery functie waar veel gebruik van werd gemaakt is de POST functie. Deze functie zorgt ervoor dat er bepaalde data van de ene naar de andere case in de switch-case structuur kan worden verstuurd. Deze functie werkt nauw samen met php. Php moet namelijk de verstuurde data opvangen en vervolgens data terugsturen. Voordat deze jQuery functie bestond werd de post methode rechtstreeks uitgevoerd in javascript aan de hand van ajax. Nu is ajax als een functie gedefini¨eert in de jQuery bibliotheek en moet enkel deze functie worden aangeroepen. Dit zorgt ervoor dat de ontwikkelaar de POST methode kan uitvoeren aan de hand van minder lijnen code. De jQuery post methode komt ook soms samen voor met de zogenaamde serialize methode. Deze methode zorgt ervoor dat bepaaldede intputvelden van een form kunnen worden geserializeerd en de data hiervan kan worden doorgegeven naar een andere case in de switch-case structuur. Het voordeel hiervan is dat er niet meer moet worden gewerkt met de traditionele aanroeping van json.
Figuur 2.4: jQuery POST functie en serialize
HOOFDSTUK 2. BESPREKING
8
jQquery Datatables Een laatste maar zeer belangrijk voordeel van jQuery dat van nut was bij de ontwikkeling van de applicaties is de zogenaamde datatables. Datatables is een plugin voor de jQuery bibliotheek. Het zorgt ervoor dat een tabel een bepaalde opmaak en zoek/filter veld krijgt. Datatables zorgt er echter ook voor dat een hele tabel kan worden doorzocht aan de hand van de wens van de gebruiker. Datatables was van groot belang bij de ontwikkeling van de verschillende applicaties. Meer bepaald de ontwikkeling van de verchillende archieven.
2.2.3
CSS
Css of beter bekend als Cascading Style Sheets is een mogelijkheid om de layout en vormgeving van een webpagina en alle elementen ervan te bepalen. Css werkt los van de interne werking van de applicaties. Daardoor wordt de css code vaak in een apart bestand gehouden. Bij de aanvang van de ontwikkeling van de applicaties was de vormgeving hiervan al bekend waardoor er weinig of geen aanpassingen moesten worden gedaan aan de vormgeving.
2.2.4
MySQL
MySql is het managementsysteem dat werd gebruikt om de database die bij de applicaties hoorde te beheren. Een programma dat als ondersteuning diende voor het beheren van de database was phpmyadmin. Dit programma zal uitgebreider worden toegelicht in de volgende sectie. InnoDB - MyISAM Bij de aanvang van de stage van deze bachelorproef maakte de database van Agora gebruik van myISAM. MyISAM is een zogenaamde storage engine van een MySQL systeem. Het heeft enkele voordelen zoals onder andere de makkelijke opbouw van tabellen, de snelheid voor de verwerking van select queries en de mogelijkheid om volle tekst op te zoeken. MyISAM heeft echter ook een slechte crash herstel, data-integriteit en een slechtere performantie voor insert en update queries. In de korte toekomst zal er een aanpassing gebeuren aan de database van Agora. Bepaalde tabellen zullen namelijk de zogenaamde InnoDB storage engine krijgen. InnoDB zorgt namelijk voor een betere performantie voor insert en update queries en het heeft ook een betere crash herstel.
HOOFDSTUK 2. BESPREKING
2.2.5
9
Apache
Apache is een webserver die gedraaid kan worden op verscheidene besturingsystemen waaronder Windows en Linux. Bij de ontwikkeling van de applicaties moest hier rekening mee worden gehouden. Er is namelijk een verschil tussen de beiden op vlak van configuratie. Een applicatie die op een Windows Apache server werkt zal mogelijk niet werken op een Linux Apache server.
2.2.6
Owasp
Owasp is een open source project rond computerbeveiliging. Omdat het open source is worden er constant door individuen informatie en technieken gedeeld op dit platform.3 Bij de ontwikkeling van de applicaties werd er ook rekening gehouden met owasp. Specifieker werd dit gedaan door MySQL Injection tegen te gaan. Met behulp van MySQL Injection kan een gebruiker met slechte bedoelingen verborgen data (zoals wachtwoorden) uit de database halen. Dit gebeurd door bepaalde delen van een SQL query in de inputvelden van een loginscherm in te geven. De volgende figuur verduidelijkt de werking van MYSQL Injection.
Figuur 2.5: Werking Mysql injection Om dit fenomeen tegen te gaan werd er in de code bepaalde lijnen toe te voegen. Deze lijnen code passen anti MySql injection toe op het dataverkeer tussen de client en de server. Meer bepaald op de POST/GET methodes en bepaalde queries naar de database. Bij de aanvang van de stage bevatte Agora weinig tot geen beveiliging op vlak van owasp. De enige maatregel die werd toegepast is de anti mysql injection. Tegen het einde van de 3
http://nl.wikipedia.org/wiki/OWASP
HOOFDSTUK 2. BESPREKING
10
Figuur 2.6: Anti Mysql injection stageperiode kwam hier echter verandering in. Er werd meer aandacht besteed aan owasp en de algemene beveiliging van de applicaties binnen agora. Zo werden er aanpassingen doorgevoerd in de code van de bestaande applicaties om bijvoorbeeld Cross Side Scripting (XSS) tegen te gaan. Dit gebeurde door de externe promotor.
2.3 2.3.1
Gebruikte softwareomgeving Owncloud
Owncloud is een online platform waar data in de cloud kan worden geplaatst en beheerd. Het heeft als goede ondersteuning gediend bij de ontwikkeling van de verschillende applicaties. Ook had de server van Agora een owncloud platform lopend waar gebruik van werd gemaakt om de verschillende bestanden van de verschillende applicaties in op te slaan en te beheren. Vergeleken met andere soortgelijke online platforms biedt Owncloud enkele voordelen. Het heeft een bepaalde manier voor het beheren van versies. Dit was nuttig om bij bepaalde problemen bij een applicatie terug te kunnen gaan naar een werkende versie. Ook heeft owncloud een interface die erg gebruiksvriendelijk is.
2.3.2
Php Designer
Php Designer is een programma waarin in verschillen programmeertalen bepaalde applicaties kunnen worden ontwikkeld. Het is het programma waarin de effectieve code van de verschillende applicaties werd geschreven. Er werd bij de aanvang van deze bachelorproef geopteerd voor het gebruik van Dreamweaver CS6 maar dit werd uiteindelijk niet gedaan. De reden is hiervoor is dat Dreamweaver voor veel overhead (onnodige lijnen code) zorgt bij het bouwen van de applicaties. Ook heeft het enkele basisfunctionaliteiten niet dat Php Designer wel heeft. Php Designer bouwt geen overhead, heeft een goede ingebouwde zoekfunctie om snel bepaalde lijnen code terug te vinden en het programma werkt in het algemeen sneller.
2.3.3
USB Webserver
Usbwebserver is een programma waarmee er een lokale Apache en MySql server kan worden opgestart. Dit wordt gebruikt om visuel de website te bekijken die er ontwikkeld wordt. In
HOOFDSTUK 2. BESPREKING
11
Usbwebserver is ook PhpMyAdmin ge¨eintegreerd. Usbwebserver biedt ook enkele voordelen vergeleken met enkele soortgelijke programma’s zoals bijvoorbeeld Xampp. Het kan gemakkelijk worden gebruikt vanop een usb stick, heeft een grootte van enkel 20 mb en het heeft een gebruiksvriendelijke interface waar enkel het noodzakelijke opstaat.
Figuur 2.7: De interface van usbwebserver 8
2.3.4
phpMyAdmin
PhpMyAdmin is een webapplicatie waarmee er databases via de browser beheert en geraadpleegd kunnen worden. Met phpMyAdmin kunnen er databases aangemaakt, gewijzigd of verwijderd worden. Dit geldt ook voor tabellen. PhpMyAdmin is veruit de meest gebruikte webapplicatie voor het beheren van databases. Het heeft een goede interface die gebruiksvriendelijk is. Omdat het in de webbrowser wordt geopend, kan het gebruikt worden door elk apparaat dat een webbrowser heeft. Ook is het al vaak voorge¨ınstalleerd op de draaiende server.
2.3.5
Google Chrome
Google chrome is de browser die werd gebruikt bij het continu testen van de ontwikkelde applicaties. Er werd voor deze browser gekozen omdat deze bepaalde ingebouwde functies zoals broncode weergeven en element inspecteren heeft. Met behulp van deze ingebouwde functies kon er op een makkelijke manier gekeken worden hoe de code werd uitgevoerd en of er bepaalde fouten optraden. Er wordt de gebruikers van Agora ook aangeraden om Chrome te gebruiken voor een optimale werking. De reden hiervoor is dat Chrome in-browser updates heeft en alle nodige extensies al ingebouwd heeft. Agora zal ook werken op andere browsers maar de optimale werking ervan kan dan echter niet worden gegarandeerd.
HOOFDSTUK 2. BESPREKING
2.4 2.4.1
12
Psychosociale risico’s Doelstellingen
De eerste applicatie waarvan de doelstellingen zullen worden besproken is de applicatie psychosociale risico’s. Deze applicatie moet ervoor zorgen dat de gebruiker (de vertrouwenspersoon) al zijn statistische gegevens kan invullen in een digitale omgeving. De gebruiker krijgt een interface zoals die eruit zag op papier. Dit zorgt voor een gebruiksvriendelijkere applicatie. De ingevulde data van de gebruiker wordt opgeslagen in een database en wordt vervolgens gebruikt om een afdruk te maken in pdf formaat die de gebruiker dan kan bekijken of afdrukken. De applicatie moet ook een dynamisch archief hebben waar hij of zij bepaalde maandelijkse interventieformulieren kan beheren. Bij deze applicatie moet er rekening gehouden worden met de hi¨erarchie binnen preventie. Meer bepaald de verschillende rechten die worden gehanteerd binnen de applicaties van Agora. Specifieker wil dit zeggen dat de applicatie 3 niveaus van rechten moet hebben, namelijk: cpa, school en vertrouwenspersoon. De vertrouwenspersoon heeft alle mogelijke rechten (lees- en schrijfrechten). Dit is zo omdat er vertrouwelijke informatie wordt verwerkt en de vertrouwenspersoon enkel diegene is die deze mag aanpassen. Bepaalde interventieformulieren kunnen ook worden gedeactiveerd en geactiveerd door de vertrouwenspersoon. Op het niveau van school krijgt de gebruiker een archief te zien met alle aangemaakte interventieformulieren van zijn of haar school. De gebruiker kan deze interventieformulieren enkel consulteren (afdruk bekijken) in pdf formaat. Hij of zij kan geen nieuwe interventieformulieren aanmaken of wijzigen. Hetzelfde geldt op cpa niveau. Het enige verschil is dat op cpa niveau de gebruiker een archief te zien krijgt met alle aangemaakt interventieformulieren van alle scholen waarover hij of zij co¨ordineert.
2.4.2
Resultaten
Het was de bedoeling om op vertrouwenspersoon niveau een digitale omgeving te ontwikkelen waar deze een interventieformulier kan invullen per maand. Hij of zij moet dit maandelijkse interventieformulier ook kunnen beheren (wijzigen, deactiveren, activeren, verwijderen of de afdruk bekijken). Op niveau van cpa en school moet de gebruiker een overzicht hebben van alle aangemaakt interventieformulieren. Hij of zij moet de afdruk van deze formulieren kunnen zien. Het resultaat van deze eerste applicatie die ontwikkeld werd is goed. De gebruiker krijgt bij het starten van de applicatie de home pagina te zien die algemene informatie over de applicatie weergeeft. De applicatie heeft een tabblad gestuurde manier van werken, en heeft ook 2 tabbladen genaamd ¨ınterventies¨en ¨afdruk”. De volgende figuur illustreert dit. Op het tabblad ¨ınterventies”krijgt de gebruiker een nieuw knop te zien waar hij of zij op kan
HOOFDSTUK 2. BESPREKING
13
Figuur 2.8: Tabblad structuur op vertrouwenspersoon niveau drukken om een nieuw maandelijks interventieformulier aan te maken. De gebruiker krijgt een venster te zien waar hij of zij een maand kan kiezen en statistieken kan ingeven. In appendix figuur A.1. is een voorbeeld van zo een interventieformulier beschikbaar. Eens de gebruiker klaar is met het ingeven van de statistieken kan de data worden opgeslagen in de database, via de knop ¨opslaan”. Een voorbeeld van zo’n interventieformulier is te zien in figuur 2.9. Vervolgens komt de gebruiker terug op het tabblad interventies. Dit tabblad heeft ook een dynamisch archief waar alle bestaande maandelijkse interventieformulieren te zien zijn. Dit wil zeggen dat het archief zich aanpast bij een bepaalde verandering. Bijvoorbeeld eens de gebruiker een nieuw interventieformulier aanmaakt, komt dit bij het archief. En dit zonder dat de pagina moet worden herladen. Het archief verandert ook eens de gebruiker een interventieformulier deactiveert, activeert of verwijdert. Het archief heeft ook een actie kolom waarin bepaalde klikbare iconen aanwezig zijn. De eerste is de wijzig icoon. Dit opent het venster waar de gebruiker de statistieken kan ingeven. De verschillende invulvelden zijn echter al ingevuld met de data van dit interventieformulier. De gebruiker kan echter de waardes van de invulvelden veranderen. Daarna kan de gebruiker via de knop opslaan de wijzigingen doorvoeren en wijzigen in de database. Zoals eerder al vermeld heeft de actie kolom ook een deactiveer, activeer en verwijder icoon, die een interventieformulier deactiveren, activeren en verwijderen. Een laatste icoon van de actie kolom is de ¨afdruk¨ıcoon. Dit icoon opent een nieuw tabblad in de browser waar een afdruk met de correcte data van het overeenstemmende verslag zichtbaar is in pdf formaat. Er werd gekozen voor het openen van de afdruk in een tabblad zodat de gebruiker eerst kan zien hoe de afdruk eruit ziet en vervolgens deze kan downloaden. Op school en cpa niveau is er 1 tabblad zichtbaar genaamd¨ınterventies”. Ter illustratie zie figuur 2.10 hieronder. Het bevat een archief waar alle aangemaakte interventieformulieren zichtbaar zijn. De gebruiker heeft enkel de mogelijkheid om de afdruk van een interventieformulier te raadplegen. De acties: wijzig, deactiveer, activeer en verwijder zijn hier niet beschikbaar. Dit komt doordat de gebruiker hier geen rechten op heeft.
Figuur 2.9: Tabblad structuur op school en cpa niveau Na enige tijd werd deze applicatie onderworpen aan een uitgebreide testdemo. Na deze demo
HOOFDSTUK 2. BESPREKING
14
werd geconcludeerd dat de applicatie klaar is om naar de volgende fase over te gaan, namelijk de testfase. De applicatie werd op de testserver van Agora gezet en uitvoering getest door het testteam. Tijdens de testfase werden er bepaalde problemen opgemerkt die uiteindelijk ook werden opgelost. Met het resultaat, kon er geconcludeert worden dat: de applicatie naar behoren werkt, zo goed als bugfree is en voldoet aan alle vooropgestelde doelstellingen. Dus, de applicatie is volledig klaar.
2.4.3
Problemen en oplossingen
Dit was de eerste en ook de kleinste applicatie die ontwikkeld werd. Hierdoor waren de tegengekomen problemen erg beperkt. Er waren 2 merkbare problemendie enige tijd vergden. Zo lag het eerste probleem in de implementatie van de keuze van een maand. Specifieker lag het probleem in het tonen van de maanden waar nog geen maandelijks interventieformulier van bestond. Dit probleem werd uiteindelijk opgelost door gebruik te maken van array dif om zo een onderscheid te maken tussen de maanden waar al een maandelijks interventieformulier van bestond en de maanden waar dit nog niet het geval was. Het tweede probleem lag in de afdruk van een interventieformulier. Deze afdruk werd eerst opgesteld en getoond in html. Uiteindelijk moest deze geconverteerd worden naar pdf formaat. Door de externe promotor werd gesuggereerd om gebruik te maken van de klasse Html2Pdf. Deze klasse toonde echter problemen bij het tonen van bepaalde tabellen, namelijk dat deze uit positie waren. Daarom werd er overgeschakeld naar de klasse Dompdf. Hier lag echter het probleem in het gebruik van de klasse in de applicatie. Dit werd opgelost door meer informatie hierover op te zoeken om zo het hele conversie proces beter te begrijpen.
2.5
Maandverslag
2.5.1
Doelstellingen
De tweede applicatie waarvan de doelstellingen zullen worden toegelicht is de applicatie maandverslag. De applicatie moet een tabblad gestuurde opbouw hebben. De gebruiker moet per tabblad bepaalde delen van het maandverslag kunnen invullen. Zo is er het tabblad voor de configuratie van klassen en personeel. Hier kan de gebruiker alle klassen, het aantal leerlingen en lesuren per klas configureren. Ook kan de gebruiker van dit tabblad personeelsconfiguraties doorvoeren, zoals de functies die in een school van toepassing zijn en hoeveel personeelsleden er deel- en voltijds werken. Nadat de configuratie is gebeurd van zowel de klassen en het personeel, kan de gebruiker beginnen met het ingeven van de ongevalgegevens voor leerlingenongevallen. Dit gebeurd onder het tabblad leerlingen. In dit tabblad krijgt de gebruiker de mogelijkheid om een nieuw maandverslagonderdeel voor leerlingenongevallen aan te maken. Als de gebruiker
HOOFDSTUK 2. BESPREKING
15
hiervoor kiest krijgt hij of zij een interface te zien waar alle klassen en hun overeenstemmende gegevens al automatisch ingeladen worden. Dit komt doordat de gebruiker al eerder de klassen heeft geconfigureerd in het configuratie tabblad. De gebruiker kan vervolgens per klas bepaalde ongevalgegevens ingeven die dan in een database worden opgeslagen. In dit tabblad is er ook een archief aanwezig. Dit is een tabel waarin alle bestaande maandverslagenonderdelen staan. De gebruiker kan mogelijke wijzigingen doorvoeren of een maandverslagonderdeel deactiveren, activeren, verwijderen of bekijken als afdruk in pdf formaat. Hetzelfde geldt voor het tabblad personeel. In dit tabblad is er ook een archief aanwezig met de zelfde functies en ook een overzicht waar ongevallen kunnen worden ingegeven. Hier gaat het echter om personeelsongevallen. Ook bij deze applicatie moet er rekening gehouden worden met de hi¨erarchie binnen preventie, meer bepaald de rechten die een gebruiker heeft op de applicatie. De applicatie bevat 2 rechtenniveau’s: school en cpa. Op school niveau kan de gebruiker de input doen en heeft de meeste rechten (lees- en schrijfrechten). Hij of zij kan klassen en personeelsfuncties configureren. Ook kan hij of zij onderdelen van het maandverslag aanmaken, wijzigen, deactiveren, activeren of consulteren als afdruk in pdf formaat. De gebruiker kan ook het definitieve maandverslag raadplegen als afdruk. Op cpa niveau heeft de gebruiker minder rechten als op school niveau. Hij of zij krijgt maar 1 tabblad te zien met daarin een archief waarin alle aangemaakte maandverslagen staan van alle scholen waarover de gebruiker co¨ordineert. De gebruiker kan het archief ook filteren op schooljaar, school, maand en periode (tussen een beginen einddatum). Ook kan de gebruiker de afdruk van een bepaald maandverslag raadplegen.
2.5.2
Resultaten
Voor deze applicatie was het de bedoeling om op school niveau een digitale omgeving te cre¨eren waar de gebruiker een maandverslag i.v.m. ongevallen van leerlingen en/of personeel kan aanmaken en beheren. De gebruiker moet ook een bepaalde manier van klassen en personeelconfiguratie hebben. Op niveau van cpa moet een cpa een overzicht hebben van alle aangemaakt maandverslagen. Ook bij deze applicatie mag de cpa enkel de afdruk raadplegen van een bepaald maandverslag. Zoals bij de vorig besproken applicatie heeft deze ook een tabbladgestuurde manier van werken. Dit cre¨ert een gevoel van bekendheid bij de gebruiker over de verschillende applicaties heen. Op niveau van school heeft de applicatie 4 tabbladen: leerlingen, personeel, configuratie en afdruk. De volgende figuur verduidelijkt dit. In het tabblad ”leerlingen”kan de gebruiker de maandelijkse ongevallen van leerlingen beheren. De gebruiker kan een nieuw maandelijks leerlingenongevallen verslag aanmaken. Dit gebeurt door op de knop ”nieuw”te drukken. Vervolgens opent er een venster waar de gebruiker een maand kan kiezen, waarna de gebruiker een venster te zien krijgt waar hij of zij statistieken kan ingeven. Dit venster is als illustratie beschikbaar als figuur A.2. in appendix. Eens de gebruiker tevreden is met het verslag kan er op de opslaan knop worden gedrukt om de data
HOOFDSTUK 2. BESPREKING
16
Figuur 2.10: Tabblad structuur op school niveau op te slaan in de database. Dit tabblad heeft ook een dynamisch archief waar alle verslagen per maand te zien zijn. De verslagen in dit tabblad zijn tevens ook wijzigbaar, deactiveerbaar, activeerbaar en verwijderbaar. Ook kan de gebruiker een afdruk in pdf formaat bekijken. Het volgende tabblad is dat van de rpersoneelsongevallen. Dit tabblad biedt grotendeels dezelfde functionaliteit als die van de leerlingen. Het enige verschil is dat dit gaat over ongevallen van personeel. Dit betekent dat het venster waar de gebruiker de statistieken kan invullen anders is opgebouwd. Figuur A.3. in appendix bevat een voorbeeld van dit venster. Het volgende tabblad is het configuratie tabblad. Hier kan de gebruiker de klassen en personeelsleden van een bepaalde school configureren. Hier geldt tevens dezelfde werking. Eerst moet er op de ”nieuw”knop worden gedrukt om een klas aan te maken. Vervolgens komt deze klas in het dynamisch archief terecht. In dit archief kan tevens ook een klas worden gewijzigd, gedeactiveerd, geactiveerd of verwijderd. Onder de configuratie van de klassen is er ook een configuratie van personeelsleden in dit tabblad. Hier geldt dezelfde werking als de configuratie van klassen. Het laatste tabblad is het afdruk tabblad waar een archief aanwezig met alle definitieve maandverslagen. Dit is een tabel waar er per onderdeel een kolom is (leerlingen, personeel en vertrouwenspersoon). Deze kolommen moeten allemaal aangevinkt zijn opdat er een afdruk in pdf formaat aanwezig is om te bekijken. Met andere woorden, alle onderdelen (leerlingenongevallen, personeelsongevallen en interventies) moeten zijn aangemaakt van een bepaalde maand opdat het definitief maandverslag van deze maand kan worden aangemaakt. Op cpa niveau is er 1 tabblad zichtbaar genaamd: ”verslagen”. Er kan hiervoor naar de volgende figuur verwezen worden.
Figuur 2.11: Tabblad structuur op cpa niveau Het bevat een archief waar alle aangemaakte maandverslagen zichtbaar zijn van alle scholen waar de gebruiker (cpa) over co¨ordineert. De gebruiker heeft enkel de mogelijkheid om een afdruk van een maandverslag te raadplegen. De acties: wijzig, deactiveer, activeer en verwijder zijn hier niet beschikbaar. Dit komt doordat de gebruiker (cpa) hier geen rechten op heeft. Boven het archief is er ook een filter aanwezig. Met deze filter kan de gebruiker het archief filteren op schooljaar, maand, school of periode tussen 2 data.
HOOFDSTUK 2. BESPREKING
17
Figuur 2.12: Archief van maandverslagen op cpa niveau Na enige tijd werd deze applicatie onderworpen aan een uitgebreide testdemo. Na deze demo werd geconcludeerd dat de applicatie klaar was om naar de volgende fase over te gaan, namelijk de testfase. De applicatie werd op de testserver van Agora gezet en uitvoering getest door het testteam. Tijdens de testfase werden er bepaalde problemen opgemerkt die uiteindelijk ook werden opgelost. Met het resultaat kon geconcludeert worden dat: de applicatie naar behoren werkt, zo goed als bugfree is en voldoet aan alle vooropgestelde doelstellingen.
2.5.3
Problemen en oplossingen
Bij de ontwikkeling van deze applicatie doken ook problemen op. Een eerste probleem lag in de opbouw van het ongevallenoverzicht van de leerlingen en het personeel. Het overzicht van de leerlingenongevallen is een tabel. Deze tabel bevat per klas een rij waar er ongevalstatistieken kunnen worden ingevuld. De opbouw van deze rijen gebeurt echter automatisch aan de hand van een while lus van een bepaalde query naar de database. Dit wil zeggen dat er zoveel rijen zullen worden aangemaakt als er klassen zijn. Bij de aanvang van de ontwikkeling van deze applicatie werd er vanuitgegaan dat er in de database enkel ongevalgegevens per klas zouden worden opgeslagen als er meer dan 1 ongeval zou zijn. Zo zou er per klas waar geen ongevalgegevens van waren, toch een rij moeten worden gegenereerd met alle waarden op 0. Dit zorgde voor problemen bij de automatische opbouw van de rijen. Na enig overleg met de externe promotor bleek dit een misverstand. Het probleem is uiteindelijk opgelost door ook ongevalgegevens in de database op te slaan waar er geen ongevallen van zijn. Bij het overzicht van de personeelsongevallen was hetzelfde probleem een feit, maar dan voor personeelsfuncties in plaats van klassen.
HOOFDSTUK 2. BESPREKING
2.6 2.6.1
18
Jaarverslag Doelstellingen
De derde en tevens ook de laatste applicatie waarvan de doelstellingen zullen worden toegelicht is de applicatie jaarverslag. Zoals bij de vorig besproken applicaties moet er ook bij deze applicatie rekening gehouden worden met de hi¨erarchie binnen preventie en de rechten die een gebruiker heeft op de applicatie. De applicatie bevat 2 rechtenniveau’s: school en cpa. Op school niveau is de applicatie voor een deel gelijk aan de applicatie maandverslag. Zo heeft de applicatie ook een tabblad gestuurde manier van werken. Deze applicatie bevat 2 tabbladen genaamd: ”formulier¨en ¨afdruk”. De gebruiker kan onder het tabblad ”formulier¨een nieuw jaarverslag aanmaken. De gebruiker krijgt vervolgens een interface te zien waar veel zaken al van zijn ingevuld. Dit komt doordat er sprake is van een zekere automatische optelling. Er gebeurd een optelling van alle statistieken van alle maandverslagen van een boekjaar. Deze optelling zorgt voor een zekere makkelijkheid naar de gebruiker toe. Het tabblad bevat ook een archief. Dit archief heeft echter een extra kolom vergeleken met de archieven van de andere applicaties. In deze extra kolom zijn alle maanden van een jaar zichtbaar. Hierin wordt nog een onderscheid gemaakt tussen de maanden waarvan er een maandverslag is aangemaakt en de maanden waarvan dit niet het geval is. De jaarverslagen in het archief zijn ook wijzigbaar en kunnen gedeactiveerd, geactiveerd, verwijderd of bekeken worden in pdf formaat. Deze applicatie heeft geen configuratie tabblad omdat de configuratie van klassen en personeel al in de applicatie maandverslag gebeurt. Op cpa niveau krijgt de gebruiker 1 tabblad te zien genaamd ”verslagen”. Dit tabblad bevat net zoals op school niveau een archief. In dit archief staan alle aangemaakte jaarverslagen van alle scholen waarover de gebruiker co¨ordineert. De gebruiker kan enkel de afdruk van een bepaald jaarverslag raadplegen. Het archief van dit tabblad kan ook worden gefilterd op jaar en school.
2.6.2
Resultaten
Tenslotte de resultaten van de laatste applicatie. Voor deze applicatie was het de bedoeling om op school niveau een digitale omgeving te ontwikkelen waar de gebruiker een jaarverslag i.v.m. ongevallen van leerlingen en/of personeel kan beheren. Zoals bij de vorig besproken applicatie heeft deze ook een tabbladgestuurde manier van werken. Op niveau van cpa moet er een overzicht zijn van alle aangemaakt jaarverslagen. De cpa moet de afdruk van deze jaarverslagen kunnen zien. Op school niveau zijn er 2 tabbladen aanwezig bij deze applicatie: formulier en afdruk. De volgende figuur illustreet dit. Onder het tabblad ”formulier”kan de gebruiker een jaarverslag aanmaken. Dit gebeurt door op de knop ”nieuw”te drukken die een keuzevenster teweeg brengt waar de gebruiker een boekjaar
HOOFDSTUK 2. BESPREKING
19
Figuur 2.13: Tabblad structuur op school niveau kan kiezen. Vervolgens krijgt de gebruiker een venster te zien dat is opgesplitst in 3 tabbladen genaamd ¨ongevallen”, ”jap”(jaar actieplan) en ”psychosociale risico’s”. Een figuur van dit dialoogvenster is te vinden als figuur A.4. in appendix. Het eerste tablad ¨ongevallen”laat 3 tabellen zien. In deze tabellen staan statistieken in verband met ongevallen van leerlingen en personeel. Deze statistieken zijn optellingen van alle maanden van een jaar en zijn al automatisch ingevuld. Het tweede tabblad ”jap”laat enkele inputvelden zien waar de gebruiker verschillende data moet ingeven in verband met het jaar actie plan. Dit tabblad bevat een knop ¨opslaan”die de gebruiker op kan gebruiken om de ingevulde data op te slaan in de database. Het derde tabblad ”psychosociale risico’s”bevat ook inputvelden waar de gebruiker data kan ingeven. Ook bevat het tabblad informatie in verband met interventies op vlak van psychosociale risico’s. Het is een kopie van het interventieformulier dat de gebruiker invult in de applicatie psychosociale risico’s. Deze kopie wordt automatisch ingevuld. In dit tabblad is er ook een knop ¨opslaan¨aanwezig waar de gebruiker op kan drukken om de ingevulde data op te slaan in de database. Het tabblad ”formulier”bevat ook een dynamich archief. Met behulp van dit archief kan de gebruiker bepaalde jaarverslagen wijzigen, deactiveren, activeren of verwijderen. Het archief bevat ook een afdruk functie dat een pdf afdruk genereerd waarin alle gegevens van het formulier in staan. Het tabblad afdruk bevat enkel een archief waar alle jaarverslagen te zien zijn. Wat wel merkbaar is, is dat het archief 4 kolommen bevat genaamd: formulier, leerlingen, personeel en vp. Deze kolommen kunnen ofwel een vink bevatten ofwel een kruis. Een vink betekent dat alle 12 maandelijkse verslagen voor dat onderdeel zijn aangemaakt. Als dit niet het geval is zal er een kruis te zien zijn voor dat onderdeel. Dit geldt echter niet voor de kolom ”formulier”. Hier wordt er gekeken of er een formulier is aangemaakt in het vorige besproken tabblad formulier. De kolom actie dat de knop ¨afdruk”bevat heeft een soortgelijke functie. De gebruiker krijgt een afdruk icoon te zien als de vorig besproken kolommen een vink bevatten. Bij het drukken op dit icoon zal het zogenaamde formulier A gegenereerd worden. Als dit niet het geval is dan krijgt de gebruiker een verboden icoon te zien en zal het ook niet mogelijk zijn om de afdruk te genereren. Op cpa niveau is er nog niets ontwikkeld. Er is wel aan tabblad structuur aanwezig. Er is 1 tabblad aanwezig maar deze is leeg. Ter illustratie kan naar de volgende figuur verwezen worden. De reden voor het niet kunnen afwerken van dit rechtenniveau van deze applciatie is tijdsgebrek. Tijdens de testfase van de vorige applicatie maandverslag waren er problemen naar boven gekomen waar veel tijd aan werd besteedt voor het oplossen ervan.
HOOFDSTUK 2. BESPREKING
20
Figuur 2.14: Tabblad structuur op cpa niveau Omdat deze applicatie nog niet volledig af is, werd deze aan een gedeeltelijke testdemo onderworpen. Ondanks dat de applicatie niet volledig af is geraakt werd deze toch op de testserver geplaatst. Zo kon het testteam van Agora hetgene testen dat wel klaar is. Met het resultaat kon geconcludeert worden dat de applicatie is niet volledig klaar is. Het gedeelte dat wel klaar is, is in de testfase en wordt uitvoering getest door het testteam.
2.6.3
Problemen en oplossingen
Tijdens de ontwikkeling van deze applicatie was er een probleem dat voor veel tijdsverlies zorgde. In deze applicatie was het de bedoeling dat de gebruiker niet veel invulwerk meer zou hebben omdat bepaalde data al gekend zou zijn van de applicatie maandverslag. De data van alle maanden van een boekjaar zou dan worden opgeteld om zo tot data per jaar te komen. Het probleem lag in de link tussen deze applicatie en de applicatie maandverslag. Opdat de applicatie correct zou kunnen samenwerken met de applicaties psychosociale en maandverslag, zou er een manier moeten zijn om een jaarverslag te kunnen aanmaken. Het was niet bekent na welke actie van de gebruiker een nieuw jaarverslag zou kunnen worden aangemaakt. Na enig overleg met de externe promotor werd dit misverstand opgelost. Een jaarverslag wordt aangemaakt eens er een nieuw formulier van een jaarverslag wordt aangemaakt. Dit was echter niet het enige probleem dat werd tegengekomen tijdens de ontwikkeling van deze applicatie. Een tweede probleem lag in de wijzig functie van een formulier. Omdat het formulier is opgebouwd met behulp van de jQuery UI tabs in dialog, was het niet mogelijk om bepaalde waardes rechtstreeks tussen de tabbladen door te geven. Om de data van hetzelfde boekjaar te kunnen halen voor elk tabblad moest er gewerkt worden met dezelfde id. Omdat deze id niet rechtstreek kon worden doorgegeven tussen de verschillende tabbladen in het dialoogvenster moest deze worden opgeslagen als een sessievariabele. Dit zorgde voor dezelfde id waarde op alle plaatsen in de applicatie. Na het sluiten van het dialoogvenster werd deze sessievariabele telkens terug op 0 gezet om geen problemen te krijgen met andere id’s.
Hoofdstuk
3
Besluit In dit hoofdstuk zal er een algemeen besluit worden genomen van de bachelorproef en de stage die werd gevolgd. Er zal gezien worden welke doelstellingen er werden opgesteld en of deze werden behaald. Tenslotte zullen er enkele opmerkingen komen in verband met verbeteringen voor in de toekomst. Voor de eerste applicatie psychosociale risico’s waren de doelstellingen de volgende. De applicatie moet de gebruiker op rechtenniveau vertrouwenspersoon de mogelijkheid geven om een interventieformulier te kunnen invullen. Hij of zij moet deze ook kunnen beheren aan de hand van een archief. De gebruiker moet ook een jaarlijks overzicht hebben waarin alle interventieformulieren per jaar worden gegroepeerd. Vervolgens moet er een afdruk gegenereerd worden in pdf formaat met daarin alle data dat de gebruiker heeft ingevuld. Op rechtenniveau’s school en cpa moet de gebruiker enkel in staat zijn om de door de vertrouwenspersoon aangemaakt interventiefomulieren te kunnen consulteren als afdruk in pdf formaat. Het resultaat voor deze applicatie is dat deze aan alle vooropgestelde doelstellingen voldoet. Op rechtenniveau vertrouwenspersoon kan de gebruiker een interventieformulier aanmaken. Hij of zij kan deze ook beheren (wijzigen, deactiveren, activeren of verwijderen) aan de hand van een archief waarin alle aangemaakte interventieformulieren te zien zijn. Hij of zij kan deze aangemaakte interventieformulieren raadplegen als afdruk in pdf formaat. De gebruiker heeft ook een tweede archief waarin alle aangemaakte interventieformulieren per jaar gegroepeerd staan. Bij dit archief kan de gebruiker enkel de afdruk consulteren. Op rechtenniveau’s school en cpa krijgt de gebruiker enkel de aangemaakte interventieformulieren te zien. Hij of zij kan deze enkel consulteren als afdruk in pdf formaat. Voor de tweede applicatie maandverslag waren de volgende doelstellingen vooropgesteld. Op school niveau moet de gebruiker in staat zijn een maandverslag te kunnen aanmaken. Hij of zij moet dit doen door de verschillende onderdelen hiervan aan te maken. Deze onderdelen moet de gebruiker ook kunnen beheren aan de hand van een archief. Deze maandverslagonderdelen moeten ook consulteerbaar zijn als afdruk in pdf formaat. De gebruiker moet ook klassen en personeelsfuncties van een bepaalde school kunnen configureren. Ook moet de applicatie het 21
HOOFDSTUK 3. BESLUIT
22
definitieve maandverslag genereren. Dit moet een samenstelling zijn van alle onderdelen van een maandverslag en het interventieformulier dat in de applicatie psychosociale risico’s wordt aangemaakt. Op cpa niveau mag de gebruiker enkel de aangemaakte maandverslagen zien. Hij of zij mag ze ook bekijken als afdruk in pdf formaat. Het resultaat voor deze applicatie is goed. De applicatie voldoet aan alle vooropgestelde doelstellingen. Op school niveau kan de gebruiker verschillende maandverslagonderdelen aanmaken, beheren en bekijken als afdruk aan de hand van een archief. Ook kan de gebruiker configuraties doen op vlak van klassen en personeel. Na het aanmaken van alle maandverslagonderdelen wordt het definitieve maandverslag gegenereerd en kan deze geconsulteert worden als afdruk in pdf formaat. Op cpa niveau kan de gebruiker alle aangemaakte maandverslagen zien waarover hij of zij co¨ordineert. Deze maandverslagen zijn ook consulteerbaar als afdruk in pdf formaat. De derde en tevens ook de laatste applicatie genaamd jaarverslag had de volgende doelstellingen. Op school niveau moet de gebruiker een jaarverslag kunnen aanmaken. Dit gebeurt door het aanmaken van het formulier dat bij een jaarverslag hoort. De gebruiker moet net zoals bij de vorige applicaties dit jaarverslag kunnen beheren aan de hand van een bijhorend archief. Dit aangemaakt formulier moet ook consulteerbaar zijn als afdruk. De gebruiker moet ook een overzicht hebben waar alle aangemaakte jaarverslagen terecht komen. Dit overzicht moet ook een afdruk functie hebben waar de gebruiker gebruik van kan maken en waar het zogenaamde formulier a of b gegenereerd wordt. Op cpa niveau moet de gebruiker een overzicht hebben van alle aangemaakte jaarverslagen. De gebruiker kan deze niet beheren. Hij of zij kan deze enkel bekijken als afdruk. Het resultaat voor deze applicatie is voldoende. De applicatie voldoet niet aan alle vooropgestelde doelstellingen. Op school niveau kan de gebruiker een jaarverslag aanmaken en beheren. Hij of zij kan de afdruk hiervan ook bekijken. Er is ook een overzicht aanwezig waar alle aangemaakte jaarverslagen te zien zijn. Deze jaarverslagen hebben ook een afdruk functie dat het formulier a of b genereert. Op cpa niveau zijn er geen resultaten geboekt. Algemeen kan worden besloten dat het over de 3 applicaties heen het merendeel van de doelstellingen werd behaald. Toekomst gericht kunnen er echter enkele verbeteringen plaatsvinden. Zo kan voor de applicatie jaarverslag het niveau cpa ontwikkeld worden. Ook moet de applicatie in zijn geheel (met alle rechtenniveau’s) getest worden op de testserver van Agora. Er kunnen ook verbeteringen plaatsvinden op vlak van tijdplanning. Dit was namelijk de hoofdoorzaak voor het niet volledig afwerken van de applicatie jaarverslag. Er werd ook te veel tijd besteed aan het oplossen van fouten in de applicaties psychosociale en maandverslag tijdens de testfase. Ook zou er in de toekomst gewerkt kunnen worden met nieuwere technologie¨en zoals onder andere HTML5. Een demo video van de ontwikkelde applicaties kan onder de volgende link gevonden worden: http://bit.ly/1TfmMzD
Bijlage
A
Appendix
23
BIJLAGE A. APPENDIX
24
Figuur A.1: Interventieformulier
BIJLAGE A. APPENDIX
Figuur A.2: Overzicht voor leerlingenongevallen
Figuur A.3: Overzicht voor personeelsongevallen
25
BIJLAGE A. APPENDIX
26
Figuur A.4: Formulier van een jaarverslag
Bibliografie
[1] jQuery the best javascript library. https://jquery.com/. [2] jQuery UI jquery user interface. https://jqueryui.com/. [3] PHP documentatie php. http://php.net/. [4] Stackoverflow q&a site for programmers. http://stackoverflow.com/. [5] W3schools the world’s largest webdeveloper site. http://www.w3schools.com/.
27