Handelswetenschappen en Bedrijfskunde Geel Bachelor in de toegepaste informatica
Analyse en ontwikkeling van een elektronische leeromgeving
CAMPUS Geel
Luca Andronico
Academiejaar 2009-2010
3
VOORWOORD Dit eindwerk is tot stand gekomen door drie maanden stage te lopen bij Mondi Belcoat te Duffel. Het bevat enerzijds informatie over het reilen en zeilen op een interne helpdesk. Anderzijds vind je hierin informatie over de analyse en ontwikkeling van een webapplicatie in PHP. Graag wil ik enkele mensen bedanken die mij geholpen hebben om dit eindwerk te realiseren. Om te beginnen zou ik graag Mondi Belcoat willen bedanken voor de kans die ze mij gegeven hebben om er stage te lopen. Verder bedank ik mijn stagebegeleider Kurt Geys om mij een stageopdracht te verschaffen en om me steeds bij te staan met raad en hulp. Ook mijn eindwerkbegeleidster Ria Spruyt wil ik bedanken voor tips bij het schrijven van mijn eindwerk. Ten slotte wil ik mijn ouders en mijn vriendin nog bedanken voor hun steun gedurende deze periode.
4
SAMENVATTING Dit eindwerk is een uitgebreid verslag van mijn stage bij Mondi Belcoat. Werknemers van Mondi Belcoat moeten soms een nieuwe opleiding of cursus volgen. Wanneer er nieuwe voorschriften zijn bijvoorbeeld i.v.m. de veiligheid op de werkvloer, wordt er ook van de werknemers verwacht dat ze deze voorschriften kennen en er zich aan houden. Om de medewerkers de mogelijkheid te geven zich deze opleidingen en cursussen eigen te maken, kreeg ik de opdracht om een gebruiksvriendelijke elektronische leeromgeving te ontwikkelen. Met deze applicatie kan een werknemer zonder te studeren een cursus leren op basis van dagelijkse herhalingen. Na een periode van een maand krijgt de werknemer een kans om te bewijzen dat hij de cursus kent onder de vorm van een examen. Als hij hiervoor slaagt, wordt de cursus weggeschreven naar zijn voltooide cursussen, anders zal hij nog herhalingen moeten blijven maken en later opnieuw proberen. Voor nieuwe werknemers is de applicatie ook handig om een routine te kweken en om zo beter en sneller aan de slag te kunnen gaan zonder de hulp van andere werknemers. In de applicatie is er ook een gedeelte voorzien om ze te beheren. In dit admin-deel kan een beheerder cursussen,gebruikers,vragen,categorieën toevoegen, wijzigen en verwijderen. De beheerder kan ook vragen uploaden via een csv- of txt-bestand. Het is ook mogelijk om eventuele afbeeldingen of geluidfragmenten bij een vraag te uploaden. De applicatie is niet enkel van toepasbaar bij Mondi Belcoat, maar kan door diverse organisaties gebruikt worden, zoals scholen en andere bedrijven. De applicatie draait op een personal computer met een Apache webserver, gebruikt een MySQL databasesysteem en is geprogrammeerd in PHP. De applicatie werd geprogrammeerd op basis van drie lagen. Deze bestaan uit een grafische interface, een database en een laag waar al het werk van de applicatie gedaan wordt. Dit geeft de programmeur een duidelijk overzicht van de verschillende klassen en functionaliteiten. Naast het maken van de applicatie heb ik ook meegedraaid als assistent van de ITcoördinator. Hierbij heb ik vooral veel ervaring opgedaan in het dagelijks onderhoud van de IT binnen een organisatie.
5
INHOUDSTAFEL VOORWOORD ..................................................................................................... 2 SAMENVATTING .................................................................................................. 4 INHOUDSTAFEL .................................................................................................. 5 INLEIDING ......................................................................................................... 8 1
MONDI BELCOAT .................................................................................. 9
1.1 1.2 1.3 1.4
Structuur Mondi Group ......................................................................... 9 Historiek ............................................................................................ 11 Activiteiten ......................................................................................... 11 Overzicht IT-departement .................................................................. 12
2
OPDRACHTEN ..................................................................................... 14
2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.3.10 2.3.11 2.3.12 2.3.13
Assistentie IT-coördinator .................................................................. 14 Beveiliging ............................................................................................14 Ondersteuning .......................................................................................15 Nieuwe medewerkers ..............................................................................16 E-mail ...................................................................................................17 Onderhoud IT-database ..........................................................................17 Batchfiles beheren ..................................................................................17 Beheer stock..........................................................................................18 Onderhoud IT binnen de organisatie .........................................................18 Elektronische leeromgeving ............................................................... 18 Aanleiding en achtergrond van het project .................................................18 Business Case ........................................................................................18 Verwacht resultaat .................................................................................18 Omschrijving van de primaire doelgroep ...................................................19 Derden: andere stakeholders ...................................................................19 Gebruikte software............................................................................. 19 Netbeans IDE ........................................................................................19 REAL VNC ..............................................................................................19 Microsoft Office Outlook ..........................................................................20 Microsoft Office Access ............................................................................20 Norton Ghost .........................................................................................20 Trend Micro Officescan Antivirus...............................................................20 MySQL ..................................................................................................21 PHPMyAdmin .........................................................................................21 Apache webserver ..................................................................................21 Gliffy ....................................................................................................21 Crimson Editor .......................................................................................21 Microsoft Office Visio ..............................................................................22 ZBar .....................................................................................................22
3
ANALYSE EN AANPAK ELEKTRONISCHE LEEROMGEVING .................... 23
3.1 3.1.1 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9
Functionele Eisenanalyse ................................................................... 23 Use case diagram op sea-level .................................................................23 Use case scenario’s ............................................................................ 23 Inloggen ...............................................................................................24 Leerpakket toevoegen aan account ...........................................................24 Leerpakket studeren ...............................................................................25 Statistieken bekijken ..............................................................................26 Leerpakket verwijderen van account .........................................................26 Herhalingen maken ................................................................................27 Account verwijderen ...............................................................................28 Wachtwoord aanpassen ...........................................................................28 Registreren ............................................................................................29
6
3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.17 3.2.18 3.2.19 3.2.20 3.2.21 3.2.22 3.2.23 3.2.24 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4 3.5 3.6 3.7 3.8 3.9 3.10
Gebruiker wijzigen..................................................................................30 Gebruiker verwijderen ............................................................................30 Nieuwe gebruiker aanmaken ....................................................................31 Leerpakket wijzigen ................................................................................31 Leerpakket verwijderen ...........................................................................32 Nieuw leerpakket aanmaken ....................................................................33 Categorie wijzigen ..................................................................................33 Categorie verwijderen .............................................................................34 Nieuwe categorie aanmaken ....................................................................34 Vragen wijzigen .....................................................................................35 Vraag verwijderen ..................................................................................36 Nieuwe vragen aanmaken via txt .............................................................36 Nieuwe vragen aanmaken via cvs .............................................................37 Beheer tekst startpagina .........................................................................37 Bekijk uploadmap ...................................................................................38 Niet-functionele eisenanalyse ............................................................ 39 Bruikbaarheid ........................................................................................39 Schaalbaarheid ......................................................................................39 Veiligheid ..............................................................................................39 Kritikaliteit ............................................................................................39 Uitvoeringsfrequentie en responstijd .........................................................40 Betrouwbaarheid ....................................................................................40 Andere niet-functionele eisen ...................................................................40 Attributenlijst ..................................................................................... 40 Relationeel schema ............................................................................ 41 Relatiebeschrijving............................................................................. 42 Foreign key specificaties .................................................................... 43 Installatie Apache webserver ............................................................. 43 Installatie PHP ................................................................................... 44 Installatie database MySQL ................................................................ 44
4
WIREFRAMES ..................................................................................... 45
4.1 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.2.10 4.2.11 4.2.12 4.2.13 4.2.14 4.2.15 4.2.16
Wireframes gebruiker ........................................................................ 45 Inloggen ...............................................................................................45 Persoonlijke leerpakketten .......................................................................46 Zoek leerpakketten .................................................................................46 Bekijk je statistieken ..............................................................................47 Wachtwoord aanpassen ...........................................................................48 Account verwijderen ...............................................................................48 Wireframes beheerder........................................................................ 49 Inloggen ...............................................................................................49 Beheer gebruikers ..................................................................................49 Gebruiker wijzigen..................................................................................50 Gebruiker toevoegen ..............................................................................51 Beheer categorieën.................................................................................51 Categorie wijzigen ..................................................................................51 Categorie aanmaken ...............................................................................52 Beheer leerpakketten ..............................................................................52 Leerpakket wijzigen ................................................................................53 Leerpakket aanmaken .............................................................................54 Beheer vragen .......................................................................................54 Vragen aanpassen ..................................................................................55 Vraag aanmaken ....................................................................................55 Vragen verwijderen ................................................................................56 Beheer tekst startpagina .........................................................................56 Bekijk uploadmap ...................................................................................57
7
5
ELEKTRONISCHE LEEROMGEVING ...................................................... 58
5.1 5.2 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 5.4.1 5.4.2 5.4.3 5.4.4 5.4.5 5.5 5.6 5.7 5.7.1 5.7.2 5.7.3 5.7.4 5.7.5 5.7.6 5.7.7 5.7.8 5.7.9 5.7.10 5.7.11 5.7.12 5.7.13 5.7.14 5.8 5.8.1 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.7 5.8.8 5.8.9 5.8.10 5.8.11 5.8.12 5.8.13 5.8.14
Programmeerstructuur ....................................................................... 58 Lay-out ............................................................................................... 59 Look and Feel ..................................................................................... 59 Index.php .............................................................................................60 Access.php ............................................................................................60 Menu.php ..............................................................................................60 Content.php ..........................................................................................60 Execute.php ..........................................................................................60 Beveiliging ......................................................................................... 60 Rechten ................................................................................................61 SQL-injection .........................................................................................61 Controle gebruikersinvoer met javascript ..................................................61 Bevestiging CRUD-acties .........................................................................62 Captcha ................................................................................................62 Anysurfer ........................................................................................... 62 JQuery ................................................................................................ 62 Pagina’s gebruiker ............................................................................. 63 Home ...................................................................................................63 Registratie .............................................................................................64 Log-in ...................................................................................................64 Contact & gastenboek .............................................................................64 Persoonlijke pagina gebruiker ..................................................................65 Persoonlijke leerpakketten .......................................................................66 Leerpakket toevoegen aan account ...........................................................66 Leerpakket oefenen ................................................................................67 Statistieken bekijken ..............................................................................68 Herhalingen oefenen ...............................................................................69 Examen maken ......................................................................................69 Wachtwoord aanpassen ...........................................................................69 Forum bekijken ......................................................................................69 Wachtwoord vergeten .............................................................................69 Pagina’s beheerder ............................................................................ 70 Log-in beheerder ....................................................................................70 Beheerpaneel .........................................................................................70 Gebruikers ............................................................................................70 Gebruiker aanpassen ..............................................................................71 Categorieën ...........................................................................................71 Leerpakketten ........................................................................................72 Leerpakket aanpassen ............................................................................72 Beheer vragen .......................................................................................72 Vragen toevoegen ..................................................................................73 Vragen handmatig invoeren .....................................................................74 Vragen aanpassen ..................................................................................75 Vragen verwijderen ................................................................................75 Beheer tekst startpagina .........................................................................75 Bekijk afbeeldingen uploadmap ................................................................76
BESLUIT…. ....................................................................................................... 77 LITERATUURLIJST ............................................................................................ 78 BIJLAGE 1: PROCEDURE VOOR HET VERWIJDEREN VAN SCHADELIJKE SOFTWARE ......................................................................................... 79 BIJLAGE 2: CONFIGURATIE VAN OUTLOOK MET MICROSOFT EXCHANGE SERVER .............................................................................................. 84 BIJLAGE 3: UITWERKING BATCHFILE ............................................................... 87
8
INLEIDING Dit eindwerk gaat over de opdrachten die ik gedurende drie maanden heb uitgevoerd tijdens mijn stage bij Mondi Belcoat. Eerst en vooral zal ik mijn stagebedrijf en zijn werkzaamheden voorstellen. Verder beschrijf ik mijn taken tijdens deze periode. Enerzijds stond ik in voor assistentie van de IT-coördinator en het runnen van de helpdesk. Anderzijds heb ik gewerkt aan een elektronische leeromgeving. In dit werk ga ik vooral uitgebreid in op het programmeren van de elektronische leeromgeving. Deze leeromgeving moet voor de werknemers een handig alternatief zijn bij het studeren van cursussen of opleidingen. Op basis van herhalingen kunnen zij zich alle nodige kennis van een opleiding verschaffen. Deze opdracht heb ik gerealiseerd in de vorm van een webapplicatie in PHP. De applicatie is gebaseerd op het drielagenmodel.
9
1
MONDI BELCOAT
In dit hoofdstuk vind je een voorstelling van mijn stagebedrijf en zijn werkzaamheden.
Figuur 1-1: Logo Mondi 1.1
Structuur Mondi Group
De Mondi Group is ingedeeld in 2 hoofdgroepen: Europe & International en ZuidAfrika(South Africa). Dit kan je zien op figuur 1-2.
Figuur 1-2: Structuur Mondi Group
De belangrijkste productie gebeurt in Europe & International. Hier worden 3 bedrijfsstromen gerealiseerd: uncoated papier(UFP), gegolfd papier, zakken en specialiteiten. In Zuid-Afrika doet men aan bosbeheer, productie van pulp, productie van uncoated papier(UFP) en containerboards. De Mondi group bezit verder nog belangrijke aandelen in verschillende organisaties wereldwijd. De hoofdzetel voor Europa bevindt zich in Oostenrijk(Wenen). De naam Mondi is afgeleid van een Zuid-Afrikaanse bloem, de ‘Mondia whitei’. Zuid-Afrika is de thuishaven van het Mondi Group hoofdkwartier. Mondi speelt een grote rol in de Zuid-
10
Afrikaanse economie en is een belangrijke werkgever in de regio’s waar ze actief zijn. Mondi is beursgenoteerd op de Johannes Stock Exchange. Mondi Belcoat valt onder de Mondi Group. In 50 jaar tijd is Mondi Belcoat een groeigeoriënteerde, internationale leverancier geworden van kwaliteitsproducten voor o.a. de automobielsector, de bouw, de grafische en medische industrie en ook voor specifieke toepassingen op vraag van de klant. Er werken momenteel zo’n 200 werknemers in Duffel.
Figuur 1-3: Site Mondi Belcoat Duffel In België zelf zijn er nog 2 bedrijven die onder de Mondi Group vallen. Mondi packaging Poperinge en Mondi Brussels South. Mondi Packaging Poperinge is gespecialiseerd in de productie van open mondzakken die een PE-film bevatten. Deze zakken zijn bestemd voor de voedingsnijverheid, de dierenvoedingsector en de chemische industrie.
Figuur 1-4: Site Mondi Packaging Poperinge Mondi Brussels South bevindt zich sinds 2008 op een nieuwe locatie met een totaal nieuwe fabriek in de buurt van Brussel. Hier ligt de focus voornamelijk op de productie van ventielzakken o.a. voor de vele klanten uit de bouwnijverheid.
11
Figuur 1-5: Site Mondi Brussels South 1.2
Historiek
De tabel toont enkele belangrijke momenten in de geschiedenis van Mondi Belcoat.
Tabel 1-1: Korte geschiedenis Mondi Belcoat Mondi Belcoat is uitgegroeid van een klein Belgisch bedrijf tot een onderdeel van een grote internationale organisatie. Dit ging gepaard met de nodige overnames en naamsveranderingen. 1.3
Activiteiten
Mondi Belcoat behoort tot de verwerkende industrie. Het bedrijf is gespecialiseerd in het vervaardigen van meerlagige producten door extrusie coating of extrusie laminatie. Zij combineren kunststoffen of polymeren met diverse dragermaterialen zoals papier, karton, aluminium, filmen, gemetalliseerde filmen, non-wovens, wovens, glasvlies en basaltvezels. Deze coatings bieden kwaliteitsvolle en betrouwbare barrières tegen vet, water, vocht, gasdiffusie, licht en chemicaliën. Voor toepassingen waarbij gewichtreductie, slijtvastheid, structurele stevigheid of akoestische verbetering vereist is, biedt extrusie coating een ideale oplossing.
12
Figuur 1-6: Extrusie coating Op figuur 1-6 zie je hoe een dunne kunststofsmelt in de vorm van een film(oranje) op hoge temperatuur op een dragermateriaal(blauw) gegoten en gehecht wordt.
Figuur 1-7: Extrusie laminatie Figuur 1-7 toont de gelijkenis met extrusie coating. Hierbij wordt echter de kunststofsmelt(oranje) als hechtingslaag tussen 2 dragermaterialen(groen en blauw) aangewend. Enkele voorbeelden: • • •
Kabelisolatie Aluminiumlaminaten voor b.v. een aromabarrière Verpakkingen voor chocolade, kruiden, sausen enz…
Mondi Belcoat bezit 2 ISO-certificaten. ISO 9001:2008 is een internationale norm die eisen stelt aan het kwaliteitsmanagementsysteem of QMS van een bedrijf en ook aan de manier waarop het bedrijf omgaat met haar kwaliteitsbeleid. Het certificaat maakt duidelijk dat Mondi Belcoat aan alle eisen van de norm voldoet en dat Mondi Belcoat al haar producten levert volgens de afspraken. ISO 14001:2004 is een internationale norm die eisen stelt aan het milieumanagementsysteem van een bedrijf. Met de hulp van een goed milieumanagementsysteem is het mogelijk om milieurisico’s te verminderen of het verergeren tegen te gaan. Voor Mondi Belcoat is het milieu een hot topic. 1.4
Overzicht IT-departement
Het IT-departement bij Mondi Belcoat wordt voornamelijk gerund door 1 persoon. Een andere persoon staat in voor het SAP-systeem. Het netwerk wordt voornamelijk beheerd vanuit de hoofdzetel in Oostenrijk. De afdeling is dus maar een klein onderdeel in de organisatie, maar speelt toch een onmisbare rol in de dagelijkse werking bij Mondi Belcoat. Hieronder zie je het organigram van het IT-departement.
13
IT-Departement
Kurt Geys
Hardware
Pang Kim Bonn SAP
Software
Helpdesk Organigram 1-1: 1 Structuur IT-departement De IT-coördinator, coördinator, Kurt Geys, is verantwoordelijk voor alles wat te maken heeft met IT. Hij doet kleine herstellingen aan de hardware of installeert en configureert nieuwe hardware voor andere medewerkers zoals laptops, desktops en printers. printers De software wordt ook door hem beheerd. Hij installeert dus alle software op p de computers binnen de organisatie. Wanneer medewerkers een probleem ondervinden dat met IT te maken heeft, zullen zij hem contacteren. contacteren Dit kan met een functie in Microsoft Outlook of telefonisch. Hij zal dan proberen om het probleem zo snel mogelijk te verhelpen. Hij staat dus alleen in voor de helpdesk. Hij regelt ook de aankoop van IT-producten IT en diensten. Voor grotere re IT-projecten IT schakelt hij de hulp in van externe gespecialiseerde bedrijven. Wanneer medewerkers een probleem ondervinden met het SAP-systeem, SAP systeem, contacteren zij de verantwoordelijke, Pang Kim Bonn. Hij contacteert dan de ITIT-afdeling in Oostenrijk. Zij stellen een mogelijke oplossing voor en hij dient die dan uit te voeren en te testen.
14
2
OPDRACHTEN
Mijn stageopdracht bestond uit twee delen. Enerzijds was ik samen met de ITcoördinator verantwoordelijk voor het runnen van de helpdesk en het managen van de IT-afdeling. Anderzijds moest ik een webapplicatie in PHP programmeren die zal functioneren als een soort elektronische leeromgeving. Ik heb mijn dagen ingedeeld volgens deze 2 opdrachten. Tijdens de voormiddag werkte ik samen met de ITcoördinator en ‘s namiddags ging ik aan de slag met mijn PHP-applicatie. 2.1
Assistentie IT-coördinator
Assisteren van de IT-coördinator betekent vooral helpen bij het runnen van de helpdesk. Anderzijds moet de totale IT-organisatie dagelijks onderhouden worden, zowel de hardware-omgeving als de software-omgeving. Dit alles zorgt voor een ruim pakket aan taken. 2.1.1
Beveiliging
Een belangrijke taak van de helpdesk is het opvolgen van virusproblemen bij clients. Een geïnfecteerd bestand kan zich namelijk snel verspreiden over het netwerk, meerdere clients besmetten en uiteindelijk de dagelijkse werking van de organisatie belemmeren. Meldingen over de aanwezigheid van geïnfecteerde bestanden komen terecht in de inbox van de helpdesk (Zie figuur 2-1 ).
Figuur 2-1: Virusmelding in Outlook In deze melding staat informatie over het besmette bestand en de besmette client. Zo kunnen de client en het besmette bestand snel opgespoord worden en uiteraard wordt het besmette bestand dan ook zo snel mogelijk verwijderd, als dit nog niet is gebeurd door de anti-virussoftware. Ik heb een procedure geschreven zodat werknemers ook zelf een virus kunnen zoeken, vinden en verwijderen. Een procedure voor het verwijderen van een virus vindt u in bijlage 1. Het is binnen een organisatie ook noodzakelijk om bestanden en mappen op het netwerk de juiste rechten toe te kennen. Bestanden die bedoeld zijn voor medewerkers van de personeelsdienst mogen niet toegankelijk zijn voor andere medewerkers, tenzij er natuurlijk reden voor is. Dit moet allemaal consequent in elkaar steken zodat er geen misbruik kan gemaakt worden, maar zo dat toch iedere medewerker toegang heeft tot de nodige bestanden. Er is een netwerkschijf waarop alle bestanden staan van alle departementen. Per departement is er een map voorzien met daarin een map met toegang voor medewerkers van het departement en een map met toegang voor alle gebruikers. Dit alles wordt beheerd via de domain controller. Hierin worden gebruikers toegevoegd aan een bepaalde groep. Die groep heeft dan alle nodige rechten voor alle
15
benodigde mappen al ingesteld. Voor elke nieuwe medewerker heb ik de rechten toegekend. Rechten kunnen ook gewijzigd worden via Windows verkenner (zie figuur 22). Dit doe je door met de rechtermuisknop op een folder te klikken en vervolgens op eigenschappen te klikken. In het tabblad 'Beveiliging' vind je dan de huidige groepen en gebruikers die toegang hebben tot de folder. Daaronder kan je dan ook nog eens de verschillende toegewezen machtigingen bekijken en eventueel wijzigen. Deze groepen zijn aangemaakt in de domain controller, meer bepaald in de active directory ‘Users and Computers’ op de server ‘BEDUFFEDC’.
Figuur 2-2: Tabblad ‘Beveiliging’ Hieronder zie je de map ‘Groups’ in de Active Directory ‘Users and Computers’. Hierin staan alle groepen van gebruikers.
Figuur 2-3: Groups op domain controller 2.1.2
Ondersteuning
Het is noodzakelijk om binnen een organisatie ondersteuning te bieden aan medewerkers die maar een minimale kennis hebben van IT. Dit geeft een ruime waaier van taken en opdrachten: • • •
problemen oplossen i.v.m. Microsoft office-pakket; hardwarematige problemen met computers; softwarematige problemen met computers;
16
• • 2.1.3
problemen met printers, printservers; …. Nieuwe medewerkers
Voor elke nieuwe medewerker bij Mondi Belcoat moet een computer beschikbaar zijn. Medewerkers die ook thuis werken, krijgen een laptop ter beschikking. Meestal worden oude computers in stock opnieuw geïnstalleerd indien ze nog correct functioneren. Dit gebeurt via een Windowsinstallatiecd of via een al vooraf gemaakte image van een harde schijf van een computer die overeenkomt met de te installeren computer. De image heeft de voorkeur omdat deze alle drivers en alle nodige software installeert. Bij een Windowsinstallatie moet dit handmatig gebeuren en dit neemt heel wat meer tijd in beslag. Natuurlijk moet de gebruiker ook een account krijgen. Dit wordt beheerd via de domain controller.
Figuur 2-4:Nieuwe account aanmaken
De nieuwe medewerker wordt toegevoegd aan de huidige users, krijgt de juiste toegang tot groepen en een accountnaam en wachtwoord. De nieuwe gebruiker aan een groep toevoegen doen we nadat we een account hebben gemaakt via ‘Eigenschappen’. In het tabblad ‘Member of’ kunnen we de gebruiker gaan toevoegen aan de juiste groepen.
Figuur 2-5: Tabblad ‘Member of’
17
Op de storage area server of BEDUFFESA wordt er een stukje ruimte gereserveerd voor persoonlijke bestanden van de gebruiker. We moeten op de domain controller dit stukje ruimte nog wel instellen zodat er connectie naar de schijf kan gemaakt worden. Elke gebruiker krijgt ook een log-inscript ingesteld in zijn profiel, dit script zal tijdens het opstarten kijken of er nieuwe updates voor programma’s nodig zijn, netwerkschijven aangemaakt moeten worden,… .
Figuur 2-6: Tabblad ‘Profile’ 2.1.4
E-mail
Na het aanmaken van de gebruiker op de domain controller maken we een mailaccount aan op de server van Mondi in Oostenrijk via een simpele webinterface. Hierop dienen enkele basisgegevens over de nieuwe medewerker ingevuld te worden waarna het systeem een mailaccount en paswoord genereert. Het paswoord wordt wel gewijzigd naar een vooraf opgesteld patroon. Daarna kunnen we Microsoft outlook configureren met de nieuw aangemaakte mailaccount. Dit doen we door verbinding te maken met de Microsoft Exchangeserver van Mondi. Wij gebruiken de Exchangeserver dus als mailserver. Meer informatie hierover vind je in bijlage 2. 2.1.5
Onderhoud IT-database
Alle IT-hardware binnen de organisatie wordt in een database bijgehouden. Elk toestel heeft een eigen ID. Deze ID is ook terug te vinden op een label op het toestel zelf. Van elk toestel kunnen de gegevens en de huidige eigenaar bekeken worden. Het is ook mogelijk om de geschiedenis van vorige eigenaars te bekijken. Telkens wanneer er een nieuw IT-apparaat aangekocht wordt, dient dit in de database gezet te worden. Er is een handige GUI ontwikkeld om dit te vergemakkelijken. 2.1.6
Batchfiles beheren
Wanneer een gebruiker zijn computer opstart, gebeuren er automatisch enkele acties zoals controleren op updates voor software of een homefolder aanmaken. Ik heb een batchfile geschreven voor laptopgebruikers binnen het bedrijf. De mailbox van een gebruiker wordt bewaard op zijn persoonlijke homefolder op het netwerk onder de vorm van een PST-bestand. Wanneer de gebruiker zijn laptop mee naar huis neemt, heeft hij echter geen toegang meer tot de netwerkschijf. Daarom zou het handig zijn als de mailbox gekopieerd wordt naar een schijf van de laptop tijdens het afmelden. Dit heb ik uitgewerkt in kladblok. Om te beginnen heb ik een controle geprogrammeerd op de gebruikersnaam van de werknemer aangezien de file bij iedereen wordt uitgevoerd tijdens het afmelden, maar niet van toepassing is voor elke gebruiker. Als de Username dus gelijk is met een vooraf gedefinieerde naam dan wordt de bat-file uitgevoerd.
18
Uiteraard heb ik onderscheid moeten maken tussen verschillende talen, aangezien er gebruikers zijn binnen de organisatie die met een Engelstalige Windows werken i.p.v. de standaard Nederlandstalige Windows. Ik heb dit gedaan door te kijken naar de map ‘Mijn documenten’. Als de map ‘Mijn documenten’ heet, is het een Nederlandstalige interface. Heet de map ‘My documents’ dan is het een Engelstalige interface. Het programma zal dus de juiste interface kiezen en dan gaan controleren of er al een mapje bestaat op de harde schijf waarin de mailbox komt. Als het mapje nog niet bestaat, zal het programma dit eerst aanmaken. Als het mapje al bestaat, zal het programma de mailbox onder de vorm van PST-bestanden kopiëren van de netwerkschijf naar de harde schijf van de laptop. De uitwerking van de batchfile bevindt zich in bijlage 3. 2.1.7
Beheer stock
Alle hardware, van printers tot monitors, wordt gestockeerd volgens type in een ruimte naast het IT-departement. Zo is alles snel te vinden. De meeste wijzigingen in de stock gebeuren bij de inkttoners. In de productie staan namelijk heel wat printers die labels moeten afdrukken en dus relatief snel leeg geraken. De stock moet consequent opgevolgd worden, zodat er bijvoorbeeld geen tekort komt aan toners. 2.1.8
Onderhoud IT binnen de organisatie
Het is uitermate belangrijk om IT-systemen altijd up-to-date te houden, zodat ze continu optimaal kunnen blijven presteren. Zo moet er regelmatig verouderde soft- en hardware geüpdatet worden. Ook worden er steeds innovatieve oplossingen gezocht om systemen optimaler te doen werken. 2.2
Elektronische leeromgeving
2.2.1
Aanleiding en achtergrond van het project
Voor Mondi Belcoat zou het handig zijn als nieuwe medewerkers een opleiding kunnen leren aan de hand van een vlotte applicatie. Deze applicatie moet werken op basis van herhalingen, zodat de gebruiker door dagelijks gebruik van de applicatie een zekere routine kweekt en daardoor de opleiding onder de knie krijgt. Nieuwe opleidingen, voor bijvoorbeeld medewerkers in de productie, kunnen op deze manier aangeleerd worden. Het is wel de bedoeling dat werknemers dit op eigen initiatief doen, ze zullen zeker niet gedwongen worden tot het gebruik van de applicatie. 2.2.2
Business Case
Mijn doel is om een zo volledig mogelijke applicatie af te leveren. De applicatie moet vlot en makkelijk werken voor gebruikers en ook voor administrators met minimale ITkennis. Op die manier kunnen werknemers op eigen initiatief voor een cursus of opleiding slagen, zonder al te veel tijd kwijt te geraken aan het studeren van de leerstof. Een groot voordeel voor het bedrijf is dat het een kostenvrij project is, aangezien het enkel door mij gerealiseerd wordt. Dankzij mijn opleiding Toegepaste Informatica moet ik dit project op een correcte wijze kunnen realiseren.
2.2.3
Verwacht resultaat
Werknemers kunnen uit vrije wil cursussen studeren over allerhande onderwerpen gerelateerd aan het bedrijf. Na verloop van tijd kennen ze de cursus, enkel door dagelijks gebruik te maken van de applicatie. Ze moeten dus niets studeren. Het moet ook mogelijk zijn voor een gebruiker om zijn statistieken bij te houden en te bekijken.
19
Zo kan de gebruiker zelf zijn vooruitgang analyseren en beslissen of hij al dan niet verder gebruik moet maken van de applicatie. Gebruikers met een minimale IT-kennis moeten de applicatie kunnen beheren. Een uitgebreide analyse is dus noodzakelijk om de gebruiksvriendelijkheid optimaal te realiseren. Er moet ook een database voorzien worden zodat dynamische inhoud beheerd kan worden. 2.2.4
Omschrijving van de primaire doelgroep
Nieuwe medewerkers van Mondi of huidige personeelsleden die via een andere aanpak een cursus of opleiding willen volgen of een routine willen kweken, moeten snel en vlot kunnen werken met deze applicatie. 2.2.5
Derden: andere stakeholders
De applicatie kan voor allerlei doeleinden gebruikt worden; zowel door scholen als andere bedrijven. Er kunnen allerhande cursussen toegevoegd worden, van bedrijfsgerelateerde softwarecursussen tot eenvoudige cursussen van lagere scholen. Er zijn dus oneindig veel mogelijkheden. 2.3
Gebruikte software
Uiteraard heb ik tijdens mijn stage gebruik gemaakt van vele handige IT-tools. 2.3.1
Netbeans IDE
Netbeans IDE heb ik gebruikt om de PHP-applicatie te programmeren. Het is een ontwikkelomgeving met ondersteuning van o.a. syntax-highlighting. Netbeans is ook geschikt voor andere veel gebruikte programmeertalen zoals Java. Het is open source en dus gratis te downloaden, wat een groot voordeel is t.o.v. Dreamweaver. Sun is de hoofdsponsor van Netbeans. 2.3.2
REAL VNC
VNC of Virtual Network Computing is platformonafhankelijke software waarmee je een bureaublad van een computer kan delen. Dit wordt mogelijk gemaakt door rfb (Remote FrameBuffer protocol), waardoor je een andere computer op afstand kan beheren. VNC verstuurt de toetsaanslagen en muisbewegingen van de ene computer, de 'server' naar een andere computer, de 'viewer'(zie figuur 2-7). Het beeld wordt de andere kant opgestuurd via het netwerk. Je hebt dus viewer mode en server mode. Met de viewer mode of client kan je een computer of 'server' overnemen en deze beheren. De server mode is de computer die zijn bureaublad deelt en overgenomen kan worden. Het is mogelijk om meerdere clients op één server te laten werken. De verbinding tussen de viewer en de server wordt geëncrypteerd en paswoorden worden niet als platte tekst verzonden om ongewenste bezoekers af te weren.
Figuur 2-7: Verbinding VNC
20
Ik heb VNC veel gebruikt wanneer ik clients in de productie of clients die ver weg stonden van de IT-afdeling, moest overnemen om software te installeren of om een klein probleem op te lossen. 2.3.3
Microsoft Office Outlook
Dit programma is een bekend onderdeel van het Officepakket van Microsoft. Outlook is een e-mail client. Door gebruik van de Microsoft Exchangeserver kunnen wij binnen Mondi snel en eenvoudig gegevens delen met elkaar. Alle meldingen voor de helpdesk komen binnen in een speciale aparte inbox in Outlook.
Figuur 2-8: Takenlijst Outlook Deze meldingen of taakverzoeken kunnen wij dan accepteren zodat deze in een takenlijst terecht komen. Zo krijgen we een handig op te volgen overzicht van taken die al gedaan zijn, of die nog moeten gebeuren. Er bestaat ook een handige functie waarmee we de afzender kunt verwittigen als de taak voltooid is. 2.3.4
Microsoft Office Access
Deze relationele databasesoftware van Microsoft biedt de mogelijkheid aan gebruikers om databanken te maken zonder uitgebreide IT-kennis. Het is net als Outlook een onderdeel van het Officepakket. Dit programma heb ik gebruikt om de hardwaredatabase te beheren. 2.3.5
Norton Ghost
Dit programma maakt het mogelijk om snel en eenvoudig een back-up te maken van een harde schijf of een partitie. Een nieuwe Windowsinstallatie wordt op die manier compleet overbodig. Bij Mondi Belcoat wordt er van elke computer maandelijks een image als back-up gemaakt en wekelijks een incrementele back-up. 2.3.6
Trend Micro Officescan Antivirus
Dit krachtig anti-virusprogramma beschermt servers, desktops, laptops enz., zowel binnen als buiten het netwerk tegen ongewenste indringers, spyware, wormen enzovoort.
21
2.3.7
MySQL
Dit is een RDBMS of relationeel databasemanagementsysteem. Het wordt gebruikt om gegevens zoals tekst en getallen of andere types in databases op te slaan. MySQL maakt gebruik van SQL en wordt algemeen veel gebruikt in combinatie met PHP, Linux en Apache. Wikipedia is een site die ook gebruik maakt van MySQL. 2.3.8
PHPMyAdmin
Via een overzichtelijke webinterface kan je met deze software makkelijk MySQLtabellen beheren. Het is mogelijk om tabellen aan te maken, te verwijderen en aan te passen. Het is ook mogelijk om SQL-query’s in te voeren en om gegevens te exporteren.
Figuur 2-9: Interface phpMyAdmin 2.3.9
Apache webserver
Deze webserver is net als PHPMyAdmin en MySQL opensource software. IIS of Internet Information Services van Microsoft is de belangrijkste concurrent van Apache. Het grote voordeel van Apache t.o.v. IIS is het prijskaartje. Er zijn geen kosten verbonden aan Apache, bij IIS is dit wel het geval. 2.3.10
Gliffy
Met deze handige online tool kan je makkelijk diagrammen maken. Er zijn geen kosten verbonden aan het programma. Persoonlijk vind ik het een waardige concurrent voor Microsoft Visio. Vooral het verschil in gebruiksvriendelijkheid viel me sterk op in het voordeel van Gliffy. Gliffy heeft wel wat minder mogelijkheden dan Visio.
Figuur 2-10: Interface Gliffy 2.3.11
Crimson Editor
Deze professionele editor is gratis software voor Windows. Hij wordt vooral gebruikt als editor voor broncode of HTML. Deze editor heeft een ingebouwde syntax highlighting wat een duidelijkere structuur geeft aan het document.
22
Ik heb deze editor gebruikt om de configuratiebestanden van Apache en PHP aan te passen. 2.3.12
Microsoft Office Visio
Dit is software om technische schema’s te maken. Het is een onderdeel van het Microsoft Officepakket. Ik heb Visio gebruikt om mijn use case diagrammen te maken. 2.3.13
ZBar
Deze tool is er voor personen die gebruik maken van meerdere monitoren. Wanneer je dus gebruik maakt van 2 monitoren, zal Windows de taakbalk enkel op het hoofdscherm tonen. Je kan het bureaublad uitbreiden naar het tweede scherm, maar de taakbalk blijft op het eerste scherm staan. Aangezien ik tijdens mijn stage ook gebruik gemaakt heb van twee monitoren, een laptop en een externe monitor, had ik graag de taakbalk op beide schermen gehad zodat ik niet steeds terug naar het laptopscherm moest. Hiervoor heb ik wel even wat research gedaan naar mogelijke oplossingen en uiteindelijk viel mijn keuze op ZBar. Het is simpel in gebruik en gratis. Ik heb daarna de execute-file ZBar.exe gekopieerd naar de map ‘Opstarten’ zodat ik automatisch bij het opstarten een doorlopende taakbalk had.
23
3
ANALYSE EN AANPAK ELEKTRONISCHE LEEROMGEVING
In dit hoofdstuk volgt mijn analyse van de PHP-applicatie. Het is belangrijk om eerst een analyse te maken om een goed beeld te krijgen van de applicatie. Een analyse is natuurlijk ook een handig hulpmiddel tijdens het programmeren. Pas na het maken van een analyse kan er overgegaan worden tot de programmatie van de applicatie. 3.1
Functionele Eisenanalyse
Hier worden de functies beschreven die de applicatie dient te hebben volgens de gebruikers. 3.1.1
Use case diagram op sea-level
Een use case diagram toont de gebruikers of actoren van het systeem en welke functies deze gebruikers nodig hebben.
Figuur 3-1: Use case diagram 3.2
Use case scenario’s
In elk scenario vind je een beschrijving of overzicht van de stappen die uitgevoerd dienen te worden door de actor of het systeem.
24
3.2.1
Inloggen
Naam : Inloggen als gebruiker Samenvatting : Gebruiker/werknemer logt in om toegang te krijgen tot het systeem. Actoren : • Gebruiker/werknemer Precondities : • / Actor
Systeem
Alternatief
1. Kiest voor aanmelden 2. Toont aanmeldvenster 3. Geeft gebruikersnaam en wachtwoord in 4. Zoekt gebruiker op in database en toont persoonlijke pagina en stopt de use case
(1)(2)
Alternatief
Omschrijving
Actie
(1)
Er zijn geen gegevens ingevuld
Systeem toont foutmelding en use case stopt
(2)
De gebruiker bestaat niet
Systeem toont foutmelding en use case stopt
Resultaat: De actor heeft zich succesvol aangemeld op het systeem.
3.2.2
Leerpakket toevoegen aan account
Naam : Leerpakket toevoegen aan account Samenvatting : Gebruiker/werknemer bekijkt leerpakketten en voegt ze eventueel toe aan zijn/haar account. Actoren : • Gebruiker/werknemer Precondities : • Actor is ingelogd Actor
Systeem
5. Kiest voor zoek leerpakketten 6. Toont categorieën
Alternatief
25
7. Kiest een categorie 8. Toont leerpakketten van de gekozen categorie
(1)
10. Voegt het gekozen leerpakket toe aan de account van de actor
(2)
9. Kiest toevoegen aan account
11.Stop de use case
Alternatief
Omschrijving
Actie
(1)
Er zijn geen leerpakketten beschikbaar
Systeem toont foutmelding en use case stopt
(2)
Het gekozen leerpakket staat al op de account van de gebruiker
Systeem toont foutmelding en use case stopt
Resultaat: De actor heeft een leerpakket toegevoegd aan zijn persoonlijke account.
3.2.3
Leerpakket studeren
Naam : Leerpakket studeren Samenvatting : Gebruiker/werknemer studeert één van zijn/haar leerpakketten. Actoren : • Gebruiker/werknemer Precondities : • Actor is ingelogd en heeft minstens één leerpakket toegevoegd aan zijn /haar account. Actor
Systeem
Alternatief
1. Kiest voor persoonlijke leerpakketten 2. Toont de leerpakketten die de actor aan zijn account heeft toegevoegd 3. Kiest voor oefen dit leerpakket voor het gewenste leerpakket 4. Toont vragen
(1)
26
5. Geeft antwoord 6. Gaat naar volgende vraag 7. Stop de use case
Alternatief
Omschrijving
Actie
(1)
Er zijn geen vragen meer beschikbaar
Systeem toont resultaatpagina en use case stopt
Resultaat: De actor heeft een leerpakket kunnen studeren.
3.2.4
Statistieken bekijken
Naam : Statistieken bekijken Samenvatting : Gebruiker/werknemer bekijkt zijn statistieken. Actoren : • Gebruiker/werknemer Precondities : • Actor is ingelogd Actor
Systeem
Alternatief
1. Kiest voor bekijk statistieken 2. Toont de statistieken van de actor 3. Stop de use case
(1) (2)
Alternatief
Omschrijving
Actie
(1)
Er zijn geen statistieken beschikbaar
Systeem toont foutmelding en use case stopt
(2)
Actor kiest om statistieken te resetten
Systeem reset de statistieken en use case stopt
Resultaat: De actor heeft een leerpakket kunnen studeren.
3.2.5
Leerpakket verwijderen van account
Naam : Leerpakket verwijderen van account
27
Samenvatting : Gebruiker/werknemer verwijdert een leerpakket dat op zijn persoonlijke account staat. Actoren : • Gebruiker/werknemer Precondities : • Actor is ingelogd en heeft minstens één leerpakket toegevoegd aan zijn account Actor
Systeem
Alternatief
1. Kiest voor persoonlijke leerpakketten 2. Toont de leerpakketten van de actor
(1)
3. Kiest voor verwijder dit pakket 4. Verwijdert pakket en geeft een melding en de use case stopt Alternatief
Omschrijving
Actie
(1)
Er zijn geen leerpakketten beschikbaar
Systeem toont foutmelding en use case stopt
Resultaat: De actor heeft een leerpakket succesvol verwijderd.
3.2.6
Herhalingen maken
Naam : Herhalingen maken Samenvatting : Gebruiker/werknemer maakt herhalingen van zijn/haar leerpakketten. Actoren : • Gebruiker/werknemer Precondities : • Actor is ingelogd en heeft minstens 1 leerpakket toegevoegd aan zijn /haar account. Actor
Systeem
1. Kiest om herhalingen te maken van een leerpakket 2. Toont herhalingsvragen 3. Geeft antwoord
Alternatief
28
4. Toont volgende vraag
(1)
5. Stop de use case
Alternatief
Omschrijving
Actie
(1)
Er zijn geen vragen meer beschikbaar
Systeem toont resultaatpagina en use case stopt
Resultaat: De actor heeft herhalingen van een leerpakket kunnen maken. 3.2.7
Account verwijderen
Naam : Account verwijderen Samenvatting : Gebruiker/werknemer verwijdert zijn account. Actoren : • Gebruiker/werknemer Precondities : • Actor is ingelogd Actor
Systeem
Alternatief
1. Kiest voor verwijder je account 2. Vraagt om bevestiging
(1)
3. Bevestigt actie 4. Verwijdert account uit database en geeft een melding Alternatief
Omschrijving
Actie
(1)
Actor annuleert de actie
Systeem toont melding en use case stopt
Resultaat: De actor heeft zijn account succesvol verwijderd. 3.2.8
Wachtwoord aanpassen
Naam : Wachtwoord aanpassen Samenvatting : Gebruiker/werknemer wijzigt zijn wachtwoord Actoren :
29
•
Gebruiker/werknemer
Precondities : • Actor is ingelogd Actor
Systeem
Alternatief
1. Kiest voor wachtwoord aanpassen 2. Toont venster en vraagt om oud wachtwoord en nieuw 3. Geeft gegevens in
(1) 4. Wijzigt wachtwoord
Alternatief
Omschrijving
Actie
(1)
Actor geeft de verkeerde gegevens in
Systeem toont melding en gaat terug naar stap 2
Resultaat: De actor heeft zijn wachtwoord succesvol aangepast. 3.2.9
Registreren
Naam : Registreren Samenvatting : Gebruiker/werknemer registreert zich om toegang te krijgen tot het systeem Actoren : • Gebruiker/werknemer Precondities : • / Actor
Systeem
Alternatief
1. Kiest voor registreren 2. Toont venster en vraagt om een gebruikersnaam en wachtwoord 3. Geeft gegevens in
(1) 4. Voegt de nieuwe gebruiker toe aan de database
Alternatief
Omschrijving
Actie
30
(1)
Actor geeft te weinig gegevens in
Systeem toont melding en gaat terug naar stap 2
Resultaat: De actor heeft succesvol een account aangemaakt. 3.2.10
Gebruiker wijzigen
Naam : Beheren gebruikers - gebruiker wijzigen Samenvatting : Wijzigen van gebruikers door de administrator Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
1. Kiest voor aanpassen gebruiker 2. Toont venster met gegevens gebruiker 3. Wijzigt de gegevens 4. Wijzigt de gegevens van de gebruiker in de database
(1)
Alternatief
Omschrijving
Actie
(1)
Actor geeft te weinig of foute gegevens in
Systeem toont foutmelding en gaat terug naar stap 2
Resultaat: De actor heeft succesvol een gebruiker gewijzigd.
3.2.11
Gebruiker verwijderen
Naam : Beheren gebruikers - gebruiker verwijderen Samenvatting : Verwijderen van gebruikers door de administrator Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor 1. Kiest voor verwijderen
Systeem
Alternatief
31
gebruiker 2. Toont bevestigingsvenster 3. Kiest voor ja
(1) 4. Verwijdert de gebruiker uit de database
Alternatief
Omschrijving
Actie
(1)
Actor kiest voor nee
Systeem toont foutmelding en use case stopt
Resultaat: De actor heeft succesvol een gebruiker verwijderd.
3.2.12
Nieuwe gebruiker aanmaken
Naam : Beheren gebruikers - gebruiker aanmaken Samenvatting : Aanmaken van nieuwe gebruikers door de administrator Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
1. Kiest voor nieuwe gebruiker 2. Toont venster met velden die ingevuld moeten worden 3. Vult gegevens in
(1) 4. Maakt nieuwe gebruiker aan in database
Alternatief
Omschrijving
Actie
(1)
Actor geeft foute of te weinig gegevens in
Systeem toont foutmelding en gaat naar stap 2
Resultaat: De actor heeft succesvol een nieuwe gebruiker aangemaakt.
3.2.13
Leerpakket wijzigen
Naam : Beheren leerpakketten - leerpakket wijzigen Samenvatting : Wijzigen van leerpakketten door de administrator
32
Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
1. Kiest voor aanpassen leerpakket 2. Toont venster met gegevens leerpakket 3. Wijzigt de gegevens 4. Wijzigt de gegevens van het leerpakket in de database
(1)
Alternatief
Omschrijving
Actie
(1)
Actor geeft te weinig of foute gegevens in
Systeem toont foutmelding en gaat terug naar stap 2
Resultaat: De actor heeft succesvol een leerpakket gewijzigd.
3.2.14
Leerpakket verwijderen
Naam : Beheren leerpakketten - leerpakket verwijderen Samenvatting : Verwijderen van leerpakket door de administrator Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
1. Kiest voor verwijderen leerpakket 2. Toont bevestigingsvenster 3. Kiest voor ja
(1) 4. Verwijdert het leerpakket uit de database
Alternatief
Omschrijving
Actie
(1)
Actor kiest voor nee
Systeem toont foutmelding en use case stopt
33
Resultaat: De actor heeft succesvol een leerpakket verwijderd.
3.2.15
Nieuw leerpakket aanmaken
Naam : Beheren leerpakketten - leerpakket aanmaken Samenvatting : Aanmaken van nieuwe leerpakketten door de administrator Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
1. Kiest voor nieuw leerpakket 2. Toont venster met velden die ingevuld moeten worden 3. Vult gegevens in
(1) 4. Maakt nieuw leerpakket aan in database
Alternatief
Omschrijving
Actie
(1)
Actor geeft foute of te weinig gegevens in
Systeem toont foutmelding en gaat naar stap 2
Resultaat: De actor heeft succesvol een nieuw leerpakket aangemaakt.
3.2.16
Categorie wijzigen
Naam : Beheren categorieën - categorie wijzigen Samenvatting : Wijzigen van categorieën door de administrator Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
1. Kiest voor aanpassen categorie 2. Toont venster met gegevens categorie
Alternatief
34
3. Wijzigt de gegevens 4. Wijzigt de gegevens van de categorie in de database
(1)
Alternatief
Omschrijving
Actie
(1)
Actor geeft te weinig of foute gegevens in
Systeem toont foutmelding en gaat terug naar stap 2
Resultaat: De actor heeft succesvol een categorie gewijzigd.
3.2.17
Categorie verwijderen
Naam : Beheren categorieën - categorie verwijderen Samenvatting : Verwijderen van categorie door de administrator Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
1. Kiest voor verwijderen categorie 2. Toont bevestigingsvenster 3. Kiest voor ja
(1) 4. Verwijdert de categorie uit de database
Alternatief
Omschrijving
Actie
(1)
Actor kiest voor nee
Systeem toont foutmelding en use case stopt
Resultaat: De actor heeft succesvol een categorie verwijderd.
3.2.18
Nieuwe categorie aanmaken
Naam : Beheren categorieën - categorie aanmaken Samenvatting : Aanmaken van nieuwe categorieën door de administrator Actoren : • Beheerder/admin
35
Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
1. Kiest voor nieuwe categorie 2. Toont venster met velden die ingevuld moeten worden 3. Vult gegevens in
(1) 4. Maakt nieuwe categorie aan in database
5. Stopt use case
Alternatief
Omschrijving
Actie
(1)
Actor geeft foute of te weinig gegevens in
Systeem toont foutmelding en gaat naar stap 2
Resultaat: De actor heeft succesvol een nieuwe categorie aangemaakt.
3.2.19
Vragen wijzigen
Naam : Beheren vragen - vragen wijzigen Samenvatting : Wijzigen van vragen door de administrator Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
1. Kiest voor aanpassen vraag 2. Toont venster met gegevens vraag 3. Wijzigt de gegevens 4. Wijzigt de gegevens van de vraag in de database
(1)
5. Stopt use case
Alternatief
Omschrijving
Actie
(1)
Actor geeft te weinig of foute gegevens in
Systeem toont foutmelding en gaat terug naar stap 2
36
Resultaat: De actor heeft succesvol een vraag gewijzigd.
3.2.20
Vraag verwijderen
Naam : Beheren vragen - vraag verwijderen Samenvatting : Verwijderen van vragen door de administrator Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
1. Kiest voor verwijderen vragen 2. Toont bevestigingsvenster 3. Kiest voor ja
(1) 4. Verwijdert de vragen uit de database
Alternatief
Omschrijving
Actie
(1)
Actor kiest voor nee
Systeem toont foutmelding en use case stopt
Resultaat: De actor heeft succesvol een vraag/vragen verwijderd.
3.2.21
Nieuwe vragen aanmaken via txt
Naam : Beheren vragen - vragen aanmaken met txt-bestand Samenvatting : Aanmaken van nieuwe vragen door de administrator met een txt-bestand Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
1. Kiest voor nieuwe vragen 2. Toont venster waar een txt-bestand moet geüpload worden
Alternatief
37
3. Kiest het bestand en klikt op uploaden
(1)
4. Haalt vragen en antwoorden uit bestand en maakt nieuwe vragen aan in database Alternatief
Omschrijving
Actie
(1)
Actor geeft foute of te weinig gegevens in
Systeem toont foutmelding en gaat naar stap 2
Resultaat: De actor heeft succesvol nieuwe vragen aangemaakt.
3.2.22
Nieuwe vragen aanmaken via cvs
Naam : Beheren vragen - vragen aanmaken met cvs-bestand Samenvatting : Aanmaken van nieuwe vragen door de administrator met een cvs-bestand Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
5. Kiest voor nieuwe vragen 6. Toont venster waar een cvs-bestand moet geüpload worden 7. Kiest het bestand en klikt op uploaden
(1)
8. Haalt vragen en antwoorden uit bestand en maakt nieuwe vragen aan in database Alternatief
Omschrijving
Actie
(1)
Actor geeft foute of te weinig gegevens in
Systeem toont foutmelding en gaat naar stap 2
Resultaat: De actor heeft succesvol nieuwe vragen aangemaakt.
3.2.23
Beheer tekst startpagina
Naam : Beheer tekst startpagina
38
Samenvatting : De beheerder kan de tekst van de startpagina aanpassen Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor
Systeem
Alternatief
1. Kiest voor beheer tekst startpagina 2. Toont pagina met een wysiwyginputveld en de mogelijkheid om een afbeelding te uploaden. 3. Geeft een tekst in en kiest een afbeelding
(1)
4. Schrijft de tekst en de afbeelding weg naar de database en uploadt de afbeelding naar de map upload. Alternatief
Omschrijving
Actie
(1)
Actor kiest geen (nieuwe) afbeelding
Systeem houdt de huidige afbeelding als die er is of laat het veld afbeelding leeg in database en gaat verder naar stap 4
Resultaat: De actor heeft succesvol nieuwe vragen aangemaakt. 3.2.24
Bekijk uploadmap
Naam : Uploadmap bekijken Samenvatting : De beheerder kan de inhoud van de uploadmap bekijken Actoren : • Beheerder/admin Precondities : • Actor is ingelogd met admin-rechten Actor 1. Kiest voor uploadmap bekijken
Systeem
Alternatief
39
2. Toont pagina met drie keuzes. Map met afbeeldingen, map met vragen en map met sounds 3. Klikt op 1 van de knoppen 4. Toont de inhoud van de gekozen map
Alternatief
Omschrijving
Actie
Resultaat: De actor heeft de inhoud van de uploadmap kunnen bekijken.
3.3
Niet-functionele eisenanalyse
Hier wordt besproken aan welke randvoorwaarden de applicatie moet voldoen. Deze voorwaarden hebben geen betrekking tot het doel van de applicatie. 3.3.1
Bruikbaarheid
Het systeem moet werken op een pc. Het systeem moet een grafische userinterface hebben. De gebruiker (werknemer, administrator) van het systeem dient enige ervaring te hebben met een pc met Windows. Het systeem moet online beschikbaar zijn of op een server op het netwerk. De gebruiker (werknemer, administrator) van het systeem hoeft geen kennis van PHP of een andere programmeertaal te hebben. 3.3.2
Schaalbaarheid
Het systeem dient vanaf meerdere pc's in een netwerk toegankelijk te zijn. Gebruikers moeten onafhankelijk van elkaar gebruik kunnen maken van het systeem. 3.3.3
Veiligheid
Om de voornaamste functionaliteiten van het systeem te kunnen gebruiken zal een gebruiker of administrator moeten inloggen met een paswoord en gebruikersnaam. Er worden ook verschillende rollen toegekend. Zo zal een administrator andere mogelijkheden hebben dan een gewone gebruiker. 3.3.4
Kritikaliteit
Het systeem kan best niet langer dan één dag uitvallen, zodat een gebruiker toch zijn dagelijkse routine kan verder zetten.
40
3.3.5
Uitvoeringsfrequentie en responstijd
De responstijden van het systeem zijn minder dan twee seconden. Het systeem dient vanaf meerdere pc's in een netwerk toegankelijk te zijn. 3.3.6
Betrouwbaarheid
Het systeem moet verbinding kunnen leggen en gegevens kunnen halen uit een database via MySQL. 3.3.7
Andere niet-functionele eisen
Het systeem wordt geprogrammeerd in hoofdzakelijk PHP, HTML en Javascript. 3.4
Attributenlijst
Figuur 3-2: Attributenlijst
41
3.5
Relationeel schema
Figuur 3-3: Relationeel schema
42
3.6
Relatiebeschrijving
Hier beschrijf ik de verschillende relaties in het datamodel. R1
1 gebruiker heeft 1 functie 1 functie heeft 0 of meerdere gebruikers
R2
1 leerpakket behoort toe aan 1 categorie 1 categorie kan 0 of meerdere leerpakketten bevatten
R3
1 gebruiker kan 0 of meerdere leerpakkettenUser hebben 1 leerpakkettenUser kan maar 1 gebruiker hebben
R4
1 leerpakkettenUser kan 1 of meerdere leerpakketten bevatten 1 leerpakket kan toebehoren aan 0 of meerdere leerpakkettenUser
R5
1 vraag behoort toe aan 1 categorie 1 categorie kan 0 of meerdere vragen bevatten
R6
1 vraag behoort toe aan 1 leerpakket 1 leerpakket kan 0 of meerdere vragen bevatten
R7
1 gebruiker kan 0 of meerdere statistieken hebben 1 statistiek behoort toe aan 1 gebruiker
R8
1 leerpakket kan 0 of meerdere statistieken hebben 1 statistiek behoort toe aan 1 leerpakket
R9
Voor 1 juist antwoord behoort toe aan 1 vraag 1 vraag bestaat uit 1 of meerdere juiste antwoorden
R10
1 gebruiker kan meerdere juiste antwoorden geven 1 juist antwoord kan door 1 of meer gebruikers gegeven worden
R11
1 leerpakket heeft 1 of meerdere juiste antwoorden 1 juist antwoord kan in meerdere leerpakketten voorkomen
R12
Voor 1 fout antwoord bestaan er meerdere vragen 1 vraag bestaat uit 1 of meerdere foute antwoorden
R13
1 gebruiker kan meerdere foute antwoorden geven 1 fout antwoord kan door 1 of meer gebruikers gegeven worden
R14
1 leerpakket heeft 1 of meerdere foute antwoorden 1 fout antwoord kan in meerdere leerpakketten voorkomen
R15
1 herhaling kan 0 of meerdere vragen hebben 1 vraag behoort toe aan 0 of meerdere herhalingen
R16
1 herhaling kan 0 of meerdere gebruikers hebben 1 gebruiker behoort toe aan 0 of meerdere herhalingen
R17
1 herhaling behoort toe aan 1 leerpakket 1 leerpakket kan 0 of meerdere herhalingen bevatten
R18
1 voltooid pakket behoort toe aan 1 gebruiker 1 gebruiker kan 0 of meerdere voltooide pakketten bezitten
43
R19
1 voltooid pakket heeft 1 leerpakket 1 leerpakket kan in 0 of meerdere voltooide pakketten zitten
R20
1 gemaakte herhaling bevat 1 gebruiker 1 gebruiker kan toebehoren aan 0 of meerdere gemaakte herhalingen
R21
1 gemaakte herhaling bevat 1 leerpakket 1 leerpakket kan toebehoren aan 0 of meerdere gemaakte herhalingen
3.7
Foreign key specificaties
FK1
NNA
DTR
FK2
NNA
DTR
FK3
NNA
DTR
FK4
NNA
DTR
FK5
NNA
DTR
FK6
NNA
DTR
FK7
NNA
DTR
FK8
NNA
DTR
FK9
NNA
DTR
FK10
NNA
DTR
FK11
NNA
DTR
FK12
NNA
DTR
FK13
NNA
DTR
FK14
NNA
DTR
FK15
NNA
DTR
FK16
NNA
DTR
FK17
NNA
DTR
FK18
NNA
DTR
FK19
NNA
DTR
FK20
NNA
DTR
FK21
NNA
DTR
3.8
Installatie Apache webserver
Ik heb eerst de webserver geïnstalleerd. Hiervoor ben ik begonnen met het doorlopen van een set-up. Ik heb de server geïnstalleerd als local host en als een service, zo start de server automatisch mee op met Windows. Daarna heb ik op de harde schijf een mapje ‘www’ aangemaakt. Hier komt de hele website terecht. Om de server te configureren moet je het bestand ‘httpd.conf’ aanpassen, dit kan gewoon in kladblok of met een speciale editor. Ik heb hiervoor gebruik gemaakt van Crimson Editor, deze editor geeft een duidelijkere structuur en kleuren aan het bestand. In dit bestand heb ik de documentroot veranderd naar het aangemaakt mapje, in mijn geval was dit ‘C:/www/’. Voor de directory heb ik hetzelfde gedaan. Om alle wijzigingen te voltooien heb ik de server nog wel herstart.
44
Installatie PHP
3.9
Via de site van PHP heb ik een zip-bestand gedownload. Dit heb ik dan uitgepakt op de harde schijf. Ik heb de naam van de uitgepakte map daarna gewijzigd naar ‘php’. In deze map ben ik op zoek gegaan naar het bestand ‘php.ini-dist’. Dit bestand heb ik gekopieerd naar de Windows directory en hernoemd naar ‘php.ini’. Deze php.ini is het configuratiebestand. In dit bestand heb ik enkele kleine wijzigingen aangebracht. Ik heb # voor de extension=php_mysql.dll verwijderd. Dit is nodig om gebruik te kunnen maken van MySQL. Ook de docroot heb ik aangepast naar de map ‘www’. De Extension_dir heb ik veranderd naar c:\www\php\ext\. Nu moet Apache nog weten waar PHP is geïnstalleerd. Daarvoor heb ik onderaan het httpd.conf bestand, enkele regels toegevoegd. • •
LoadModule php5_module "C:/php/php5apache2_2.dll" AddType application/x-httpd-php .php
De eerste regel zegt waar de .dll module zich bevindt. De tweede regel zegt dat elk bestand met .php als extensie als een php-bestand moet uitgevoerd worden. Als laatste actie heb ik opnieuw de server herstart om alle wijzigingen door te voeren. 3.10
Installatie database MySQL
Het installeren van MySQL is een makkelijke handeling. Hiervoor heb ik een setup uitgevoerd. Maar om het werken met MySQL aangenamer en makkelijker te maken heb ik phpMyAdmin geïnstalleerd. PhpMyAdmin is een handige webinterface waarmee je makkelijk databanken kan beheren. Om phpMyAdmin te installeren heb ik het zip-bestand uitgepakt naar de server. Dan heb ik config.inc.php aangepast met de Crimson Editor. Hier heb ik de host ingesteld. Het is ook mogelijk om een gebruikersnaam en paswoord te definiëren.
45
4
WIREFRAMES
Een wireframe is een eenvoudige visuele voorstelling van de userinterface, het doel en de inhoud van de applicatie. Ik maak gebruik van wireframes omdat ze snel te ontwikkelen zijn, bovendien zijn ze leesbaar door vrijwel iedereen. Ik heb Gliffy gebruikt om de wireframes te ontwerpen i.p.v. andere softwarepakketten zoals Microsoft Visio.
Wireframes gebruiker
4.1
In dit deel beschrijf ik de pagina’s waarvan een gebruiker gebruik gaat maken. 4.1.1
Inloggen
Figuur 4-1: Inloggen Na correct inloggen kan de gebruiker kiezen uit verschillende opties: • • • • •
Persoonlijke leerpakketten Zoek leerpakketten Bekijk je statistieken Pas je wachtwoord aan Verwijder je account
Bij het niet-correct aanmelden geeft het systeem een foutmelding en krijgt de gebruiker de kans om zich opnieuw aan te melden.
Figuur 4-2: Persoonlijke pagina
46
Wanneer de gebruiker kiest voor ‘persoonlijke leerpakketten’, krijgt hij alle leerpakketten te zien die hij aan zijn account heeft toegevoegd. Als er nog geen leerpakketten zijn toegevoegd, krijgt hij/zij hiervan een melding. De gebruiker kan kiezen om het leerpakket te oefenen/studeren of om het van zijn account te verwijderen. 4.1.2
Persoonlijke leerpakketten
Figuur 4-3: Persoonlijke leerpakketten Als de gebruiker kiest om het pakket te oefenen, dan komt hij terecht op de volgende pagina. Hier moet hij vraag per vraag een antwoord ingeven. Hij kan het antwoord controleren voor hij naar de volgende vraag gaat. Het invulveld wordt dan wel ontoegankelijk gemaakt zodat de gebruiker niet meer het juiste antwoord kan ingeven. Hij kan ook klikken op ‘Ik weet het niet’. Deze knop laat dan het juiste antwoord zien en maakt het invulveld ontoegankelijk.
Figuur 4-4: Oefen leerpakket 4.1.3
Zoek leerpakketten
Wanneer de gebruiker kiest voor ‘zoeken naar leerpakketten’, wordt er eerst een venster getoond met alle categorieën. De gebruiker moet dan een categorie selecteren en kiezen.
47
Figuur 4-5: Zoek leerpakketten Na het kiezen van een categorie wordt een scherm getoond van alle leerpakketten van de gekozen categorie. De gebruiker heeft de mogelijkheid om een andere categorie te kiezen of om een leerpakket toe te voegen aan zijn account. Wanneer hij heeft gekozen om het leerpakket toe te voegen aan zijn account, dan worden zijn persoonlijke leerpakketten getoond waarin het pas gekozen leerpakket is bijgevoegd. Als hij het pakket al op zijn account heeft staan, dan krijgt hij een melding en zal het leerpakket niet meer toegevoegd worden aan zijn account.
Figuur 4-6: Overzicht leerpakketten 4.1.4
Bekijk je statistieken
Als de gebruiker kiest voor het bekijken van statistieken, wordt er een pagina getoond waarin de gebruiker kan lezen hoeveel vragen hij al heeft geoefend en hoeveel hij goed of fout heeft beantwoord.
Figuur 4-7: Statistieken
48
4.1.5
Wachtwoord aanpassen
Op deze pagina kan de gebruiker zijn wachtwoord aanpassen. Hij moet zijn oud wachtwoord ingeven ter controle en daarna een nieuw wachtwoord. Het nieuwe wachtwoord moet tweemaal ingegeven worden ter controle.
Figuur 4-8: Wachtwoord aanpassen 4.1.6
Account verwijderen
Op deze pagina kan de gebruiker kiezen om zijn account definitief te verwijderen. Al zijn leerpakketten en statistieken zullen dan verloren gaan.
Figuur 4-9: Account verwijderen Wanneer de gebruiker voor ja kiest, zal het systeem alle gegevens van de gebruiker wissen. Wanneer de gebruiker voor de optie nee kiest, dan gaat het systeem terug naar de persoonlijke startpagina.
49
Wireframes beheerder
4.2
Hier beschrijf ik de pagina’s die gebruikt gaan worden door een beheerder. 4.2.1
Inloggen
Figuur 4-10: Inloggen beheerder Wanneer de administrator correct inlogt, krijgt hij ook de keuze uit verschillende opties: • • • •
Beheer Beheer Beheer Beheer
gebruikers categorieën leerpakketten vragen
Bij verkeerd aanmelden zal het systeem een foutmelding tonen. 4.2.2
Beheer gebruikers
Op deze pagina kan de administrator makkelijker een gebruiker vinden dankzij de verschillende zoekfuncties. Zo kan de administrator op deze pagina een gebruiker zoeken op functie of naam. Hij kan ook kiezen om alle gebruikers te tonen. Er is ook nog een mogelijkheid om via deze pagina een nieuwe gebruiker toe te voegen.
Figuur 4-11: Zoeken naar gebruikers Wanneer de administrator dus een gebruiker zoekt, komt hij terecht in de volgende pagina met een lijst van gebruikers die voldoen aan de eventuele zoekcriteria.
50
Figuur 4-12: Beheer gebruikers 4.2.3
Gebruiker wijzigen
Wanneer de administrator voor wijzigen van een gebruiker kiest, komt hij op deze pagina terecht.
Figuur 4-13: Gebruiker wijzigen De administrator kan hier de gebruikersnaam, het wachtwoord, e-mail en functie wijzigen. Als alles correct wordt ingevuld, zal het systeem de gegevens wijzigen in de databank.
51
4.2.4
Gebruiker toevoegen
Wanneer de administrator kiest voor nieuwe gebruiker, komt hij op deze pagina terecht.
Figuur 4-14: Gebruiker toevoegen De administrator dient alle velden in te vullen, anders zal het systeem een melding tonen. Wanneer alles correct wordt ingevuld, zal het systeem de gebruiker toevoegen aan de databank. 4.2.5
Beheer categorieën
Wanneer de administrator kiest voor ‘Beheer categorieën’, krijgt hij meteen een pagina te zien met alle categorieën. Daar heeft hij dan de keuze uit: • •
Nieuwe categorie aanmaken Een categorie wijzigen of verwijderen
Figuur 4-15: Beheer categorieën 4.2.6
Categorie wijzigen
Als de administrator kiest voor 'Categorie wijzigen', komt hij op deze pagina terecht. Hier kan hij de naam en de omschrijving van de categorie wijzigen. Bij correcte invoer zal het systeem de gegevens wijzigen in de databank, anders zal er een foutmelding getoond worden.
52
Figuur 4-16: Categorie wijzigen 4.2.7
Categorie aanmaken
Wanneer de administrator een nieuwe categorie wil aanmaken, komt hij op deze pagina terecht. Bij correcte invoer van de gegevens zal het systeem de nieuwe categorie aanmaken in de database. Anders wordt er een foutmelding getoond.
Figuur 4-17: Categorie aanmaken 4.2.8
Beheer leerpakketten
Op deze pagina kan de administrator makkelijker een leerpakket vinden dankzij de verschillende zoekfuncties. Zo kan de administrator op deze pagina een leerpakket zoeken op categorie of naam. Hij kan ook kiezen om alle leerpakketten te tonen. Er is ook nog een mogelijkheid om via deze pagina een nieuw leerpakket toe te voegen.
53
Figuur 4-18: Zoeken naar leerpakketten Wanneer de administrator dus een leerpakket zoekt, komt hij terecht op de volgende pagina met een lijst van leerpakketten die voldoen aan de eventuele zoekcriteria.
Figuur 4-19: Beheer leerpakketten 4.2.9
Leerpakket wijzigen
Als de administrator kiest voor ‘Leerpakket wijzigen’, komt hij op deze pagina terecht. Hier kan hij de naam en de omschrijving en de categorie wijzigen. Bij correcte invoer zal het systeem de gegevens wijzigen in de databank, anders zal er een foutmelding getoond worden.
Figuur 4-20: Leerpakket wijzigen
54
4.2.10
Leerpakket aanmaken
Wanneer de administrator een nieuw leerpakket wil aanmaken, komt hij op deze pagina terecht. Bij correcte invoer van de gegevens zal het systeem het nieuw leerpakket aanmaken in de database. Anders wordt er een foutmelding getoond.
Figuur 4-21: Leerpakket aanmaken 4.2.11
Beheer vragen
Op deze pagina kan de administrator makkelijker een leerpakket vinden dankzij de verschillende zoekfuncties. Zo kan de administrator op deze pagina een leerpakket zoeken op categorie of naam. Hij kan ook kiezen om alle leerpakketten te tonen. De bedoeling is dat vragen dus gewijzigd worden op het niveau van een leerpakket. De administrator zal dus eerst het gewenste leerpakket moeten zoeken, voor hij de vragen kan beheren.
Figuur 4-22: Zoeken naar leerpakketten (vragen) Wanneer de administrator dus een leerpakket zoekt, komt hij terecht in de volgende pagina met een lijst van leerpakketten die voldoen aan de eventuele zoekcriteria. In deze pagina kan hij dan de vragen gaan beheren van een leerpakket(aanpassen, verwijderen of nieuwe vragen toevoegen).
55
Figuur 4-23: Beheer vragen 4.2.12
Vragen aanpassen
Als de administrator kiest voor ‘Vragen wijzigen’ komt hij op deze pagina terecht. Hier kan hij voor alle vragen van het leerpakket de vraag en/of het antwoord wijzigen. Bij correcte invoer zal het systeem de gegevens wijzigen in de databank, anders zal er een foutmelding getoond worden.
Figuur 4-24: Vragen aanpassen 4.2.13
Vraag aanmaken
Wanneer de administrator heeft gekozen voor ‘Vragen toevoegen’ komt hij terecht op deze pagina. Hier heeft hij enkele keuzes om vragen toe te voegen: • • •
Via een txt-bestand uploaden Via een csv-bestand uploaden Handmatig invoeren
Voor het txt- en csv-bestand geldt dezelfde werking. De administrator zoekt naar een geldig bestand via de knop bladeren en klikt daarna op de uploadknop. Als de administrator geen bestand ter beschikking heeft, kan hij de vragen handmatig invoeren. Wanneer hij dit doet, krijgt hij een nieuw venster te zien waar hij een vraag en antwoord kan invullen.
56
Figuur 4-25: Vraag aanmaken 4.2.14
Vragen verwijderen
Wanneer de administrator heeft gekozen om vragen te verwijderen, komt hij op deze pagina terecht. Hier kan hij elke vraag of alle vragen verwijderen.
Alle vragen verwijderen
Verwijder
Figuur 4-26: Vragen verwijderen 4.2.15
Beheer tekst startpagina
De administrator kan ook kiezen om de tekst die op de startpagina verschijnt aan te passen. Hij heeft ook de mogelijkheid om de standaardafbeelding te wijzigen. Het tekstvak zal opgebouwd worden als een wysiwyg-editor, zo kan de administrator opmaak toevoegen aan de tekst.
57
Figuur 4-27: Tekst startpagina beheren 4.2.16
Bekijk uploadmap
Wanneer de administrator de inhoud wil bekijken van de uploadmap kiest hij voor ‘Bekijk uploadmap’. Hij komt dan terecht op een pagina met 3 knoppen: • • •
Map met vragen Map met afbeeldingen Map met geluiden
Figuur 4-28: Uploadmap bekijken Wanneer hij op één van de knoppen klikt, krijgt hij een pagina met de bestanden van die map. Bij vragen kan hij de bestanden openen, bij afbeeldingen kan hij de afbeeldingen bekijken in preview en in het oorspronkelijke formaat en bij geluiden kan hij de geluiden beluisteren.
58
5
ELEKTRONISCHE LEEROMGEVING
5.1
Programmeerstructuur
De applicatie is gebaseerd op het drielagenmodel. Dit bestaat uit: • • •
Presentation layer (Front end) Logical layer (Business Logic Layer & Data Access Layer) Data layer (Backend)
Dit model geeft de programmeur een duidelijke overzicht over de verschillende klassen en functionaliteiten. Dit maakt de code makkelijker onderhoudbaar. Hieronder zie je een voorstelling van het drielagenmodel.
Figuur 5-1: Drielagenmodel Presentation tier: GUI of grafische user interface Logical tier: php-klassen onderverdeeld in BLL en DAL • •
Business Logic Layer o Hier schrijf ik methodes die extra bedrijfslogica bevatten Data Access Layer (onderverdeeld in 2 soorten klassen) o CRUD § Basismethodes volgens CRUD: CREATE, READ, UPDATE en DELETE
Figuur 5-1: INSERT bewerking in CRUD-klasse o
DAL §
Methodes voor aangepaste CRUD-bewerkingen
59
Figuur 5-3: Aangepaste DELETE bewerking in DAL-klasse
Data tier: Dit is de database. Hieruit worden de gegevens gehaald die gebruikt worden in de andere tiers. 5.2
Lay-out
Omdat het om een nieuwe applicatie gaat, moest ik ook een lay-out maken. Omdat de functionaliteit van het programma belangrijker was voor mijn opdrachtgever heb ik niet heel veel tijd besteed aan de lay-out en gekozen voor een simpel design. Voor de lay-out heb ik gebruik maakt van een extern CSS-bestand. In een CSS of Cascading Style Sheets kun je de hele vormgeving van een webapplicatie bepalen.
Figuur 5-4: CSS-code Dit bestand heb ik dan geïntegreerd in de index.php-pagina. De lay-out is compatibel met de twee meest gebruikte browsers wereldwijd, namelijk Internet Explorer 6+ en Mozilla Firefox.
Figuur 5-5: Integratie CSS Om afgeronde hoeken te krijgen heb ik met javascript gewerkt. Ik heb een gratis script gedownload en daarna in de applicatie geïmplementeerd. Het script verandert alle hoeken van een bepaalde div in mooiere afgeronde hoeken. 5.3
Look and Feel
De hele applicatie is opgebouwd volgens dezelfde structuur. Alle pagina’s worden geopend via de index.php d.m.v. includes. Als we de pagina ‘home’ openen word de URL dus index.php?page=home. Zo moet niet telkens opnieuw de hele pagina geladen worden maar enkel de inhoud van de gekozen pagina. Elke webpagina wordt bewaard in een map ‘content’ en alle klassen in een map ‘classes’.
60
5.3.1
Index.php
Hier start de applicatie. Via de includes wordt de juiste inhoud ingeladen.
Figuur 5-6: Index.php 5.3.2
Access.php
In deze pagina worden de webpagina’s opgehaald en de rechten gecontroleerd. In deze pagina staan al mijn webpagina’s gedefinieerd.
Figuur 5-7: Access.php 5.3.3
Menu.php
Hierin zit het menu. Deze pagina wordt ingeladen in index.php via een include en zit zo dus automatisch bij elke pagina. 5.3.4
Content.php
Via deze pagina wordt de juiste pagina uit de map ‘content’ ingeladen in index.php.
Figuur 5-8: Content.php 5.3.5
Execute.php
Dit is ongeveer dezelfde pagina als index.php. Hier wordt enkel geen output getoond op het scherm. Ik heb deze pagina gebruikt om CRUD-bewerkingen uit te voeren. 5.4
Beveiliging
Het is essentieel om een applicatie voldoende te beveiligen. Zo heb ik mijn applicatie beveiligd tegen gebruikers met onjuiste rechten en SQL-injection en heb ik controle ingebouwd op invoervelden. Ook bij het aanpassen of verwijderen van data via de beheerfunctionaliteiten wordt er steeds om een bevestiging gevraagd.
61
5.4.1
Rechten
De applicatie is toegankelijk voor iedereen, maar als men gebruik wil maken van de uiteindelijke doelen van de applicatie dient men te beschikken over een gebruikersnaam en wachtwoord. Beschikt de gebruiker niet over deze gegevens, dan zal hij niet op de applicatie kunnen inloggen. Er is ook een beheerkant aan de applicatie die enkel toegankelijk is voor gebruikers met admin-rechten.
Figuur 5-9: Toegang Hierboven zie je de toegangscontrole voor een gebruiker met admin-rechten. Wanneer een gebruiker zonder de juiste rechten dus verbinding wilt maken met een pagina, zal hij een foutmelding krijgen. 5.4.2
SQL-injection
SQL-injections kunnen door malafide gebruikers worden gebruikt om via queries gegevens in de database aan te passen. Dit kan gebeuren wanneer de invoer van gebruikers niet voldoende gecontroleerd wordt. Om dit op te vangen heb ik gebruik gemaakt van de functie ‘mysql_real_escape_string()’. Deze functie escaped alle speciale tekens in een string die gebruikt word in een SQL-instructie.
Figuur 5-10: Escape functie Deze functie heb ik dan gebruikt bij alle functies in mijn klassen. Voorbeeld: $omschrijving = escape($leerpakket->getOmschrijving()); 5.4.3
Controle gebruikersinvoer met javascript
Om lege data in verplichte velden in de database te vermijden heb ik gebruik gemaakt van javascript. Met javascript kan je handig gebruikersinput in formulieren controleren en zo lege data vermijden. Ook om foutmeldingen van SQL en PHP te vermijden is javascript handig. Zo heb ik een functie geschreven die enkel laat inloggen wanneer zowel de naam als het wachtwoord zijn ingevuld. Hieronder zie je een voorbeeld van controle op lege velden tijdens het inloggen. In dit geval wordt de knop ‘inloggen’ enkel bruikbaar wanneer naam en wachtwoord zijn ingevuld.
62
Figuur 5-11: Javascriptfunctie 5.4.4
Bevestiging CRUD-acties
Wanneer een beheerder op het punt staat om data te wijzigen die grote gevolgen kunnen hebben op de database, wordt er een bevestiging gevraagd en een melding gegeven. Zo kunnen we een corrupte database vermijden. Hieronder zie je een voorbeeld van zo’n bevestiging.
Figuur 5-12: Bevestiging 5.4.5
Captcha
Om ongewenste spam en foutieve gegevens in de database te vermijden, heb ik gebruik gemaakt van captcha’s. Mijn captcha’s bestaan uit een afbeelding waarop een simpele rekensom staat afgebeeld. Deze som dient de gebruiker eerst uit te rekenen vooraleer hij zich bijvoorbeeld wil registreren. Zo kan aan elke vorm van kunstmatige intelligentie in de vorm van spambots de toegang geweigerd worden. Voor kunstmatige intelligentie is het namelijk zo goed als onmogelijk om een afbeelding te lezen. 5.5
Anysurfer
AnySurfer is een kwaliteitslabel voor websites die voor iedereen toegankelijk zijn, dus ook voor mensen met een functiebeperking. Meestal zijn het slechtzienden, blinden en ouderen die online problemen ondervinden, maar anySurfer bewaakt ook de toegankelijkheid voor internetgebruikers met motorische en auditieve beperkingen.
Figuur 5-13: Logo anysurfer Omdat ik het belangrijk vind dat iedereen van het internet gebruik moet kunnen maken, heb ik me ook aan de richtlijnen van anysurfer proberen te houden. Mijn applicatie is niet 100% toegankelijk, maar ik heb ze zo toegankelijk mogelijk gemaakt. Het was niet simpel om de applicatie toegankelijk te maken omdat ik met veel dynamische inhoud zit en veel pagina’s gebruik maken van javascript maar ik denk wel dat ik aan 2/3 van hun richtlijnen voldoe. 5.6
JQuery
In enkele pagina’s heb ik ook gebruik gemaakt van JQuery. Dit is een gratis javascriptframework. Ik heb JQuery gebruikt ter vervanging van AJAX omdat het snel en
63
gemakkelijk te gebruiken is. Hieronder zie je een voorbeeld van een functie geschreven met JQuery. Deze functie zal de invoer van gebruikers automatisch aanvullen met gegevens uit de database. Dit bevordert de gebruiksvriendelijkheid van de applicatie aanzienlijk.
Figuur 5-14: Functie in JQuery 5.7
Pagina’s gebruiker
5.7.1
Home
Bij het openen van de applicatie komt een gebruiker op de homepagina terecht. Hier kan de gebruiker in het menu kiezen tussen: • • •
Contact (inclusief gastenboek) Inloggen Registreren
Voor deze pagina’s moet de gebruiker niet aangemeld zijn.
Figuur 5-15: Home
64
5.7.2
Registratie
Een gebruiker is verplicht om zich eerst te registreren vooraleer hij zich kan aanmelden. De gebruiker moet enkele gegevens invoeren, die eerst worden gecontroleerd door het systeem vooraleer ze worden weggeschreven in de database. Er is ook een kleine spamcontrole die het moeilijker maakt voor spambots om automatisch gegevens toe te voegen aan de database. Wanneer de gebruiker niet alle gegevens heeft ingevuld, zal de knop ‘Registreren’ onbruikbaar blijven.
Figuur 5-16: Registratie gebruiker 5.7.3
Log-in
Gebruikers zijn verplicht om zich aan te melden om de applicatie ten volle te kunnen gebruiken. De knop ‘Inloggen’ wordt pas bruikbaar wanneer de gebruiker in alle twee de tekstvakken iets heeft ingevuld. Het systeem gaat kijken of de opgegeven naam en het wachtwoord overeenkomen met de gegevens uit de database. Wanneer de gebruiker zich succesvol aanmeldt, wordt hij doorverwezen naar zijn persoonlijke startpagina. Wanneer de gebruiker niet aangemeld kan worden, krijgt hij een foutmelding te zien en krijgt hij de kans om zich opnieuw aan te melden.
Figuur 5-17: Log-in gebruikers 5.7.4
Contact & gastenboek
Een gebruiker kan de beheerder van de applicatie ook contacteren via een contactformulier. Wanneer hij dit formulier invult en verzendt, stuurt het systeem een
65
mail met alle gegevens van het formulier naar het e-mailadres van de beheerder. Er is ook de mogelijkheid om het gastenboek te bekijken en eventueel te tekenen. 5.7.5
Persoonlijke pagina gebruiker
Wanneer de gebruiker zich correct heeft aangemeld, komt hij terecht op zijn persoonlijke pagina. Daar krijgt hij een overzicht van de herhalingen die hij moet maken en heeft hij ook enkele standaardkeuzes: • • • • • • • •
Persoonlijke leerpakketten Zoek leerpakketten Bekijk je statistieken Ga naar forum Pas je wachtwoord aan Verwijder je account Eventueel herhaling maken Eventueel examen maken
Figuur 5-18: Persoonlijke pagina
66
5.7.6
Persoonlijke leerpakketten
Op deze pagina krijgt de gebruiker een overzicht van alle leerpakketten die op zijn account staan. Hij ziet ook de leerpakketten die hij al heeft voltooid. Voor elk onvoltooid leerpakket heeft de gebruiker de mogelijkheid om het leerpakket te oefenen of van zijn account te verwijderen. Er is ook een knop ‘Leerpakket toevoegen’ aanwezig om naar leerpakketten te gaan zoeken en eventueel toe te voegen aan de account. Deze knop doet hetzelfde als de knop ‘Zoek leerpakketten’ op de persoonlijke pagina.
Figuur 5-19: Persoonlijke leerpakketten 5.7.7
Leerpakket toevoegen aan account
Wanneer de gebruiker kiest om een leerpakket toe te voegen aan zijn account, krijgt hij eerst een scherm met verschillende zoekfuncties. Hij heeft drie mogelijkheden: • • •
Zoeken op categorie Zoeken op de naam van het leerpakket Alle leerpakketten tonen
Figuur 5-20: Categorie kiezen Wanneer de gebruiker een keuze heeft gemaakt, zal het systeem alle leerpakketten tonen die overeenkomen met de zoekcriteria. Bij ‘Zoek op naam leerpakket’ wordt de knop ‘Zoek leerpakket’ pas zichtbaar wanneer er iets in het tekstvak wordt ingegeven. Tijdens het ingeven zal de gebruiker ook in een lijstje suggesties ontvangen. Dit is zoals het systeem van Google. Wanneer je in Google iets zoekt, geeft Google je meteen suggesties.
67
Wanneer een leerpakket al op de account van de gebruiker staat, zal de mogelijkheid ‘Toevoegen aan account’ niet meer toegankelijk zijn.
Figuur 5-21: Leerpakket toevoegen 5.7.8
Leerpakket oefenen
Wanneer de gebruiker kiest om een leerpakket te oefenen, komt hij op de volgende pagina terecht. Hier wordt een vraag gesteld die de gebruiker moet beantwoorden. Als hij het antwoord niet weet, kan hij op de knop ‘ik weet het niet’ klikken, dan verschijnt het juiste antwoord. Als hij het antwoord wel weet, vult hij het tekstvak in. Dan heeft hij de mogelijkheid om het antwoord te controleren vooraleer hij naar de volgende vraag gaat. Er kan niet enkel een vraag getoond worden, maar ook een afbeelding of een muziekfragment.
Figuur 5-22: Leerpakket oefenen Wanneer de gebruiker alle vragen heeft beantwoord, wordt hij doorverwezen naar de resultaatpagina. Hier krijgt hij alle juist- en foutbeantwoorde vragen te zien.
68
Figuur 5-23: Resultaat 5.7.9
Statistieken bekijken
De gebruiker heeft ook de mogelijkheid om te kijken hoe ver hij staat met het oefenen van een bepaald leerpakket.
Figuur 5-24: Leerpakket selecteren Wanneer hij een keuze gemaakt heeft uit de verschillende leerpakketten die op zijn account staan, krijgt hij zijn statistieken voor het gekozen leerpakket te zien. Hij heeft ook de mogelijkheid om deze te resetten om zo met een schone lei te herbeginnen.
Figuur 5-25: Statistieken bekijken
69
5.7.10
Herhalingen oefenen
Dit is identiek aan ‘Leerpakket oefenen’, alleen worden hier de vragen random gesteld uit de tabel ‘herhaling’. Zo kunnen vragen meerdere keren voorkomen of niet voorkomen. Aan de hand van het aantal vragen in de tabel 'herhaling' wordt er een bepaald aantal gesteld.
Figuur 5-26: Herhalingen maken 5.7.11
Examen maken
Na 30 dagen herhalingen dagelijks te oefenen, krijgt de gebruiker de kans om zijn kennis te bewijzen. Dit kan hij doen door op 'Ik ken het leerpakket’ te klikken. Hij krijgt dan weer zoals bij ‘leerpakket oefenen’ alle vragen voorgeschoteld. Als hij uiteindelijk meer dan 80% behaalt, zal het systeem het leerpakket als voltooid accepteren en komt het leerpakket bij de voltooide leerpakketten van de gebruiker te staan.
Figuur 5-27: Examen maken 5.7.12
Wachtwoord aanpassen
Een gebruiker heeft de mogelijkheid om zijn wachtwoord te wijzigen wanneer hij maar wil. Hij moet zijn oude en nieuwe wachtwoord invullen en het nieuwe ter controle nog eens herhalen. Het oude wachtwoord ingeven is een extra beveiliging. Zo kunnen gebruikers die het wachtwoord niet kennen, het wachtwoord niet wijzigen.
Figuur 5-28: Wachtwoord aanpassen 5.7.13
Forum bekijken
Ik heb ook een ontmoetingsplaats in de vorm van een forum geïmplementeerd in de applicatie. Ik heb gekozen om gebruik te maken van een al bestaand forum. Mijn keuze is uiteindelijk gevallen op het populaire opensourceforum ‘phpBB’. De naam zelf zegt het al, phpBB is geschreven in PHP. De installatie is erg simpel. Je downloadt de bestanden van hun site en kopieert ze naar de server. Dan open je 'install.php' en doorloop je de wizard. Wanneer de gebruiker naar het forum gaat, zal hij zich eerst nog wel moeten registreren. Daarna kan hij met andere gebruikers communiceren op het forum. 5.7.14
Wachtwoord vergeten
Het kan altijd gebeuren dat een gebruiker zijn wachtwoord vergeet. Daarom heb ik een functie ingebouwd waar de gebruiker zijn e-mailadres moet ingeven wanneer hij zijn wachtwoord niet meer weet. Het systeem zal het e-mailadres controleren en als het emailadres in de database voorkomt, zal het wachtwoord naar het e-mailadres verstuurd
70
worden. Als het e-mailadres niet voorkomt in de database, zal de gebruiker een foutmelding krijgen.
Figuur 5-29: Wachtwoord vergeten
Pagina’s beheerder
5.8
In dit onderdeel ga ik de pagina’s waarvan de beheerder gebruik maakt, beschrijven. 5.8.1
Log-in beheerder
Identiek aan de log-in voor gebruikers, krijg je hier admin-rechten waardoor je de applicatie kan beheren. 5.8.2
Beheerpaneel
Wanneer de beheerder zich succesvol heeft aangemeld, komt hij terecht op de beheerpagina. Hier vindt hij volgende mogelijkheden: • • • • • •
Beheer gebruikers Beheer categorieën Beheer leerpakketten Beheer vragen Beheer tekst startpagina Bekijk uploadmap
Figuur 5-30: Beheerpaneel 5.8.3
Gebruikers
Wanneer de beheerder gebruikers wil beheren, krijgt hij eerst een pagina met zoekfuncties. Hier kan hij gebruikers zoeken met de volgende mogelijkheden: • • •
Zoek per functie Zoek op naam Alle gebruikers tonen
De beheerder kan via deze pagina ook een nieuwe gebruiker toevoegen. Wanneer de beheerder een gebruiker wil zoeken, zal het systeem alle gebruikers tonen die aan de zoekcriteria voldoen.
71
Figuur 5-31: Overzicht gebruikers De beheerder kan een nieuwe gebruiker aanmaken, een gebruiker aanpassen of verwijderen. 5.8.4
Gebruiker aanpassen
Als de beheerder een gebruiker wil aanpassen, komt hij terecht op de onderstaande pagina. Hier kan hij de gebruikersnaam, het wachtwoord, het e-mailadres en de functie wijzigen. Vooral de functie is de belangrijkste, hiermee kan een beheerder een gebruiker toegang geven tot het beheerpaneel.
Figuur 5-32: Gebruiker aanpassen 5.8.5
Categorieën
Een beheerder kan ook categorieën beheren. Hij krijgt dan een pagina met alle categorieën en de mogelijkheden om een nieuwe categorie toe te voegen, een categorie aan te passen of te verwijderen.
Figuur 5-33: Overzicht categorieën
72
5.8.6
Leerpakketten
De beheerder moet natuurlijk ook de leerpakketten of cursussen kunnen beheren. Eerst krijgt hij opnieuw een pagina met verschillende zoekfuncties te zien. Hier kan hij kiezen uit verschillende mogelijkheden: • • •
Zoek per categorie Zoek op naam leerpakket Alle leerpakketten tonen
De beheerder kan hier ook een nieuw leerpakket toevoegen.
Figuur 5-34: Zoeken naar leerpakket Wanneer de beheerder gebruik heeft gemaakt van één van de zoekfuncties, zal het systeem alle leerpakketten tonen die aan de zoekcriteria voldoen. Hier kan de beheerder een nieuw leerpakket toevoegen, een leerpakket aanpassen of verwijderen.
Figuur 5-35: Beheer leerpakketten 5.8.7
Leerpakket aanpassen
Wanneer de beheerder een leerpakket wil aanpassen, krijgt hij de mogelijkheid om alle gegevens van het leerpakket aan te passen. Voor een leerpakket is dat de naam, omschrijving en de categorie.
Figuur 5-36: Leerpakket aanpassen 5.8.8
Beheer vragen
Vragen beheren is een essentieel onderdeel voor de beheerder. Wanneer de beheerder vragen wil beheren, krijgt hij eerst de zoekfuncties te zien om leerpakketten te zoeken.
73
De beheerder kiest dan uit één van de mogelijkheden: • • •
Zoek per categorie Zoek op naam leerpakket Alle leerpakketten tonen
Figuur 5-37: Zoeken naar leerpakket(vragen) Het systeem toont nu alle leerpakketten die voldoen aan de zoekcriteria. Voor elk leerpakket kan de beheerder vragen aanpassen, vragen verwijderen of vragen toevoegen. Als er nog geen vragen zijn voor een leerpakket, zullen de opties ‘Vragen aanpassen’ en ‘Vragen verwijderen’ niet toegankelijk zijn.
Figuur 5-38: Beheer leerpakketten 5.8.9
Vragen toevoegen
Als de beheerder kiest om vragen toe te voegen aan een leerpakket, krijgt hij drie mogelijkheden: • • •
Uploaden via een txt-bestand Uploaden via een csv-bestand Handmatig invoeren
74
Figuur 5-39: Vragen toevoegen Wanneer de beheerder heeft gekozen om een txt-bestand te uploaden, moet hij via de knop ‘Bladeren…’ het bestand zoeken op zijn computer en daarna op ‘Upload txtbestand’ klikken. Het systeem zal dan alle vragen uit het bestand invoeren in de database. Hier zie je hoe het txt-bestand eruit moet zien. Er moeten altijd drie komma’s per lijn staan.
Figuur 5-40: Indeling txt-bestand Als de beheerder een csv-bestand wil uploaden, volgt hij dezelfde procedure als bij het txt-bestand. Hier zie je hoe het csv-bestand eruit moet zien.
Figuur 5-41: Indeling csv-bestand 5.8.10
Vragen handmatig invoeren
De beheerder kan de vragen ook handmatig invoeren. Hij komt dan terecht op deze pagina. Hier moet hij een vraag en een antwoord ingeven. Hij mag ook nog twee alternatieve antwoorden ingeven. Ook kan hij een type vraag kiezen. Hij kan kiezen uit 4 verschillende types: • • • •
EXACT (het antwoord van de gebruiker moet identiek zijn aan het antwoord in de database) CI (het antwoord is Case Insensitive of niet hoofdlettergevoelig) NR (het antwoord van de gebruiker moet numeriek zijn) DATUM (het antwoord van de gebruiker moet een datumformaat zijn)
75
Figuur 5-42: Vraag handmatig toevoegen 5.8.11
Vragen aanpassen
Wanneer de beheerder vragen wil aanpassen, krijgt hij een scherm dat gelijkaardig is aan het scherm om vragen handmatig in te voeren. Hij kan op deze pagina de vraag volledig aanpassen.
Figuur 5-43: Vraag aanpassen 5.8.12
Vragen verwijderen
De beheerder kan ook vragen verwijderen. Hij kan vraag per vraag verwijderen of alle vragen van een leerpakket in één keer.
Figuur 5-44: Vragen verwijderen 5.8.13
Beheer tekst startpagina
Er is ook een mogelijkheid om de tekst op de startpagina te wijzigen. Op onderstaande pagina zie je hoe de beheerder de tekst kan wijzigen. Met een wysiwyg-editor kan de
76
beheerder ook de opmaak van de tekst beheren. De beheerder kan ook nog de afbeelding veranderen. Hiervoor moet hij simpelweg een andere afbeelding uploaden.
Figuur 5-45: Beheer tekst startpagina 5.8.14
Bekijk afbeeldingen uploadmap
De administrator kan de uploadmap bekijken via het beheerpaneel. Hierin kan hij kiezen om alle afbeeldingen, alle vragen of alle muziekfragmenten te bekijken. Wanneer de beheerder kiest om alle afbeeldingen te zien komt hij terecht op de onderstaande pagina. Hier krijgt hij een preview van de afbeelding te zien, wanneer hij met zijn muis over de naam gaat. Om de afbeelding in het juiste formaat te bekijken, dient de beheerder op de link te klikken.
Figuur 5-46: Bekijk afbeeldingen uploadmap
77
BESLUIT…. De ervaring om drie maanden lang in het echte bedrijfsleven te kunnen meedraaien is een zeer interessante en leerrijke periode geweest voor mij. Doordat ik twee verschillende opdrachten had kon ik mijn kennis veel scherper aansterken. De elektronische leeromgeving is een gebruiksvriendelijke en handige applicatie die werknemers in staat stelt om op basis van herhalingen, opleidingen en cursussen te leren. De applicatie kan tevens vlot en snel beheerd worden door middel van de efficiënte beheerfuncties. Voor het programmeren heb ik eerst een grondige analyse gemaakt. Daarna heb ik de applicatie volledig zelfstandig gerealiseerd, waarvoor ik toch wel trots op mezelf ben. Het zelf installeren en configureren van de Apache webserver, MySQL-database en phpMyAdmin waren zeker pluspunten omdat die niet tijdens de lessen werden aangeleerd. Niet alleen programmeren kwam aan bod, maar ook een brede waaier aan verschillende IT-taken, van domain controllers configureren tot het maken van netwerkkabels en het configureren van printservers. Dit bracht wat variatie in mijn werk en zo kon ik dus ook in teamverband werken. Met deze stage heb ik mijn kennis in PHP, MySQL en javascript aanzienlijk kunnen aansterken. Zeker omdat ik soms problemen tegenkwam die ik dan zelf moest oplossen. Ook mijn kennis van eisenanalyse en UML-technieken heb ik kunnen verbeteren. Ik heb nu ook een helderder beeld van hoe het er aan toegaat op een interne helpdesk. De ervaring op de helpdesk is ook een mooi pluspunt. Al deze kennis zal zeker bijdragen in het versterken van mijn competenties als toekomstige informaticus.
78
LITERATUURLIJST Introductiebrochure Mondi Belcoat. (2009). Duffel.[Brochure] Anysurfer. (s.a.). Gevonden op 18 maart 2010 op het internet: http://www.anysurfer.be/nl/ Processes. (s.a.). Gevonden op 19 maart 2010 op het internet: http://www.polynov.com/processes/lightCoating.html Mondi structure. (s.a.).Gevonden op 19 maart 2010 op het internet: http://www.mondigroup.com/da/PortalData/1/Resources/about_us/mondiStructure_09. gif REAL VNC diagram (s.a.). Gevonden op 23 maart 2010 op het internet: http://www.realvnc.com/images/VNC_Diagram_V2_w800.jpg Apache, PHP en MySql installeren (s.a.). Gevonden op 23 maart 2010 op het internet: http://www.html-site.nl/apache_php_mysql.php Virtual Network Computing (2009, november 21). Gevonden op 23 maart 2010 op Wikipedia: http://nl.wikipedia.org/wiki/Virtual_Network_Computing MySQL (2010, mei 13). Gevonden op 26 maart 2010 op Wikipedia: http://nl.wikipedia.org/wiki/MySQL Frankwatching (2009, november 23). Re: Wireframes, de bouwtekening van een website[Weblogbericht]. Gevonden op: http://www.frankwatching.com/archive/2009/11/23/wireframes-de-bouwtekening-vaneen-website/ TheSmartCodes (2010, februari 23). Re: Three-tier architecture in .Net[Weblogbericht]. Gevonden op: http://www.thesmartcodes.com/three-tier-architecture-in-net/ Gliffy - Online hulpmiddel om diagrammen kostenloos te creëren en te delen (2007, maart 31). Gevonden op 4 mei 2010 op het internet: http://www.online-techtips.com/cool-websites/gliffy-online-tool-to-create-and-share-diagrams-for-free/nl/
79
BIJLAGE 1: PROCEDURE VOOR HET VERWIJDEREN VAN SCHADELIJKE SOFTWARE Deze procedure is gebaseerd op de worm ‘flystud’. Een worm is een programma en kan zichzelf verspreiden zonder dat de gebruiker hiervoor een actie moet doen. Stappen *Voor het scannen altijd systeemherstel uitschakelen zodat de computer volledig gescand kan worden. Systeemherstel uitschakelen 1. Klik op start, alle programma’s, bureau-accessoires , systeemwerkset en dan op systeemherstel.
Figuur 5-47: Systeemherstel 2. Klik op ‘Instellingen van Systeemherstel’
Figuur 5-48: Instellingen systeemherstel 3. Zet een vinkje bij ‘Systeemherstel op alle stations uitschakelen’. Klik op toepassen en daarna op ‘ok’.
80
4. Systeemherstel is nu uitgeschakeld, sluit systeemherstel af door te klikken op het witte kruisje met de rode achtergrond. Stap 1: Identificeren en zoeken naar processen en beëindigen van processen 1. 2. 3. 4. 5.
Onthoud de naam van het gevonden virus(melding outlook). Houd ctrl-alt-delete ingedrukt. Nu opent een nieuw venster. Kies voor taakbeheer en klik dan op het tabblad processen. In deze lijst zoek je naar een bestand dat de naam van het virus heeft. Klik het bestand aan en klik onderaan voor taak beëindigen. Herhaal dit voor alle virussen die voorkomen in de lijst.
Figuur 5-49: Taakbeheer 6. Sluit taakbeheer door op het witte kruisje met rode achtergrond te klikken. Stap 2: Zoek en verwijder de besmette folder of bestand 1. Klik met je rechtermuisknop op start en klik op zoeken. 2. Eerst gaan we er voor zorgen dat alle bestanden en mappen worden weergegeven. Klik op extra en dan op mapopties. 3. Klik op het tabblad ‘Weergave’
Figuur 5-50: Mapopties
81
In de lijst Geavanceerde instellingen zoek je naar ‘verborgen bestanden en mappen weergeven’ en dit vink je aan. Dan zoek je naar ‘beveiligde besturingssysteembestanden verbergen’ en dit vink je uit. Dan klik je op toepassen en daarna op ‘ok’. 4. In het bovenste invulvakje typ je de naam van het virus in, bij ‘zoeken in’ kies je voor ‘Deze computer’ en dan klik je op zoeken.
Figuur 5-51: Zoeken 5. De computer zal een venster tonen met de gevonden bestanden.
Figuur 5-52: Zoekresultaten Dan klik je met de linkerknop op het bestand of de folder. Nu is het bestand geselecteerd. Houd nu de shift en de delete knop in om het bestand of de folder permanent te verwijderen. De computer zal opnieuw een venster tonen om te vragen of je het bestand of de folder zeker wilt verwijderen. Dan kies je voor ‘Ja’.
82
Figuur 5-53: Bevestiging verwijderen bestand Stap 3: Zoek alle autorun.inf bestanden dat het virus eventueel heeft aangemaakt. 1. Klik op met de rechtermuisknop op start en klik op zoeken. 2. In het bovenste invulvenster typ je ‘autorun.inf’ en bij ‘zoeken in’ kies je voor deze computer. Klik op zoeken. De computer zal een lijst tonen met alle bestanden die overeen komen met ‘autorun.inf’.
Figuur 5-54: Zoekresultaten(2) 3. Nu zal je elk bestand moeten gaan controleren. Dubbelklik op het bestand, kladblok zal geopend worden. Dan moet je kijken of je volgende lijnen ziet staan in het bestand: [AutoRun] open=Recycle.exe shell\1={Random characters} shell\1\Command=Recycle.exe shell\2\={Random characters} shell\2\Command=Recycle.exe shellexecute=Recycle.exe Als dit het geval is zal je het bestand moeten verwijderen. Die doe je door rechtermuisklik te doen op het bestand en dan kiezen voor verwijderen. Herhaal stap 3 voor ALLE bestanden in de lijst. 4. Het virus is nu van je computer verwijderd, maar voor alle zekerheid is het beter om toch nog een scan te doen ter controle. Klik met je rechtermuisknop het
83
blauwe ronde icoontje met het gele lijntje linksonderaan op je scherm en kies voor officescan console. 5. Zet een vinkje bij deze computer(het vinkje bij dvd mag uitgevinkt worden) en klik dan op scan.
Figuur 5-55: Officescan De virusscanner gaat nu de hele computer nog eens scannen naar virussen. Dit kan even duren. Als er virussen gevonden worden, zal de virusscanner dit aangeven en zal deze bestanden onschadelijk maken. Maar toch is het aangeraden om dan terug te beginnen van stap 1 om te kijken of het virus wel zeker is verwijderd.
84
BIJLAGE 2: CONFIGURATIE VAN OUTLOOK MET MICROSOFT EXCHANGE SERVER Stappen 1. We kiezen om een nieuwe account aan te maken via een Microsoft exchange-server. We kiezen er ook voor om de serverinstellingen handmatig te configureren. Bij Microsoft Exchange server typen we de naam van onze server in, in ons geval is dit viemx001.mp.local en vinken we voorlopig exchange-modus met cache af. Bij gebruikersnaam typen we de eerste 7 letters van de achternaam in en de eerste letter van de voornaam. In mijn geval is dit dan ANDRONIL. Dan kiezen we voor meer instellingen.
Figuur 5-56: Microsoft Exchange-server instellen 2. In het tabblad 'Algemeen' kiezen we voor verbindingsstatus handmatig instellen en een verbinding maken met het netwerk. Dan gaan we verder naar het tabblad 'Geavanceerd'.
Figuur 5-57: Tabblad 'Algemeen' 3. In het tabblad 'Geavanceerd' is er de mogelijkheid om een extra postvak toe te voegen. Dit gaan we nu niet doen. Wat we wel moeten doen is de Exchange-modus met cache aanvinken. Gedeelde mappen downloaden vinken we ook aan. Vervolgens kiezen we voor instellingen van bestand met offlinemappen(we gaan ervan uit dat er
85
al een mapje is aangemaakt op de computer waarin de offlinebestanden gaan terecht komen).
Figuur 5-58: Tabblad ‘Geavanceerd’ 4. Bij 'Bestand:' bladeren we naar het aangemaakte mapje. Outlook zal vragen om een ost-bestand aan te maken om de offlinebestanden in te bewaren, aan te maken, dan kiezen we voor ja. Klik op ‘OK’.
Figuur 5-59: Instellingen offlinemappen 5. Nu gaan we het tabblad 'Beveiliging' instellen. We vinken beide checkboxen aan en bij netwerkbeveiliging bij aanmelden kiezen we voor negotiatie-verificatie. We gaan nu verder naar het tabblad 'Verbinding'.
Figuur 5-60: Tabblad 'Beveiliging
86
6. Onderaan vinken we de mogelijkheid aan om via http-verbinding te maken met Microsoft Exchange. Om de proxy-instellingen te bekijken, klikken we op de onderste knop.
Figuur 5-61: Tabblad verbinding 7. Bij de URL geven we het webadres in van de Mondi Group webmail. Typ dus webmail.mondigroup.com in het tekstvak. Onderaan bij proxyverificatie kiezen we voor 'Basisverificatie' en we klikken op ‘OK’. Outlook is nu volledig klaar voor gebruik.
Figuur 5-62: Proxy-instelling Microsoft Exchange
87
BIJLAGE 3: UITWERKING BATCHFILE CODE @echo off SET LOGFILE="W:\IT\_Shared\login.log" echo ================================================ ========================= echo COPY OUTLOOK PST-FILES echo ================================================ ========================= echo copy PST-FILES FROM I: TO C: -- even geduld aub ECHO date time %LOGFILE%
%USERNAME%
Copy Outlook PST-Files >>
if %USERNAME%==ANDRONIL goto CHECKLANG if %USERNAME%==Geys.Kurt goto CHECKLANG goto END :CHECKLANG if exist "C:\Documents and Settings\%USERNAME%\Mijn documenten\" goto NED if exist "C:\Documents and Settings\%USERNAME%\My documents\" goto ENG echo. echo echo
NEDERLANDSTALIGE INTERFACE --------------------------
echo. :NED if exist "C:\Documents and Settings\%USERNAME%\Mijn documenten\_Systeem\outlook" goto copyNED goto createNED :createNED md "C:\Documents and Settings\%USERNAME%\Mijn documenten\_Systeem\outlook" :copyNED copy i:\_Systeem\outlook\*.pst "c:\Documents and Settings\%USERNAME%\Mijn documenten\_Systeem\outlook" /Y goto END echo. echo
ENGELSTALIGE INTERFACE
88
echo echo.
----------------------
:ENG if exist "C:\Documents and Settings\%USERNAME%\My documents\_Systeem\outlook" goto copyENG goto createENG :createENG md "C:\Documents and Settings\%USERNAME%\My documents\_Systeem\outlook" :copyENG copy i:\_Systeem\outlook\*.pst "c:\Documents and Settings\%USERNAME%\My documents\_Systeem\outlook" /Y goto END :END OUTPUT Deze output is niet zichtbaar voor de gebruiker.
Figuur 5-63: Output batchfile