BachelorProef ILIAS Solutions - Typepad
Transcript of BachelorProef ILIAS Solutions - Typepad
BACHELORPROEF | STAINIER NICOLAS
BachelorProef
ILIAS Solutions
STAINIER NICOLAS
HOGESCHOOL-UNIVERSITEIT BRUSSEL | Toegepaste Informatica - Software Ontwikkeling | 2013-2014
1 | P a g e
1 Voorwoord
Dit document werd opgesteld door Stainier Nicolas, laatstejaars student Toegepaste Informatica aan de
Hogeschool-Universiteit Brussel. In volgend document krijgt u alle informatie in verband met zijn IT-project.
Het IT-project is een opdracht die werd toegewezen aan alle laatste jaar studenten aan de HUB. Het gaf hen
de mogelijkheid een project te kiezen / op te stellen en daar gedurende een volledig jaar aan te werken.
Het eerste semester werd toegewezen aan de analyse van het project en het tweede semester aan de
uitvoering van het project.
Alle studenten kregen de kans dit IT-project in groepjes van twee personen uit te voeren. Daarom kozen
Michael Dohou en ikzelf (Nicolas Stainier) hiervoor samen te werken. Onze keuze als IT-project ging meteen
naar een project van ILIAS Solutions.
Het project van ILIAS Solutions was een Software project. Het was de bedoeling een mobiele applicatie te
ontwikkelen voor de inventarisatie van een warehouse te vergemakkelijken. Deze applicatie is toegankelijk
op twee mobiele platformen (Android en iOS) en op desktop computers.
In dit document wordt u meer informatie gegeven over alle processen van het opstarten tot het afsluiten
van het project.
Vervolgens bedank ik de Hogeschool Universiteit Brussel voor de opportuniteit die mij geboden werd om
te werken aan deze bachelor proef.
Het is voor ons een enorm leerrijke ervaring die zonder dit IT-project niet mogelijk geweest zou zijn. De
kans krijgen niet alleen een stage te doen maar ook de uitvoering van een volledig project is uitzonderlijk.
Dit is een kennis die we als bagage meenemen in onze latere carrière.
Ook wil ik graag mijn teamgenoot, Dohou Michael, bedanken voor alle hulp die hij mij heeft geboden.
Zonder hem had dit proces veel zwaarder geweest en had ik nooit even veel kunnen bijleren en resultaat
kunnen boeken.
Ten slotte willen we ILIAS Solutions bedanken voor alle tijd en middelen die zij hebben vrij gemaakt om aan
dit project te werken. Specifieker willen we onze stagementoren, Pierre Van Brussel en Dimitry Van De
Velde, bedanken die ons bijstonden gedurende het hele project.
2 | P a g e
2 Inhoudsopgave 1 Voorwoord .............................................................................................................................................. 1
3 Inleiding................................................................................................................................................... 4
4 Acroniemenlijst ....................................................................................................................................... 5
5 Organisatiebeschrijving ........................................................................................................................... 6
5.1 ILIAS Solutions ................................................................................................................................ 6
5.2 Ligging ............................................................................................................................................. 6
5.3 Geschiedenis en huidige situatie .................................................................................................... 7
5.4 Producten ....................................................................................................................................... 8
5.5 Partners .......................................................................................................................................... 9
6 Opdrachtomschrijving ........................................................................................................................... 10
6.1 Huidige situatie ............................................................................................................................. 10
6.2 Toekomstgerichte oplossingen ..................................................................................................... 10
6.3 Out-side problemen met de applicatie......................................................................................... 11
6.3.1 Gebruiksvriendelijkheid ............................................................................................................ 11
6.3.2 Wi-Fi verbinding ....................................................................................................................... 11
6.3.3 Downloaden van de applicatie ................................................................................................. 11
7 Context .................................................................................................................................................. 12
7.1 Specialisatie en keuze ................................................................................................................... 12
7.2 Doel van het project ..................................................................................................................... 12
7.3 Mobiele oplossing ......................................................................................................................... 12
7.4 Functionaliteiten van de applicatie .............................................................................................. 13
8 Technische Uitwerking .......................................................................................................................... 14
8.1 Aanpak .......................................................................................................................................... 14
8.2 Use-cases ...................................................................................................................................... 15
8.2.1 Use Case: Inloggen / Uitloggen ................................................................................................ 16
8.2.2 Use Case: Data downloaden ..................................................................................................... 18
8.2.3 Use Case: Vier soorten inventarisaties maken ......................................................................... 19
8.2.4 Use Case: Hoeveelheid van goederen bevestigen / veranderen. ............................................ 20
8.2.5 Use Case: Goederen scannen ................................................................................................... 21
8.2.6 Use Case: Gemaakte inventarissen opladen en feedback opgeladen inventarissen bekijken . 22
8.2.7 Use Case: on- en offline werken ............................................................................................... 23
8.3 Gebruikte technieken ................................................................................................................... 24
3 | P a g e
8.3.1 Vereisten voor de uitwerking van het project .......................................................................... 24
8.3.2 HTML5 ...................................................................................................................................... 25
8.3.3 CSS3 .......................................................................................................................................... 26
8.3.4 JavaScript .................................................................................................................................. 26
8.3.5 jQuery ....................................................................................................................................... 27
8.3.6 jQuery Mobile ........................................................................................................................... 27
8.3.7 XML ........................................................................................................................................... 28
8.3.8 AJAX .......................................................................................................................................... 28
8.3.9 SQLite ....................................................................................................................................... 29
8.3.10 Phonegap.............................................................................................................................. 30
8.4 Ontwikkelde ICT oplossing - Stock inventory Application ............................................................ 35
8.5 Ontwikkelde functionaliteiten ...................................................................................................... 35
8.6 Prototype ...................................................................................................................................... 37
9 Planning ................................................................................................................................................ 50
9.1 Technical planning ........................................................................................................................ 50
9.2 Practical planning ......................................................................................................................... 50
10 Kritische SWOT analyse van het resultaat ............................................................................................ 51
10.1 Strengths ....................................................................................................................................... 51
10.2 Weaknesses .................................................................................................................................. 52
10.3 Oportunities .................................................................................................................................. 53
10.4 Threats .......................................................................................................................................... 53
11 Persoonlijk ontwikkelingsplan .............................................................................................................. 54
11.1 Algemene competenties (niet-IT) ................................................................................................. 55
11.2 ICT-specifieke competenties......................................................................................................... 56
11.3 Algemene feedback van de stagementor ..................................................................................... 58
12 Slotwoord .............................................................................................................................................. 59
13 Bijlagen .................................................................................................................................................. 60
13.1 Weekverslagen ............................................................................................................................. 60
13.2 Manual “Manage Stock Inventory Application” ........................................................................... 64
13.3 Curriculum Vitae ........................................................................................................................... 76
13.4 Presentatie Bachelorproef ............................................................................................................ 78
13.5 Code Samples ............................................................................................................................... 87
13.6 Bronnen ........................................................................................................................................ 93
4 | P a g e
3 Inleiding
Aan het begin van dit schooljaar (2013-2014) kregen we de opdracht een IT-project op te stellen. Het IT-
project hield in dat men een project zou analyseren (eerste semester) en implementeren (tweede
semester).
In het eerste semester kregen we de mogelijkheid zelf een project te kiezen. We gingen op zoek naar een
project waarin we de mogelijkheid kregen een mobiele applicatie te ontwikkelen. Dit onderwerp sprak ons
meteen aan omdat we ervan uitgaan dat mobiele applicaties een enorme groei ondergaan en dus
toekomstgericht zijn. Uit de vele projectmogelijkheden kwamen we al snel terecht bij ILIAS Solutions die
ons een project voorstelden. Dit project was de ontwikkeling van een mobiele applicatie voor de Belgische
defensie. We maakten al snel een afspraak om dit project te bespreken. Na het bespreken ervan begonnen
we met de hele business kant van het project. We creëerden een PID, business analyse, technische analyse,
een prototype en nog verschillende andere documenten.
Eens het eerste semester was afgelopen creëerden we een paper over alle analyses die in het eerste
semester gedaan werden. Door deze analyses was het voor ons mogelijk in het tweede semester meteen
te beginnen aan ons IT-project. Voor dit project tot een goed eind te krijgen kregen we zowel technische
als business hulp. Met deze basis en hulp konden we startten aan de creatie van de applicatie.
De applicatie die we kozen was een applicatie die zou dienen om de inventarisatie in magazijnen van de
Belgische defensie te vergemakkelijken.
U kan meer informatie vinden over ILIAS Solutions, een opdrachtomschrijving, de uitwerking en de
bedoeling van de applicatie, een SWOT analyse van het resultaat en een persoonlijk ontwikkelingsplan
tijdens deze stage in deze paper.
5 | P a g e
4 Acroniemenlijst
ISO 9001 International Organization for Standardization
NAVO Noord-Atlantische VerdragsOrganisatie
COTS Commercial-Off-The-Shelf
FACh Fuerza Aerea de Chile
ABNL Admiraliteit BENELUX
PPPIOO Prepare – Plan – Design – Implement – Operate – Optimize
HTML HyperText Markup Language
CSS Cascading Style Sheets
AJAX Asynchroon JavaScript en XML
XML eXtended Markup Language
REST Representational state transfer
DOM Document Object Model
SDK Software development kit
VPN Virtual Private Network
JS JavaScript
SWOT Strengths – Weaknesses – Opportunities – Threats
PID Project Initiation Document
6 | P a g e
5 Organisatiebeschrijving
5.1 ILIAS Solutions ILIAS Solutions is een bedrijf dat gespecialiseerd is in informatie management oplossingen voor defensie-
en humanitaire operaties te ondersteunen. Hun software platformen zijn gericht op het optimaliseren van
de operationele gereedheid en zijn gebaseerd op het beheren van de middelen die nodig zijn voor deze
operaties.
Om hun klanten te voorzien van oplossingen die zijn afgestemd op hun specifieke behoeften bestaat ILIAS
Solutions uit een effectief team van deskundigen in de ontwikkeling, implementatie en onderhoud van
software systemen. Het ILIAS team kan u voorzien van een breed scala van vaardigheden, variërend van
business analyse, procesverbetering en project management om software te ontwikkelen, testen,
opleiding, onderhoud, helpdesk-diensten, en nog veel meer.
ILIAS Solutions is ISO 9001 gecertificeerd voor alle activiteiten die verband houden met de ontwikkeling,
levering en onderhoud van IT-oplossingen voor vermogensbeheer.
5.2 Ligging ILIAS Solutions is een Belgisch bedrijf gelegen te Brussel in Haren. Dicht bij het centrum van de Europese
Unie en het hoofdkwartier van de NAVO (de Noord-Atlantische VerdragsOrganisatie).
7 | P a g e
5.3 Geschiedenis en huidige situatie ILIAS Solutions is ontstaan in 1997 en was oorspronkelijk een project voor de Belgische Luchtmacht. De
Belgische Luchtmacht had nood aan aanzienlijke verbetering in beschikbaarheid van vliegtuigen, en
tegelijkertijd, om ondersteuningskosten te verminderen.
Origineel heeft ILIAS Solutions vooral moeten zorgen voor het beheren van het onderhoud van F-16
vliegtuigen en andere Belgische schepen. Dit project werd ondersteund over de voorbijen jaren door
Coopers & Lybrand (PrinceWaterhouseCoopers en IBM Consulting).
Vanaf 2006 is ILIAS Solutions een onafhankelijke Belgische dienstverlener geworden voor particuliere
klanten.
Ze bouwen, implementeren en beheren (COTS) informatiesystemen voor de Belgische defensie.
Naast de Belgische defensie werkt ILIAS Solutions nu ook voor Fuerza Aerea de Chile (FACh), of met andere
woorden, de Chileense Luchtmacht.
ILIAS Solutions heeft alle functionaliteiten geïmplementeerd voor het onderhouden van de 46 F-16
vliegtuigen die de Antofagasta en Iquique Air Force Bases van Chili beschikt.
De Chileense Luchtmacht is ILIAS’ hulp langzamerhand aan het uitbreiden over heel hun luchtmacht. Ten
laatste werkt ILIAS Solutions voor het Admiraliteit BENELUX (ABNL) voor het onderhouden van Hollandse
en Belgische Marinecomponenten.
Bron: ILIAS Solutions, http://www.ilias-solutions.com [10/06/2014]
8 | P a g e
5.4 Producten ILIAS Solutions werkte in zijn 17-jarige bestaan al verschillende producten uit. Onderstaand vindt u een lijst
met alle producten die ILIAS Solutions reeds ontwikkelt heeft.
1) Een Oracle platform. Met dit platform kan defensie;
Operaties organiseren
Plannen van een militaire operatie.
beheren van de vluchtmacht
beheren van de inzet en transport van troepen
Beheren van militair materiaal
Het beheren van militair materiaal kan men zien als het beheren van de magazijnen en de
daar bijhorende stock. Dit is de sector waarin onze bachelorproef wordt gemaakt.
Beheren van het personeel
Ze ontwikkelden een Human Resources Management (HRM) systeem voor het beheren
van personeel. Door dit systeem kan men weten wie waar en wanneer werkt.
Beheren van budgetten
Dit systeem werd ontwikkeld omdat militair materiaal veel geld kost. Het is dus belangrijk
dat ze aan de hand van een systeem tot op het kleinste detail hun budgetten kunnen
beheren.
2) Zowel desktop als mobiele applicaties.
Military Flight Scheduling Live kunnen zien welke vliegtuigen beschikbaar zijn en op missie zijn.
Holistic Vehicle Fleet Management Het beheren van land voertuigen (technisch gedeelte).
Small Arms & Ammunition Zal de mogelijkheid geven om een overzicht te krijgen van hun beschikbare stock aan
wapens en munitie. Ilias Solutions maakt gebruik van oracle, sql en redhat technologie voor het uitvoeren van hun diverse taken.
Bron: ILIAS Solutions, http://www.ilias-solutions.com [10/06/2014]
9 | P a g e
5.5 Partners ILIAS Solutions is actief in een netwerk van gespecialiseerde en complementaire partner bedrijven. Ze
werken samen met bedrijven zoals;
EDGE UK
Human Resources
EDGE Innovation Network
Networking
Corena
Producten voor het beheren van documentatie voor complexe apparatuur
Daedalus
One-stop-shop voor diensten voor de militaire luchtvaart
Oracle
Database technology
Visionwaves
Oplossingen voor het beheren van bedrijven
EPICOS
De enige dienstverlener die intelligentie, overheidsaanbestedingen, Defense en High-
Tech Industry markten integreert.
Bron: ILIAS Solutions, http://www.ilias-solutions.com [10/06/2014]
10 | P a g e
6 Opdrachtomschrijving
6.1 Huidige situatie Momenteel gebruikt de Belgische Defensie verouderde methoden voor het maken van inventarissen.
Deze verouderde technologie is een technologie die ILIAS Solutions jaren geleden ontwikkelt heeft en nog
steeds gebruikt. Daarom zijn ze zelf begonnen met het bedenken en ontwikkelen van vernieuwende
mogelijkheden om de taken van magazijniers te vergemakkelijken en te versnellen.
Magazijniers werken tot op de dag van vandaag met computer, pen en papier. Ze moeten telkens eerst hun
soort inventaris kiezen op de computer. Wanneer ze
gekozen hebben welke inventaris ze gaan doen moeten
ze een lijst laten afprinten waarop alle, te inventariseren,
producten te vinden zijn. Eens deze lijst is afgeprint gaan
ze al deze producten opzoeken om er op de lijst de
hoeveelheid bij te schrijven. Nadat ze alle producten hebben
overlopen gaan ze terug naar de computer om al deze
waarden manueel in te voegen. Bij dit proces krijgt de
gebruiker pas te weten of de hoeveelheid in de stock correct is wanneer ze bij de laatste stap, op computer,
de waarden ingeven. Dit proces kan een heel pak versneld en vergemakkelijkt worden door gebruik te
maken van vernieuwende en toekomstgerichte oplossingen.
6.2 Toekomstgerichte oplossingen De Belgische Defensie zou graag gebruik willen maken van nieuwere technologieën. Het huidige proces
vraagt veel werk, verbruikt enorm veel papier en is daarom aan vernieuwing toe.
De oplossing die ILIAS Solutions ontwikkelt is een oplossing met
een barcode scanner. Hierdoor kan de magazijnier een barcode
scannen en meteen de waarde van invoegen. Eens ze al hun
producten gescand hebben verbinden ze met de computer
waarop alle waarden automatisch ingevuld worden.
Magazijniers verliezen hierdoor de tijd niet die ze anders zouden
besteden aan het manueel invoeren van de waargenomen
waarden.
Het probleem is dat sommige stocks over geen barcodes beschikken op alle producten waardoor dit
systeem niet in alle warenhuizen gebruikt kan worden.
Een nog vernieuwende en betere oplossing voor dit systeem is een mobiele applicatie. Er werd ons gevraagd
om een mobiele applicatie te ontwerpen om al deze taken te kunnen uitvoeren.
11 | P a g e
6.3 Out-side problemen met de applicatie
6.3.1 Gebruiksvriendelijkheid Bij het opmaken van het project hebben we enkele problemen ondervonden die we zouden hebben bij het
programmeren van onze applicatie. Een van deze problemen was uiteraard de gebruiksvriendelijkheid. Als
IT’ers beschouwen we al snel iets als gebruiksvriendelijk. Voor magazijniers is het gebruik van deze
technologie minder vanzelfsprekend. Vaak zijn magazijniers ex-soldaten die niet meer bevoegd zijn hun
taken uit te voeren waardoor ze andere taken op zich nemen. Deze mensen hebben dus vaak de kennis niet
om mobiele apparaten op de best mogelijke manier te gebruiken. We moeten dus een oplossing vinden om
ze veel mogelijk functionaliteiten te kunnen uitvoeren met een zo eenvoudig mogelijke design.
6.3.2 Wi-Fi verbinding Daarnaast kwam het probleem van de verbinding met de database ook terug. Er zijn amper enkele stocks
die over een Wi-Fi netwerk beschikken. We moeten dus een oplossing vinden om de applicatie via een
kabelverbinding te kunnen gebruiken.
6.3.3 Downloaden van de applicatie De mobiele applicatie die ontwikkeld wordt zal niet zomaar gedownload kunnen worden. We kunnen de
applicatie niet op een platforma afhankelijke store plaatsen want dan kan de applicatie door iedereen
worden gedownload. De applicatie moet dus maar voor een specifieke doelgroep beschikbaar zijn. We
moeten hiervoor een oplossing vinden die gebruiksvriendelijk en veilig genoeg is.
12 | P a g e
7 Context
7.1 Specialisatie en keuze Wij, Dohou Michael en Stainier Nicolas, kozen voor Software Ontwikkeling als specialisatie in het laatste
jaar van de studierichting Toegepaste Informatica.
Vermits wij de kans kregen zelf te kiezen in welk domein we ons wouden oriënteren kozen we voor het
ontwikkelen op mobiele apparaten. Dit topic was ons volkomen onbekend waardoor het voor ons de
perfecte gelegenheid was nieuwe kennis op te doen.
7.2 Doel van het project Het doel van het project is het creëren van een mobiele applicatie die aangesloten is met de database van
ILIAS Solutions.
Deze applicatie zal hoofdzakelijk gebruikt worden door magazijniers en zal dienen om de stock
inventaris te maken. Bij het starten van de applicatie zal de magazijnier een instantie van de ILIAS database
downloaden. Aan de hand van deze data zal hij verschillende soorten inventarissen kunnen maken en
uitvoeren. De inventarissen zullen dienen om de hoeveelheid van producten na te gaan. Na confirmatie
zullen deze hoeveelheden worden doorgegeven op server niveau.
Het doel van deze bachelorproef was om alle stappen van een project zelf te leren kennen en uitvoeren.
Zowel het business aspect als de technische kant komen hierbij aanbod.
Ook was het noodzakelijk ons de kant van het bedrijfsleven te leren kennen. Hoe de business kant
samenwerkt met de technische kant en hoe men contact legt, afspraken maakt en meetings creëert in het
bedrijfsleven
7.3 Mobiele oplossing De mobiele applicatie zal hoofdzakelijk moeten werken op Android maar ideaal ook op iOS en Windows
tablets. Zo geven we de kans aan de gebruiker onze applicatie totaal platform onafhankelijk te gebruiken.
Omdat er geen Wi-Fi verbinding aanwezig is in de meeste warenhuizen zou de gebruiker bij het opstarten
van de applicatie de hele databank moeten kunnen downloaden. Eens deze gedownload is kan hij deze
lokaal aanpassen en later, met een internetverbinding, opnieuw opladen op de server.
13 | P a g e
7.4 Functionaliteiten van de applicatie Specifiek zal de applicatie volgende functionaliteiten bevatten:
Inloggen/uitloggen
De gebruiker krijgt de mogelijkheid zich in en uit te loggen op het systeem. De
inloggegevens worden beveiligd meegegeven en gebruikers kunnen enkel aanmelden met
een geldige combinatie van gebruikersnaam en wachtwoord.
Downloaden van data
Eens de gebruiker is aangemeld zal hij de mogelijkheid krijgen data te downloaden van alle
magazijnen waarin hij/zij bevoegd is. Deze data wordt gedownload op server niveau en
wordt lokaal opgeslagen op het mobiele apparaat zodat offline werken een optie blijft.
Inventaris maken (≠ soorten).
Blind inventory
In deze vorm van inventariseren krijgt de gebruiker twee mogelijkheden. De
eerste is de mogelijkheid tot het scannen van een product. Hierin wordt nagegaan
of de gescande items overeenkomen met een product in het magazijn. De tweede
mogelijkheid bij deze vorm is het manueel ingeven van gegevens om zo hetzelfde
resultaat te bekomen.
Date Inventory
Hierin wordt geïnventariseerd gerangschikt op datum. De gebruiker kan via een
tijdslijn een datum kiezen en alle datums ouder als de aangeduide datum
inventariseren.
BinLocation Inventory
Een BinLocatie is een locatie in een magazijn. Aan de hand van deze soort
inventaris kan de gebruiker verschillende soorten inventarissen aanduiden en
deze inventariseren.
Monthly Inventory
Hierbij kan de gebruiker kiezen welke maand hij/zij wil inventariseren.
Zoekpagina
Hierbij kan men filteren op allerlei criteria en hierop zoeken in het magazijn.
Aanpassen van item hoeveelheid
Indien de hoeveelheid in de database niet overeenkomt met de waargenomen
hoeveelheid in de stock, wordt deze waarde aangepast en wordt er automatisch
een rapport gemaakt voor verder onderzoek.
Data upload
Nadat een inventarisatie gemaakt werd, zal alle gewijzigde data via een upload naar de
database terug gestuurd worden. Deze data zal dan op server-niveau nagekeken worden
volgens de hoeveelheid aanwezig in de database. Bij gewijzigde hoeveelheden zullen deze
waarden nagekeken worden vooraleer ze worden opgeslagen.
Multiplatform
De applicatie zal moeten draaien op verschillende platformen. Zowel Android als iOS zal
de applicatie moeten ondersteunen. Ook in een browser via een gewone computer.
14 | P a g e
8 Technische Uitwerking
8.1 Aanpak Als aanpak voor het mobiele applicatie project hebben we gebruik gemaakt van het PPPIOO model.
Dit model legt simplistisch voor wat we hebben gedaan in beide semesters van ons laatste academie
jaar.
We deelden dit model op in twee delen. Het eerste
deel is het deel dat we hebben uitgevoerd in het
eerste semester. Dit deel houdt het voorbereiden,
plannen en het ontwerpen van de
applicatie/project in.
In het tweede deel lag de focus op het
implementeren, opereren en het optimaliseren
van het project. Dit tweede deel vond plaats in het
tweede semester van dat academie jaar.
Bij het begin van de implementatie van het project keken we terug naar het eerste semester. We keken
terug wat we hadden voorbereid zodat we dit konden gebruiken om het project te starten.
We begonnen met het HTML en CSS gedeelte van de applicatie. Eerst werden alle pagina’s gemaakt zodat
we een basis hadden om op verder te werken. Ook begonnen we meteen met het PhoneGap gedeelte. Dit
gedeelte liet ons toe om de applicatie meteen op tablet te testen.
15 | P a g e
8.2 Use-cases Een geautoriseerde gebruiker kan:
Inloggen / Uitloggen
Data downloaden
Een menu openen / bezichtigen
Het actieve magazijn bekijken
Zijn profiel bekijken
Via vier soorten inventarisaties starten
Via een bepaald criteria producten zoeken
Goederen scannen
Hoeveelheid van goederen bevestigen / weigeren
Gemaakte inventarissen opladen
Feedback van opgeladen inventarissen bekijken
On- en offline werken
16 | P a g e
8.2.1 Use Case: Inloggen / Uitloggen
8.2.1.1 Beschrijving
Een gebruiker moet de mogelijkheid krijgen om in te loggen op de applicatie. Dit doet hij door zijn
gebruikersnaam en wachtwoord in te geven. Deze combinatie wordt nagekeken en er wordt duidelijk
gemaakt of deze combinatie en een verbinding met het netwerk bestaat. Eens een persoon ingelogd is,
krijgt hij de mogelijkheid zich uit te loggen om van account te verwisselen.
8.2.1.2 Analyse / ontwikkelmethode
Voor deze use case tot stand te brengen gebruikten we bij het begin statische data. Eens dit gedaan was
gebruikten we een werkelijk inlog systeem. Dit systeem verzendt de gebruikersinformatie in base64 vorm
over een beveiligde https verbinding om op server niveau na te gaan of deze gebruiker mag inloggen.
8.2.1.3 Requirements
Gebruikerscombinatie moet op server niveau bestaan.
OF
Gebruikerscombinatie bestaat al op het mobiele apparaat en heeft reeds data gedownload.
8.2.1.4 Testplan
Voor deze use case te testen gebruikten we verschillende users en keken we wat er gebeurde bij volgende
scenario’s.
1) Geautoriseerde gebruiker online
2) Niet geautoriseerde gebruiker online
3) Geautoriseerde gebruiker online – geen magazijnen toegekend
4) Geautoriseerde gebruiker offline – reeds ingelogd
5) Geautoriseerde gebruiker offline – nog niet ingelogd
6) Niet geautoriseerde gebruiker offline
8.2.1.5 Resultaat
Op vorige testen krijgen we volgende uitkomsten
1) Aangemeld
2) Niet aangemeld – inlog error
3) Aangemeld – zonder gegevens
4) Aangemeld
5) Niet aangemeld – Ongekende persoon
6) Niet aangemeld – Ongekende persoon
17 | P a g e
8.2.1.6 Problemen
Bij het online gedeelte van het inloggen werden geen problemen bij ontdekt. Eens de data op server niveau wordt verzonden krijgen we steeds de juiste feedback terug. Het offline gedeelte verliep wat minder vlot omdat data lokaal moest worden opgeslagen en omdat verschillende criteria moesten worden nagekeken.
18 | P a g e
8.2.2 Use Case: Data downloaden
8.2.2.1 Beschrijving
Een gebruiker die is ingelogd krijgt alle magazijnen op een grafische weergave weergegeven. Hierbij krijgt
hij de mogelijkheid de data van een van deze magazijnen te downloaden. De gebruiker kan dus data
downloaden van verschillende magazijnen en kan in een online modus deze data refreshen met deze van
op de ILIAS server.
8.2.2.2 Analyse / ontwikkelmethode
Voor deze use case tot stand te brengen gebruikten we bij het begin statische data. Eens dit gedaan was
gebruikten we een werkelijk download systeem. De data wordt opgehaald op server niveau en wordt lokaal
opgeslagen in een SQLite database. Dit gebeurt via een AJAX call naar een rest service die een XML file
ophaalt.
8.2.2.3 Requirements
De gebruiker moet online zijn om te kunnen downloaden of te refreshen.
8.2.2.4 Testplan
Voor deze use case te testen hebben we een gebruiker data doen downloaden met en zonder een
verbinding. Ook wanneer data aan het downloaden was en de verbinding verbroken werd hebben we
getest.
8.2.2.5 Resultaat
Data kan enkel gedownload worden wanneer de gebruiker daartoe is toegestaan. Bijkomend moet de
gebruiker een online verbinding hebben om data te mogen downloaden. In alle andere gevallen werd geen
data gedownload en werd er een error meegegeven.
8.2.2.6 Problemen
Bij het downloaden van data hebben we problemen gehad voor personen die hun verbinding verbreken.
Deze personen hadden dan maar een deel van de data, maar dit probleem werd opgelost.
19 | P a g e
8.2.3 Use Case: Vier soorten inventarisaties maken
8.2.3.1 Beschrijving
Een geautoriseerde gebruiker die data reeds heeft gedownload moet een inventaris kunnen starten. Dit
kan hij doen op verschillende manieren. Hij kan zelf data toevoegen of kan gedownloade data sorteren op
datum, locatie of maand.
8.2.3.2 Analyse / ontwikkelmethode
De inventarissen werden allemaal gemaakt op de reeds gedownloade data die opgeslagen werd in SQLite.
Deze inventarissen werden in de vier soorten op een andere manier geordend. Deze ordening werd gedaan
via Javascript en jQuery mobile.
Op business vlak werd de manier waarop de inventarissen werden gemaakt vaak veranderd.
8.2.3.3 Requirements
De gebruiker moet reeds data gedownload hebben om een inventarisatie te kunnen maken. Voor de blind
inventaris moet men een bestaande combinatie uit de gedownloade data ingeven.
8.2.3.4 Testplan
De inventarissen werden vaak aangepast. Daarom was het bijna steeds verplicht deze in constante lijn te
testen. We konden ze testen door inventarissen te maken zonder data, de normale gang van de inventaris
te volgen. Omgekeerd te werken door eerst van een bepaalde inventaris naar een andere te willen gaan, …
8.2.3.5 Resultaat
Alle inventarissen werken voor de volle 100%. Je kan op geen verkeerde plaatsen klikken en er is geen
mogelijkheid van problemen.
8.2.3.6 Problemen
We hadden enkele problemen bij het ontwikkelen van deze soorten inventarisaties. We creëerden steeds
wat op business vlak het meest correct leek. Dit bleek in de werkelijkheid vaak niet overeen te komen met
wat echt verwacht en nodig was om inventarissen te kunnen maken.
20 | P a g e
8.2.4 Use Case: Hoeveelheid van goederen bevestigen / veranderen.
8.2.4.1 Beschrijving
Eens een gebruiker een inventaris start moet het voor hem mogelijk zijn een scherm te krijgen met de
specificaties per product en hiervan de hoeveelheid meegeven. Bij sommige soorten inventarissen is het
voor de gebruiker mogelijk de reeds meegegeven hoeveelheid van een product te wijzigen of te bevestigen.
8.2.4.2 Analyse / ontwikkelmethode
Deze bevestigde hoeveelheden worden opgeslagen in een zogenaamde file. Deze file bestaat uit rijen en
kolommen en wordt opgeslagen in een lokale SQLite databank.
8.2.4.3 Requirements
De gebruiker moet om dit te kunnen bevestigen / gebruiken reeds ingelogd zijn, data hebben gedownload
en zich op de detail pagina van een item bevinden. Vervolgens is het ook verplicht een hoeveelheid mee te
geven. Zo niet kan deze niet worden opgeslagen in de database.
Je kan waarden ingeven via het toetsenbord of via een zelf gemaakt toetsenbord dat je ziet op het scherm.
8.2.4.4 Testplan
Volgende tests werden uitgevoerd om deze use case op elke manier te geldig te maken.
1) Invullen van een geheel getal
2) Invullen van een ongeldige waarde (geen getal)
3) Invullen van een kommagetal
4) Bevestigen van een gewijzigde waarde
5) Ingeven van het getal 0
6) Ingeven van extreem grote getallen
8.2.4.5 Resultaat
Volgende resultaten kwamen uit de voorbije tests
1) OK
2) Error: ongeldige waarde ingegeven
3) OK: Kommagetallen zijn hierbij toegestaan
4) OK: waarden mogen veranderd worden door de magazijnier
5) OK: Het kan zijn dat er geen producten meer zijn in het magazijn
6) Error: Er is een maximum van 99999 items per NSN.
21 | P a g e
8.2.5 Use Case: Goederen scannen
8.2.5.1 Beschrijving
Een gebruiker kan bij het blind inventariseren van producten goederen scannen. Hiervoor maakt hij gebruik
van de camera van zijn toestel.
8.2.5.2 Analyse / ontwikkelmethode
Voor het scannen van barcodes is een PhoneGap plugin toegevoegd. Deze werd op de verschillende
platformen toegevoegd en wordt op elk platform met Javascript code opgeroepen. Eens een product
gescand is wordt de succes functie getriggerd.
8.2.5.3 Requirements
De barcodes die gescand moeten worden moeten gekend zijn in het systeem.
Om barcodes te kunnen lezen heeft men steeds een mobiel apparaat nodig.
8.2.5.4 Testplan
Voor de barcode scanner te testen creëerden we acht verschillende soorten barcodes.
We probeerden ook niet gekende producten in te scannen.
8.2.5.5 Resultaat
De plugin om barcodes te lezen werkte voor alle soorten barcodes met uitzondering op zeer lange barcodes.
Het is mogelijk producten in te scannen die niet in de data van het systeem voorkomen maar met deze data
kan men niets doen.
8.2.5.6 Problemen
1) De juiste versie van de barcode scanner werd niet steeds gebruikt.
2) De grootte van het scherm bij het scannen van goederen was niet op alle apparaten groot
genoeg.
3) Grote barcodes zijn moeilijk te lezen.
22 | P a g e
8.2.6 Use Case: Gemaakte inventarissen opladen en feedback opgeladen inventarissen bekijken
8.2.6.1 Beschrijving
Een gebruiker moet de bevestigde waarden kunnen opladen op server niveau en hiervan feedback
opvragen. Zo kan een gebruiker steeds weten of de geüploade file ook op server niveau goed is afgehandeld.
8.2.6.2 Analyse / ontwikkelmethode
Voor deze use case is gebruik van een AJAX call die een GET en een POST doet naar de server. Eens de file
klaar is en de gebruiker vraagt deze op te laden worde deze file vervormd in XML stijl. De XML wordt gepost
via een AJAX call naar een rest service op server niveau waar deze wordt afgehandeld. De server stuurt dan
een id mee zodat men via dit id de feedback kan opvragen van de opgeladen file.
8.2.6.3 Requirements
Om feedback op te halen is het vereist dat deze eerst wordt opgeladen.
8.2.6.4 Testplan
1) Data dubbel opladen
2) Data opladen en kijken of de waarde in de lokale databank wordt opgeslagen
3) Data opladen en kijken of de waarde in de server databank wordt opgeslagen
8.2.6.5 Resultaat
1) Data kan niet meer dubbel worden opgeladen
2) Data wordt lokaal aangepast
3) Data wordt op server niveau aangepast
8.2.6.6 Problemen
Bij het opladen van data kregen we problemen door de compatibiliteit. De aangepaste data werd lokaal
niet aangepast maar wel op server niveau. Als je dan opnieuw deze data wou opladen was deze niet
aangepast en waren er compatibiliteitsfouten met de server.
23 | P a g e
8.2.7 Use Case: on- en offline werken
8.2.7.1 Beschrijving
Elke gebruiker moet de mogelijkheid hebben on en offline te werken. Zo kan de gebruiker In het magazijn
zonder internet verbinding werken en kan hij data opladen wanneer hij een verbinding heeft.
8.2.7.2 Analyse / ontwikkelmethode
Voor het nakijken als de gebruiker online of offline aan het werken is is een PhoneGap plugin toegevoegd.
Deze kan opnemen wanneer de connectie van de tablet veranderd en zal een signaal doorgeven aan de
applicatie. De applicatie zal dan reageren volgens het signaal.
8.2.7.3 Requirements
De gebruiker moet gekend zijn in het systeem.
Om offline te werken moet de gebruiker reeds ingelogd zijn geweest.
Voor een nieuwe gebruiker op een bepaald device is een internet verbinding vereist.
8.2.7.4 Testplan
Het beste manier om na te gaan als een gebruiker online of offline aan het werken is, is door een inventaris
te maken. Dit is de enige functionaliteit dat niet zal werken wanneer de gebruiker offline probeert te
werken. De gebruiker zal dus onmogelijk een inventaris kunnen opladen naar de server als hij offline aan
het werken is.
8.2.7.5 Resultaat
We hebben ervoor gezorgd dat wanneer de gebruiker offline aan het werken is, de applicatie aangepast
wordt volgens zijn connectie. Een gebruiker die voor het eerste keer probeert in te loggen zal bijvoorbeeld
niet kunnen inloggen als hij offline is. Dit wordt niet nagekeken als de applicatie weet dat de gebruiker
online aan het werken is.
8.2.7.6 Problemen
We hebben met de offline support vooral problemen gehad bij het inloggen van gebruikers. Wanneer een
gebruiker online werkt wordt dit naar de server gestuurd. De server kijkt dan na of dit correct is en zal dan
feedback geven. Bij het inloggen wanneer de gebruiker offline is moet er nagekeken worden als de
gebruiker al ooit ingelogd is geweest en indien wat hij ingevoerd heeft correct is.
24 | P a g e
8.3 Gebruikte technieken
8.3.1 Vereisten voor de uitwerking van het project Voor het schrijven van de code voor de applicatie gebruikten we verschillende web technologieën zoals
HTML5, CSS3, JavaScript, jQuery, jQuery Mobile, XML, AJAX, SQLite en PhoneGap. Deze kozen we omdat ze
het gemakkelijkst samen te gebruiken zijn. Ze vullen elkaar aan en we zorgden ervoor dat we geen twee
technologieën hadden voor dezelfde doeleinden. Dit om de performantie van de applicatie zo optimaal
mogelijk te houden.
Voor de uitwerking van ons project gebruikten we verschillende programma’s. Zo gebruikten we Eclipse
voor het testen van ons applicatie op Android. Door Eclipse kregen we de toegang tot de Java code van
PhoneGap. Ook gebruikten we Visual Studio voor het schijven van de code van de web applicatie. Als versie
controle systeem gebruikten we GIT. GIT is een systeem dat ons toelaat documenten online te plaatsen en
die met andere te delen. Het laat ons ook toe versie problemen op te lossen omdat we vaak met meerdere
aan dezelfde code moesten werken. Ten laatste hadden we nog enkele tools nodig om PhoneGap via de
command line te installeren zoals nodejs, …
Ook hadden we bij de uitwerking van het project hulp nodig van enkele personen. Zo hebben we een grote
business hulp gehad van Pierre Van Brussel en van Joha. Voor de technische kant kregen we een bijstand
van Dimity Van De Velde en van Luc. Luc hielp ons voor het creëren van alle REST services op server niveau.
Deze zorgden ervoor data in XML vorm van server niveau via AJAX calls op te roepen en terug te sturen.
25 | P a g e
8.3.2 HTML5 HTML is een taal voor het beschrijven van web paginas. Het staat voor Hyper Text Markup Language. Alle
tags die gebruikt woden binnen HTML beschrijven de inhoudvan het document. In een HTML document
gebruik je tags en text.
HTML5 is de nieuwe HTML Standaard. Deze geeft ons toegang tot verschillende nieuwe functionaliteiten
die gebruikt kunnen worden op web pagina's.
Deze functionaliteiten zijn:
Nieuwe Elementen
Nieuwe Attributen
Volledige CSS3 support
2D/3D grafieken
Lokaal opslagruimte
Lokale SQL Database
Web Applicaties
HTML geeft de gebruiker ook nieuwe multimedia functionaliteiten. Deze zorgen ervoor dat we
gemakkelijker video’s kunnen toevoegen op een web pagina (d.m.v. <video> en <audio>).
We kunnen dankzij HTML5 nu ook web applicaties maken. Deze applicaties krijgen toegang tot een lokaal
opslagruimte, lokaal toegang tot bestanden, lokaal SQL Database, Applicatie Cache, JavaScript en
XMLHttpRequest. Al deze functionaliteiten werden gebruikt in onze applicatie. We gebruikten een lokale
SQL database om alle data per user lokaal op te slaan wat de gebruiker toelaat offline te werken.
XMLHttpRequest zorgt ervoor de xml van de server te lezen zodat deze lokaal kan worden opgeslagen.
HTML5 geeft ons nieuwe elementen voor headers, footers, menu’s, secties en artikels. De HTML forms
krijgen ook extra functionaliteiten zoals nieuwe form elementen, nieuwe attributen, nieuwe input types en
automatische validatie. Al deze functionaliteiten worden gebruikt in de applicatie.
Ten laatste werkt HTML5 volledig met CSS3.
26 | P a g e
8.3.3 CSS3 CSS3 geeft ons verschillende variëteiten aan mogelijkheden om design te geven aan een website. CSS3 is
een vernieuwde versie van CSS. Er zijn veel veranderingen in CSS3 vergeleken met de vorige CSS versie.
CSS3 is opgedeeld in verschillende modules. Dit hebben ze gedaan omdat de vorige versie veel te breed en
te complex was om in één keer geüpdatet te worden. Ze hebben dus CSS opgedeeld in kleinere delen.
Daarbij hebben ze enkele nieuwe functionaliteiten toegevoegd.
Sommige van deze modules zijn:
Het Box Model
Lijst Modules
Hyperlink Presentatie
Speech Module
Achtergronden en randen
Tekst Effecten
Multi-Kolom Lay-out
8.3.4 JavaScript JavaScript is een programmeer/script taal die gebruikt wordt om webpagina’s dynamisch en interactief te
maken en web applicaties te ontwikkelen. Het is de taal die voor interactie tussen de website/applicatie en
de gebruiker zorgt. Javascript wordt uitgevoerd door de browser net zoals bij HTML en CSS. Belangrijk is
ook dat JavaScript een hoofdletter gevoelige taal is.
JavaScript bevat verschillende functionaliteiten die je helpen voor interactie te zorgen tussen de browser
en je gebruiker. Deze functionaliteiten zijn:
Functies maken
Event
Operators
Vergelijkingen
Programmatie mogelijkheden: if, switch, loop for, loop while, …
Error behandelen
Navigatie
…
In onze applicatie gebruiken we JavaScript om elementen op te roepen en hier dynamisch mee om te gaan.
27 | P a g e
8.3.5 jQuery JQuery is een gratis cross-browser JavaScript bibliotheek voor het creëren van dynamische en interactieve
websites, onder andere voor het bewerken van CSS en voor de interactie met de webserver (ook bekend
als AJAX).
De structuur van JQuery is zo opgebouwd dat het het maken van web applicaties vergemakkelijkt.
8.3.5.1 JQuery functies
Functies voor DOM elementen te selecteren
Functies om DOM elementen te manipuleren
Functies om CSS manipulaties uit te voeren
Ondersteuning om events te definiëren
Voor gedefinieerde effecten en animaties
Ajax ondersteuning
Uitbreidbaarheid
De mogelijkheid om herbruikbare plug-ins te maken in jQuery
8.3.6 jQuery Mobile JQuery Mobile is een aanraak geoptimaliseerd web framework die ontwikkeld wordt door het jQuery
project team. De ontwikkeling ervan focust zich op het creëren van een framework dat compatibel is met
een grote hoeveelheid smartphones en tabletten. Het jQuery mobiele framework is compatibel met andere
mobiele applicatie frameworks en platformen zoals bv PhoneGap.
8.3.6.1 JQuery Mobile uitbreidingen
Compatibel met alle bekendste mobiele platformen zo goed als met alle bekendste desktop browsers. Waaronder iOS, Android, Blackberry, WebOS, Symbian, Windows Phone en nog vele andere.
Gebouwd op basis van JQuery taal dus gemakkelijk voor de mensen die deze programmeertaal al kennen.
Framework dat thema’s ondersteunt. Onafhankelijk en licht waardoor het de snelheid optimaliseert. Automatisch schermgrootte aanpakken. HTML5-gebaseerde configuratie voor pagina’s op te maken met zo weinig mogelijk scripting. AJAX gebaseerde navigatie. UI widgets date er voor zorgen dat het touch system geoptimaliseerd wordt.
JQuery Mobile hebben we hoofdzakelijk gebruikt voor het design van ons applicatie. Dit gaf ons de
mogelijkheid om de ‘Look and Feel’ aan onze website te geven van een echte mobiele applicatie. Alle CSS
code is op voorhand geschreven, waardoor wij amper kleine veranderingen moesten brengen aan het
design van onze website.
28 | P a g e
8.3.7 XML XML (of eXtended Markup Language) wordt in onze applicatie gebruikt om data te krijgen en te sturen naar
de ILIAS Solutions Rest Service. Alle data die we krijgen van de server wordt automatisch omgezet in xml-
formaat. Op onze applicatie gaan we deze xml-files verwerken en opslaan. Nadat data gewijzigd wordt gaan
we deze terug in xml-formaat zetten en zo doorsturen naar de server. Uiteindelijk zal de server dit ook
verwerken en in de database zetten.
8.3.8 AJAX Ajax staat voor Asynchroon JavaScript and XML. Het is een techniek om snel dynamische web pagina’s te
maken. Dit geeft ons de mogelijkheid om web pagina’s asynchroon up te daten door kleine hoeveelheden
data te uit te wisselen in het achtergrond. Dit wil zeggen dat we kleine delen van een pagina kunnen
updaten zonder de hele pagina te herladen. Een klassieke web pagina (dat geen ajax gebruikt) zou volledig
moeten herladen om nieuwe inhoud te kunnen tonen.
8.3.8.1 Hoe werkt AJAX?
Er gebeurt een bepaalde evenement in onze browser -> We maken een XMLHttpRequest object -> We
sturen de HttpRequest -> Dit gaat door het internet naar de server -> De server gaat de HttpRequest
bewerken -> Er wordt een antwoord gemaakt en deze wordt terug gestuurd naar onze browser -> Opnieuw
via het internet gaat ons antwoord van server naar browser -> De gestuurde data wordt door het browser
verwerkt d.m.v. JavaScript -> De inhoud van de pagina wordt geüpdatet
Ajax kan XMLHttpRequests maken om data uit te wisselen met de server, JavaScript/DOM gebruiken om
informatie te updaten en tonen, CSS om deze informatie een mooie lay-out te geven en XML gebruiken als
formaat voor onze data.
Ajax calls worden in de applicatie gebruikt om met de server te communiceren. Wanneer data gekregen of
doorgestuurd wordt naar de server gebeurt dit met een ajax call. Ajax calls kunnen in drie vormen
voorkomen: als GET, PUT of POST. Get ajax calls worden gebruikt om data aan de server te vragen. Bij een
PUT gaat de applicatie data doorsturen naar de server. Een post ajax call gaat eerst data doorsturen naar
de server, en in ruil krijgt het data terug.
Een voorbeeld van een ajax call:
$.ajax({ type: GET/PUT/POST, url: <url>, dataType: <type data dat wordt doorgestuurd>, success: function(data) { <Data is wat er door de server doorgestuurd wordt> Hier wordt er een functie uitgevoerd als de ajax call goed verlopen is. }, error: function(responseData) { Indien iets fout loopt wordt deze functie opgeroepen. } });
29 | P a g e
8.3.9 SQLite De nieuwe Web SQL Database functionaliteit op HTML
geeft toegang tot een SQLite database om data lokaal op te
slagen op een web browser. Dit gaf ons de mogelijkheid om
data van de server op te vragen en met exact dezelfde
structuur lokaal op te slaan op een SQLite database. Op
deze manier kan een gebruiker offline op onze applicatie
werken met de data die hij lokaal heeft gedownload.
Voor SQLite datamanipulatie bestaan er in JavaScript niet zo veel functies. We hebben voor onze applicatie
niet meer dan 3 functies nodig gehad:
1. OpenDatabase
a. Een database aanmaken (indien het al bestaat, openen)
b. Window.openDatabase(<naam database>,<versie sqlite>,<beschrijving>,<volume in
bytes>)
c. Voorbeeld:
var db = window.openDatabase(“TestDatabase”,”1.0”,”Een test database”,10000)
2. Transaction
a. Een transactie starten met SQL commands
b. Db.transaction(<sql command>,<error functie>,<success functie>);
c. Voorbeeld:
db.transaction(selectAllUsers,errorDB,addUsersToList);
3. ExecuteSQL
a. SQL commands om met de database te communiceren
b. Tx.executeSql(<sql command>, [<parameters>]);
c. Voorbeeld:
tx.executeSql(“INSERT INTO tblTest(testRij) VALUES (?)”,[testWaarde]);
In executeSQL zullen alle SQL commando’s komen die we gaan gebruiken. Deze zijn alle SQL commando’s
die we gebruikt hebben in onze applicatie:
CREATE IF NOT EXIST
INSERT
UPDATE
DELETE
SELECT
30 | P a g e
8.3.10 Phonegap PhoneGap is een open source framework voor het snel ontwikkelen van multi-
platform mobiele applicaties te bouwen met JavaScript, HTML5 en CSS3. Met
andere woorden geeft PhoneGap de mogelijkheid om één applicatie te maken dat
op ieder platform kan draaien (iOS, Android, Windows, BlackBerry, …).
Oorspronkelijk moet een developer bij het programmeren van een mobiele applicatie code schrijven voor
elk platform apart. Elk platform heeft zijn eigen programmeertaal en logica waardoor de developer een
applicatie moet maken voor bv: Android, iOS en Windows. Android applicaties worden met Java
geprogrammeerd, iOS applicaties met Objective C en Windows met C#. Dit wil dus zeggen dat het 3x zo veel
werk vereist voor eenzelfde applicatie.
Met PhoneGap is het mogelijk om mobiele applicaties overal te laten werken. PhoneGap applicaties zijn
native applicaties waarop een web applicatie getoond wordt. Zo’n applicaties worden hybride applicaties
genoemd.
8.3.10.1 Installatie
Omdat er ons gevraagd werd om de applicatie hoofdzakelijk op Android te laten werken, hebben we
PhoneGap geconfigureerd voor Android.
PhoneGap maakt gebruik van drie onderdelen om te kunnen werken: Java, Apache Ant en Android SDK.
Java wordt gebruikt om de native applicatie te kunnen hosten. Apache Ant dient om de applicatie te kunnen
builden (aanmaken) en Android SDK zorgt voor het runnen (opstarten) op een Android Device. Daarnaast
moet NodeJS ook geïnstalleerd worden om PhoneGap te kunnen downloaden.
8.3.10.1.1 Java JDK
Eerst en vooral moet de laatste versie van Java JDK geïnstalleerd worden. Dit is mogelijk via volgende
stappen:
1. Laatste Java JDK download via url:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2. Executable file opstarten en installeren
8.3.10.1.2 Apache Ant
Om Apache Ant te installeren:
1. De laatste versie van Apache Ant (in zip) downloaden op: http://ant.apache.org/bindownload.cgi
2. Zip op een goed gekozen locatie uitpakken (belangrijk)
8.3.10.1.3 Android SDK
Zoals bij het vorige proces:
1. De laatste versie van Android SDK downloaden in zip:
http://developer.android.com/sdk/index.html?hl=sk#download
2. Zip uitpakken in dezelfde folder als Apache Ant
31 | P a g e
8.3.10.1.4 Node.js
Node.js zal toegang geven tot de functie npm.
1. Op http://nodejs.org/ op install klikken (zal een .msi file downloaden)
2. Node.js installeren
8.3.10.2 Environment Variables
Cordova bestaat uit verschillende commands die uitgevoerd moeten worden op de Command Prompt. Om
deze commands te kunnen toevoegen moeten de geïnstalleerde programma’s toegevoegd worden in de
Environment Variables. Om dit te doen:
1. Op start klikken
2. Rechter klik op Computer -> Properties
3. Aan de linker kant op Advanced System Settings klikken
4. Op Environment Variables klikken
Op deze pagina gaan we enkele nieuw user variabelen toevoegen:
1. Java
a. Variable Name: JAVA_HOME
b. Variable Value: <pad naar de Java JDK folder>
i. Voorbeeld: C:\Program Files\Java\jdk1.8.0_05
2. Ant
a. Variable Name: ANT_HOME
b. Variable Value: <pad naar de Apache Ant folder>
i. Voorbeeld: C:\apache-ant\apache-ant-1.9.3
3. SDK
a. Variable Name: ANDROID_HOME
b. Variable Value: <pad naar de Android SDK folder>
i. Voorbeeld: C:\adt-bundle-windows-x86-20140321\sdk
8.3.10.2.1 PATH variabele
De PATH variabele wordt door de Command Prompt gebruikt om commands terug te vinden. Hierin gaan
we onze vorige variabelen zetten samen met Node.js (npm)
Variable Name: PATH
Variable Value: <pad naar Roaming npm>; <pad naar de bin folder van JAVA_HOME>; <pad naar
de bin folder van ANT_HOME>; <pad naar de tools folder van ANDROID_HOME>; <pad naar de
platform-tools folder van ANDROID_HOME>
o Voorbeeld:
C:\Users\dohoum\AppData\Roaming\npm;%JAVA_HOME%\bin;%ANT_HOME%\bin;%AN
DROID_HOME%\tools;%ANDROID_HOME%\platform-tools
32 | P a g e
8.3.10.3 Cordova (PhoneGap) installatie
Nu dat alles klaar ligt kunnen we cordova installeren via de Command Prompt. Dit gebeurt via command:
npm install –g cordova
8.3.10.3.1 Commands
Eens cordova volledig geïnstalleerd is kunnen we beginnen met het creeëren van een PhoneGap project.
Dit doe je door te beginnen met volgend commando.
cordova create <naam van het project> <naam van de package>
<naam van de applicatie>
Voobeeld:
cordova create TestApplicatie com.dohoum.testApp TestApp
Eens het project gecreërd werd kunnen we beginnen aan het toevoegen van de verschillende platformen
waarop we onze applicatie willen runnen:
cordova platform add <naam van het platform>
Voorbeelden:
cordova platform add android
cordova platform add wp8
cordova platform add ios
Bijkomend kunnen ook plugins toegevoeg worden op een PhoneGap applicatie. Om een plugin toe te
voegen gebruik je het commando:
cordova plugin add <naam van de plugin>
Voorbeeld:
cordova plugin add org.apache.cordova.camera
33 | P a g e
Wanneer het project volledig afgewerkt is, moet de applicatie alleen nog opgestart worden op een tablet
of een emulator. Om dit te doen gebruik je volgend commando:
cordova run <naam van het platform>
Voorbeeld:
cordova run android
Indien alles goed opgestart werd zou dit scherm op het tablet tevoorschijn moeten komen.
EXTRA: Om de werkelijke applicatie te creëren (release versie) zal de gebruiker volgende commando
moeten uitvoeren:
cordova build <platform> --release
Voorbeeld:
cordova build android --release
Deze commando’s creëren een applicatie die je kan downloaden om op je device te installeren.
34 | P a g e
8.3.10.4 Windows bijkomend
Als je Cordova voor windows Phone wil installeren heb je de basis benodigdheden van Android nodig.
Bijkomend zal je volgende zaken nog nodig hebben.
1) Als je wil ontwikkelen voor Windows Phone 7 heb je een pc nodig die Windows 7 draait.
2) Als je wil ontwikkelen voor Windows Phone 8 heb je een pc nodig die Windos 8 draait.
Je hebt bijkomende paden nodig zoals NPM, Cordova en het JAVA pad zoals in Android.
Bijkomende paden:
- Windows SDK (download link : http://dev.windowsphone.com/en-us/downloadsdk)
- Framework link in PATH variable (download link naar
C:\Windows\Microsoft.NET\Framework\v4.0.30319)
Windows Commando’s:
- cordova platform add wp8
- cordova build wp8 --release
Zoals er een “.apk” file bestaat in Android en een “.ipa” file in iOS heb je een “.xap” file voor Windows.
35 | P a g e
8.4 Ontwikkelde ICT oplossing - Stock inventory Application
– Multiplatform applicatie + desktop mogelijkheid
o Onze applicatie bestaat uit een website en phonegap plugins, het is dus perfect mogelijk
om deze op een desktop te gebruiken. Enkel de plugins (barcode, splashscreen, ...) zullen
niet ondersteund worden op pc.
o Dankzij PhoneGap kunnen we een website op een applicatie tonen alsof het een native
applicatie is
– Stock producten tellen
o We hebben ervoor gezorgd dat de gebruiker op een gebruiksvriendelijke manier een
hoeveelheid kan ingeven bij het inventariseren van een product.
– Instant valideren van hoeveelheden
o Omdat onze applicatie rechtstreeks geconnecteerd is met de ILIAS Solutions Database .
– Barcode scannen mogelijkheid
o Via een PhoneGap plugin kan een gebruiker met zijn tablet barcodes scannen. Deze
gescanned barcodes geven een code terug die verwerkt wordt door de applicatie.
– Interactie met ILIAS
o Via een VPN service (Junos Pulse) is het tablet via wifi of 3G geconnecteerd op de Rest
Service van ILIAS Solutions. Dit geeft ons alle informatie door van de database die we
daarna kunnen verwerken doorheen de applicatie.
8.5 Ontwikkelde functionaliteiten
– Inlog en uitlog systeem
o Zoals op elke applicatie is een in en uitlog systeem vereist. Het inlog systeem is volledig
beveiligd zodat gevoelige informatie niet wordt vrijgegeven.
– Configuratie File
o Deze file wordt per omgeving gemaakt en zorgt voor verschillende zaken die omgeving
specifiek zijn. Zo kan de download van data tijd ingegeven worden. Data zal om de
“ingegeven aantal dagen” verwijderd worden voor een gebruiker. Ook wordt hierin de
omgeving kleur, de taal, de logout van een inactieve user en alle url’s voor de omgevingen
gespecifieerd.
– Download en upload functionaliteiten
o Data moet in de applicatie kunnen worden gedownload om deze achteraf lokaal op te
slaan en er inventarissen op te doen. Eens je inventarissen gedaan zijn moet je die data
terug kunnen opladen.
– Offline modus
o Een gebruiker kan zonder internet verbinding de hele applicatie gebruiken. Hiervoor is wel
vereist dat hij de data alvorens al eens heeft gedownload.
– Zoekfuncties in de database
o Een optie in de applicatie is om te zoeken op een bepaald zoekveld. Men kan zo bv een
product opzoeken adhv zijn binlocatie of zijn NSN nummer. Van de gevonden items kan
ook een inventaris worden gemaakt.
36 | P a g e
– Stock inventariseren op vier manieren
Blind Inventory
– De blinde inventaris is een inventaris die gemaakt is om producten snel te
inventariseren zonder een op voorhand gedefinieerde lijst. Bij het openen van de
pagina wordt een lege lijst weergegeven. Je krijgt dan de mogelijkheid producten toe
te voegen aan je inventaris. Deze inventarisvorm is gebaseerd op manuele input of op
gescande items. Eens je item is toegevoegd komt deze in de lijst en wordt je naar een
detail pagina van het item gestuurd.
Date Inventory
– De datum inventaris wordt gemaakt aan de hand van de datum. Bij het openen van de
pagina krijg je een slider te zien die een datum voorstelt. Deze datum is bij het openen
van de pagina, één jaar. Je krijgt na het verschuiven van de slider de kans om de
inventaris te starten. Als je de inventaris start zullen alle items in de database, die niet
werden geïnventariseerd sinds de datum van de slider, worden toegevoegd aan de
inventaris. Hierna worden deze ellementen weergegeven in de detail pagina.
BinLocation Inventory
– De binloc inventaris is een inventaris die gebaseerd is op de locatie van producten.
Deze locatie wordt een BinLoactie genoemd. Eens je op de inventaris komt krijg je
verschillende mogelijkheden. De eerste is om te filteren op de naam van een
binlocatie. Je kan dus zoeken op alle locaties waar een bepaalde combinatie in
voorkomt. De tweede mogelijkheid is om de elementen weer te geven in een lijst die
ouder zijn dan een bepaalde datum. In het midden van het scherm krijgt de gebruiker
dus een lijst weergegeven met alle binlocaties die aan al de besproken zoekcriteria
voldoen. De gebruiker kan dan ofwel een aantal items aanduiden of alle gefilterde
items inventariseren.
Regular Monthly Inventory
– De laatste invantaris is de maandelijkse inventaris. Hierbij kan men de maand kiezen
en worden alle inventarissen weergegeven die in die maand zouden gedaan moeten
worden. Eens deze maand gekozen is worden alle producten, waarvan de
inventarismaand gelijk is aan de filter, weergegeven in de lijst. De gebruiker kan dan
ofwel een aantal items aanduiden of alle gefilterde items inventariseren.
Details page
– De detail pagina is een pagina die wordt opgeroepen na het maken van een van de
vier soorten inventarissen. Op deze pagina worden alle gegevens van items
weergegeven. Ook krijgt men de mogelijkheid de hoeveelheid van een bepaald
element te veranderen of te bevestigen. Dit is het hoofddoel van de applicatie.
37 | P a g e
8.6 Prototype Hier volgen verschillende screenshot van de applicatie waarin de gebruiker de inventaris doet van een stock.
Inlogscherm
Omgeving kiezen
Gebruikersnaam, wachtwoord en omgeving ingeven en confirmeren
38 | P a g e
Downloadscherm
Download van de data van één magazijn
Data van meerdere magazijnen gedownload. Keuze uit deze magazijnen voor het actieve magazijn.
39 | P a g e
Home scherm
Menu (links)
Actieve magazijn + opties + uitlogmogelijkheid (rechts boven)
40 | P a g e
Profielpagina + mogelijkheid profielfoto aan te passen
Profielpagina + persoonsgegevens
Gebruikte magazijn aanpassen
41 | P a g e
Zoekpagina
Inventarisatie mogelijkheden
Scan pagina (‘+’ om items toe te voegen aan de inventarisratie)
42 | P a g e
Gegevens van item ingeven
Gegevens ingeven door te scannen
Inventaris maken per datum (slider stelt datum voor)
43 | P a g e
Inventaris maken van items ouder dan…
Inventaris maken van alle data
Inventaris maken per locatie (BinLocatie)
44 | P a g e
BinLoc inventaris filteren op data criteria
Bepaalde BinLocaties aanduiden om deze te inventariseren
Inventarisatie per maand (Macode)
45 | P a g e
Item details + item foto mogelijkheid + waarde ingeven mogelijkheid
Niet overeenstemmende waarde (t.o.v. ILIAS databank) voor een product ingeven
Foto nemen van een product
46 | P a g e
Historiek, inventarisdocumenten, pagina
Eens data gesynchroniseerd wordt er gewacht (knop uitgeschakeld)
Succesvol opgeladen file (geen fouten op server en applicatie niveau)
47 | P a g e
Historiekdocument uitgeschreven
Details van een item (server details i.v.m. product upload)
Eens document is opgeladen start je een nieuw document.
48 | P a g e
Twee succesvol-upgeloade files
Settings (Voorgrond kleur optie + data van nieuw magazijn downloaden mogelijkheid)
Donkere pagina
49 | P a g e
Upload pagina met donkere kleur
Uitlogscherm
Wachtscherm
50 | P a g e
9 Planning
9.1 Technical planning
1) HTML5 & CSS3
2) Phonegap basics
3) Jquery Mobile + Jquery
4) JavaScript functions
5) XML data storage
6) BarcodeScanner
7) SQLite storage
8) PhoneGap extended
9) AJAX Calls
9.2 Practical planning
1) Pagina’s creëeren
2) jQuery Mobile stijl gebruiken + bibliotheken downloaden
3) CSS design
4) Home pagina
5) Menu maken – JQuery Mobile styke
6) Login Pagina
7) Phonegap basis voor Android + iOS
8) XML basis data om applicatie te gebruiken
9) Blind inventory maken + JS functies ervoor
10) Barcode functies + testen
11) Viewport op mobiele apparaten
12) Andere 3 inventarissen (date, macode, binloc)
13) Data opslaan in SQLite ipv met XML
14) Profielpagina maken
15) Data ophalen van op de server en opslaan in XML (via een ajax call naar een rest service)
16) Login functie (via een ajax call naar een rest service)
17) Nieuwe file aanmalen bij het bevestigen/veranderen van producten
18) Data opladen op server niveau (via een ajax call naar een rest service)
19) Opgeladen data feedback en deze per product weergeven (via een ajax call naar een rest service)
20) PhoneGap gedeelte creëren via command line i.p.v. user interface
21) Actieve magazijn op elke pagina weergeven
22) Design afwerken
23) Multiplatform iOS add
24) Multiplatform Windows Phone add
25) Splashscreen toevoegen op pagina’s waarbij de laadtijd groot is
26) Offline support
27) Testen
28) Debuggen
29) Extra
51 | P a g e
10 Kritische SWOT analyse van het resultaat
10.1 Strengths Multiplatform
Een applicatie die op de drie belangrijkste mobiele platformen draait is een pluspunt voor elke klant.
Daarom is dit een sterkte van de applicatie. Elke klant die de applicatie wil gebruiken zal zijn eigen apparaat
mogen kiezen om de applicatie op te draaien. Dat deze nu mobiel of vast is, de applicatie werkt en ziet er
overal gelijk uit.
Barcode scanner
Voor gebruikers die de applicatie op een mobiel apparaat willen gebruiken is de optie van een barcode
scanner een groot pluspunt. Voor het blind inventariseren van producten kan een gebruiker producten
scannen. Eens een product gescand is kan hij kijken naar alle informatie over het product en de hoeveelheid
in stock bekijken of aanpassen. Bij dit proces geeft de barcode scanner de mogelijkheid veel tijd te winnen.
Snelle inventaris methode
Magazijniers werken op verouderde methoden. Door deze applicatie winnen ze een heleboel tijd die ze aan
andere zaken zouden kunnen besteden. Door de effectiviteit van de applicatie gebeuren inventarissen
sneller en efficiënter.
Meerdere inventaris methoden
Door de mogelijkheid meerdere soorten inventarissen te kunnen doen is het voor magazijniers een
gemakkelijkere en plezantere taak. Ze kunnen kiezen wat de manier is waarop ze willen inventariseren. Ze
kunnen een inventarislijst maken met daarin alle te inventariseren items. Deze lijst kunnen ze op creëren
op verschillende manieren die ervoor zorgen dat ze deze lijst op eigen grootte kunnen maken, afhankelijk
van de beschikbare tijd.
Zoek functies
Een magazijnier die op zoek is naar informatie over een product, locatie, referentie nummer, lot nummer,
… kan de zoekfunctie van de applicatie gebruiken. Magazijniers zijn hierdoor niet meer verplicht dit
opzoekwerk op pc te doen maar kunnen dit in het magazijn zelf doen. Ze hebben hiervoor niet eens een
data connectie nodig.
Mogelijkheid van foto’s van producten
Magazijniers zijn vaak bezig met producten waarvan ze niet weten hoe het er uit ziet. Daarom gaven wij
hun de mogelijkheid een foto te nemen van een product. Op deze manier kan een persoon bij opzoekwerk
of bij een inventaris visueel zien wat het product is.
52 | P a g e
Gemakkelijk gebruik en simpel design
Magazijniers zijn niet vaak de meest technologische personen. Daarom maakten wij de applicatie zo
eenvoudig mogelijk en met zo weinig mogelijk knoppen. Alle functionaliteiten werden gegoten in een zo
simpel mogelijk design.
Natuurvriendelijker
Vandaag worden inventarissen nog steeds afgeprint. Door de applicatie is papier niet meer vereist.
10.2 Weaknesses Trager dan native applicaties
Een klein negatief element van da applicatie is de snelheid van de hybride applicatie. Een hybride applicatie
communiceert niet even snel met het apparaat als een native applicatie.
VPN verbinding
Een ander nadeel of zwakte van de applicatie is het feit dat men, voor het kunnen inloggen op het systeem
en het downloaden van data, steeds moet inloggen via een VPN verbinding op het ILIAS netwerk.
Security
De beveiliging van de applicatie is niet optimaal. Aanvallen van buitenaf zijn nog steeds mogelijk waardoor
er hier nog op gewerkt moet worden. Dit was wel out of scope voor ons project.
53 | P a g e
10.3 Oportunities
Nieuwe technologie
Nieuwe technologie die de inventarisatie in magazijnen van de Belgische defensie vergemakkelijkt. Door
deze technologie verliezen magazijniers een hoop kostbare tijd.
10.4 Threats Gebruiksvriendelijkheid
Bij de analyse van het project hebben we enkele problemen ondervonden die op de voorgrond zouden
treden bij het programmeren van onze applicatie. Een van deze problemen was uiteraard de
gebruiksvriendelijkheid. Als IT’ers beschouwen we al snel iets als gebruiksvriendelijk. Voor magazijniers is
het gebruik van deze technologie minder vanzelfsprekend. Vaak zijn magazijniers ex-soldaten die niet meer
bevoegd zijn hun taken uit te voeren waardoor ze andere taken op zich nemen. Deze mensen hebben dus
vaak de kennis niet om mobiele apparaten op de best mogelijke manier te gebruiken. We moeten dus een
oplossing vinden om ze veel mogelijk functionaliteiten te kunnen uitvoeren met een zo eenvoudig mogelijke
design.
Wi-Fi verbinding
Daarnaast kwam het probleem van de verbinding met de database ook terug. Er zijn amper enkele stocks
die over een Wi-Fi netwerk beschikken. We moeten dus een oplossing vinden om de applicatie via een
kabelverbinding te kunnen gebruiken.
Downloaden van de applicatie
De mobiele applicatie die ontwikkeld wordt zal niet zomaar gedownload kunnen worden. We kunnen de
applicatie niet op een platform afhankelijke store plaatsen want dan kan de applicatie door iedereen
worden gedownload. De applicatie moet dus maar voor een specifieke doelgroep beschikbaar zijn. We
moeten hiervoor een oplossing vinden die gebruiksvriendelijk en veilig genoeg is.
54 | P a g e
11 Persoonlijk ontwikkelingsplan Het doel van de bachelor proef was van de studenten te leren werken in een professionele omgeving. Ik
leerde de manier waarop IT’ers werken in een kleine onderneming, de manier van samenhang tussen het
business gedeelte en het technische gedeelte in een bedrijf, het luisteren naar de wensen van de werkgever
en verbeterde nog een hele hoop andere competenties.
Bij het begin van de stage kregen we de mogelijkheid een aantal competenties te kiezen waaraan we ons
tijdens de stage zouden houden. Het was de bedoeling een aantal algemene competenties en een aantal
ICT specifieke competenties te kiezen en gedurende de stage in deze competenties te groeien.
Bij elk van de gekozen competenties gaven we bij het begin van de stage een score mee. Elk van deze scores
heeft zijn eigen waarde en betekenis. Door deze competenties aan het begin van de stage en aan het eind
van de stage te beoordelen kunnen we onze persoonlijke groei meten.
Legende van de scores:
0) Competentie nog niet ontwikkeld 1) Basis niveau 2) Gevorderd 3) Expert
55 | P a g e
11.1 Algemene competenties (niet-IT)
11.1.1 Vlot functioneren in een professionele (internationale) omgeving.
1) Uitleg
Het vlot functioneren in een professionele omgeving is een van de competenties waar ik me het meest op
wou focussen. Het is zeer belangrijk te kunnen samenwerken met collega’s en vlot te kunnen functioneren
in het bedrijfsleven. Ik gaf veel aandacht aan deze competentie want de kennis hiervan kan ik gebruiken in
mijn verdere carrière.
2) Commentaar
Volgens de stagementoren ben ik goed geïntegreerd in de bedrijfsprocessen en ervaren ze me prettig om
mee te werken.
3) Score
Tijdens deze stage evolueerde ik van score 1 naar score 2. Van een basisniveau van het functioneren in een
professionele omgeving ging ik naar een gevorderd niveau. Dit komt doordat ik deze competentie zo
belangrijk vond en omdat het voor het uitwerken van het project van groot belang was samen te werken
met alle bijhorende partijen.
11.1.2 Relaties met collega’s en opdrachtgevers 1) Uitleg
Een tweede algemene competentie die ik koos was de relatie met collega’s en opdrachtgevers
onderhouden. We zorgden er voor dat we met collega’s steeds een toffe maar professionele band
onderhielden. In de meeste gevallen liep de communicatie goed. Er zijn geen gevallen geweest van
miscommunicatie tussen ons en de opdrachtgevers. Ook hebben we hulp gevraagd aan enkele andere
collega’s. Deze hielpen ons met alle plezier en we bedankten deze personen op de correcte manier.
2) Commentaar
Door onze goede communicatie hebben we goede feedback gekregen van onze stagementoren. De
communicatie verliep steeds vlot en op professionele wijze. Ook onze meertaligheid speelde in ons
voordeel voor de relatie met onze opdrachtgevers. Tijdens de stage gaven we verschillende presentaties in
meerdere talen. Dit kwam van pas omdat klanten of collega’s ons anders niet konden verstaan.
3) Score
Voor deze competentie evolueerde ik weer van een basisniveau naar een gevorderd niveau. Relaties met
opdrachtgevers verliepen meestal wel vlot op school maar in het bedrijfsleven is dit toch wat anders. In het
bedrijfsleven moet je steeds op de voorgrond treden en zelf actie ondernemen om deze relatie te
onderhouden.
56 | P a g e
11.2 ICT-specifieke competenties
11.2.1 Gegevens verzamelen, opslaan en ter beschikking stellen zodat deze op een correcte en gebruiksvriendelijke manier kunnen worden opgevraagd
1) Uitleg
Bijkomend hebben we ons tijdens de stage ook gefocust op gegevens. Voor de uitwerking en de installatie
van de applicatie moesten we veel gegevens verzamelen. Zowel van internet als van de business en
technische personen kregen we een heleboel informatie die we konden gebruiken tijdens het project. We
zorgden ervoor dat deze informatie werd opgeslagen zodat zowel anderen als wij zelf deze opnieuw konden
gebruiken en raadplegen.
2) Commentaar
De uitwerking van de toepassing en de cross-platforminstallatie is zeer goed verlopen. Ook verwijzen ze
naar vorige competentie voor de commentaar over deze competentie.
3) Score
Ook bij deze competentie stegen we van een score 1 naar een gevorderde score 2.
11.2.2 Nieuwe IT-oplossingen (autonoom) uitwerken in overeenstemming met de verwachtingen van de opdrachtgever
1) Uitleg
Een grote must van dit project was het autonoom aanleren van IT-oplossingen. We kregen de kans met
twee dit project uit te voeren in programmeertalen die we nog nooit gebruikt hadden. We leerden hoe we
met verschillende programmeertalen en platformen moesten werken op zelfstandige basis.
2) Score
Voor deze competentie had ik mezelf was overschat bij de het begin van de stage. Ik gaf mezelf een
gevorderd niveau voor deze competentie omdat we dit al gedaan hadden tijdens een vorig academiejaar.
De score van de competentie is gevorderd gebleven maar toch leerde ik een hoop bij over de manier van
autonoom een project op te stellen volgens de, soms veranderende, wensen van de opdrachtgever.
57 | P a g e
11.2.3 Op een adequate wijze IT-oplossingen configureren, beveiligen en aanpassen zodat deze beantwoorden aan de veranderende behoeften van de organisatie
1) Uitleg
Deze competentie werd gekozen door het oplossen van IT-oplossingen zodat deze beantwoorden aan de
behoeften van de organisatie. We zorgden ervoor dat we een programma creëerden die zo gemakkelijk en
zo toepasselijk mogelijk was voor gebruikers die hier dagelijks mee moesten omgaan.
2) Commentaar
Alhoewel initieel de beveiliging niet de hoofdzaak was is dit blijkbaar toch aan de orde gekomen, vandaar
de goede score.
3) Score
Voor deze competentie ben ik verbeterd van een nog niet ontwikkelde competentie naar een gevorderd
basis niveau dat ik kan gebruiken in het verdere bedrijfsleven.
11.2.4 IT-taken kwaliteitsvol uitvoeren zodat het resultaat voldoet aan de eisen van een steeds wisselende omgeving
1) Uitleg
Een van de in de scope doeleinden van deze bachelor proef was dat de applicatie werkt op meerdere
platformen. We zorgden ervoor dat de gebruiker niet platform afhankelijk is en hij dus zelf kan kiezen op
welk apparaat hij werkt.
2) Commentaar
Het overbrengen van de applicatie naar een Android, Windows als iOS platform goed verlopen.
3) Score
Met deze competentie had ik nog geen ervaring maar door de grote behoefte hieraan in dit project heb ik
hieraan kunnen werken. Ik stijg bij deze competentie van een ongekende competentie naar een gevorderd
niveau.
58 | P a g e
11.3 Algemene feedback van de stagementor
Positieve feedback
+ Je bent vlot in de omgang en beschikt ook technisch over de goede ICT-kwaliteiten.
+ Je hebt zin om problemen te bestuderen en toont initiatief om deze eerst zelf op te lossen.
+ Als ICT-ontwikkelaar heb je zeker veelzijdig kwaliteiten. staan Hierin kan je zeker een loopbaan uitbouwen.
Negatieve feedback
- Je mag je best wat beter profileren (bv. iets assertiever naar voorkomen bij groepsbesprekingen). Het zou namelijk ook jouw ambitie moeten zijn om later door te groeien als projectleider zeker als je blijft functioneren in de ICT- ontwikkeleng.
59 | P a g e
12 Slotwoord
We kregen de kans een volledig project uit te werken. Bij dit project leerden we hoe een project van begin
tot eind ontwikkelt wordt.
In het eerste semester keken we naar de analyse van het project. De PID, de business analyse, de
technische analyse, het prototype, en er is maar één ding dat ik kan concluderen uit deze studie: Het was
een enorm leerrijke ervaring waarbij ik veel heb bijgeleerd voor mijn toekomstige carrière.
In het tweede semester hielden we ons bezig met de ontwikkeling van het project. We maakten een
volledige applicatie die gebruikt kan worden in het bedrijfsleven. Ook hierbij horen verschillende
componenten zoals het beschrijven wat je wekelijks/dagelijks doet en het presenteren van je applicatie
aan de klant. We maakten in de loop van onze stage twee presentaties: één voor aan onze collega’s uit te
leggen waarmee we bezig waren tijdens onze stage en één waarin we de applicatie presenteerden aan de
klant.
Ook was het leerrijk te ervaren hoe je een onderzoek gestructureerd aanpakt, hoe je moet rapporteren in
een project, hoe je een applicatie ontwikkelt binnen het bedrijfsleven (verschillende meetings,
rapporteren, …) en hoe je je prestaties presenteert aan je opdrachtgevers. Door deze bachelorproef heb
ik voldoende kennis kunnen opdoen om een project uit te voeren of zelf op te stellen.
Hierbij wil ik iedereen bedanken voor het lezen en de interesse die U toonde door het lezen van mijn
bachelor proef.
60 | P a g e
13 Bijlagen 13.1 Weekverslagen
13.1.1 Week 1 – Verslag De eerste week van de stage was een leerrijke ervaring. Het begon met de kennismaking met de hele ILIAS
ploeg. Eens we iedereen begroet hadden en kennis gemaakt hadden met hun functie startten we met het
installeren van alle nodige programma’s. Zodra dit erop zat begonnen we met het opstarten van het project
in Java, html, css, JavaScript en Jquery. Vervolgens verdeelden we de taken, Dohou Michael hield zich vooral
bezig met de html/Jquery kant terwijl ik me focuste op het deel in Java. In dit deel implementeerde ik de
barcodescanner en het nemen van foto’s op mobiele apparaten. Hierbij moest ik toch ook gebruik maken
van de html kant.
13.1.2 Week 2 – Verslag De tweede week begon met het opstellen van een TO-DO list. Hierin stond wat we moesten volbrengen
voor het einde van de week. Ik hield me vooral bezig met het maken van de scan pagina en met het oplossen
van de bijbehorende problemen. Ook maakte ik de eerste mogelijkheid voor het inventariseren van
producten, de “blind inventory”. Hierin is een lijst te zien met alle gescande producten, kan men producten
toevoegen, scannen, verwijderen en geen duplicaten krijgen. Deze week kwamen we veel problemen tegen
waardoor we veel tijd verloren. Nu deze problemen zijn opgelost kunnen we de oplossing gebruiken bij
komende onderdelen. De laatste dag van de week kregen we ook nog een snelcursus GIT, een versie
controle systeem.
13.1.3 Week 3 – Verslag In de derde week kwam het project nog wat meer tot stand. Ik hield me vooral bezig met het maken van de
inventaris per datum. Hierbij moesten we data (over eerder gebeurde inventarisaties) uit een nieuwe tabel
halen en deze weergeven in een lijst, gerangschikt op datum. Ook moest ik er voor zorgen dat het mogelijk
was te klikken op deze elementen. Vervolgens zorgde ik ervoor dat men de gegevens van items kon swipen
om zo het volgende element weergegeven te krijgen. En ten laatste heb ik er ook voor gezorgd dat de reeds
geïmplementeerde functies aangepast werden zoals onze opdrachtgever dat vroeg. Deze week was de
eerste week dat we gebruik maakten van GIT als versie controle systeem.
13.1.4 Week 4 – Verslag Tijdens de week van 2 maart hebben we ons meer gefocust op de design van de applicatie. Samen hebben
we tal van pagina’s veranderd zodat deze er professioneler zouden uitzien. Ik heb me aangezet om een
nieuwe pagina te maken voor het inventariseren van producten. Bij het maken van deze pagina, zorgde ik
voor het inventariseren per lokalisatie. Vervolgens werkte ik ook de datum inventarisatie volledig af. Ik hielp
Michael bij het maken van functionaliteiten van de scan pagina waarvoor hij een nieuwe design maakte. Op
donderdag namiddag deden Michael en ikzelf ook wat testing. De planning voor de week was volledig rond
waardoor we tijd overhadden voor het testen van alle functionaliteiten van de applicatie. Door het werken
aan hetzelfde document hebben we tot tweemaal toe compatibiliteitsproblemen gehad.
61 | P a g e
13.1.5 Week 5 – Verslag De vijfde week van de stage was de week waarin de eerste fase van de stage werd afrond. De week begon
met een meeting met de coaches. In deze meeting bespraken we wat al werd afgewerkt en wat nog moest
afgewerkt worden in deze eerste fase. Na de meeting bespraken we wie/wat moest doen zodat de eerste
fase kon worden afgerond. Mijn taak was het maken van twee soorten inventarissen. Ik werkte aan de
inventaris per lokalisatie en de inventaris per maand. Deze gebruikten elk een gelijkaardige soort van
werking waardoor het goed was dat ik deze twee taken op mezelf nam. Deze vijfde week telde maar drie
werkdagen, de vierde werkdag werd ingenomen door een jobbeurs op de HUB.
13.1.6 Week 6 – Verslag In de zesde week van de stage werkten we alle, reeds opgemaakte, pagina's tot in de puntjes af. Dit deden
we om op de laatste dag van deze stageweek een presentatie te geven in een warenhuis van de Belgische
defensie. Deze afspraak bij de Belgische defensie had twee doeleinden; ten eerste was het de bedoeling
een eerste indruk te krijgen van mensen die dagelijks in een warenhuis werken en ten tweede was het voor
ons de perfecte gelegenheid ons idee van een warenhuis te vergelijken met de realiteit. Ik hield me dus
vooral bezig met het afwerken van alle details in twee soorten inventarissen.
13.1.7 Week 7 – Verslag In de zevende week werkte ik aan vele verschillende kleine details/problemen. Ik begon de week met het
afwerken van alle inventarissen en hun details. Monthly inventory werd hier ook volledig afgewerkt.
Vervolgens werkte ik verder aan de design van de "inventaris keuze" pagina, aan het zoeken naar een
mogelijkheid om xml van de server te kunnen downloaden, aan het linken van de downloadpagina aan de
profielpagina, aan een extra pagina voor de selectie van het actieve warenhuis, aan het oplossen van het
logout probleem, aan het oplossen van problemen op de scan pagina en aan het linken van back buttons
naar de juiste pagina's.
13.1.8 Week 8 – Verslag De achtste week van de stage begon met een afwezigheid wegens ziekte. Ik mailde de stagebegeleider en
sprak hiermee af dat ik in de paasvakantie een dag stage zou inhalen.
Na de dag afwezigheid begon ik de rest van de week met volle moed. We werkten hard en behaalden veel
resultaat. Hiervoor maakten we een To-Do lijst aan en werkten we vervolgens één voor één de puntjes af.
Ik regelde in deze drie dagen de schaal van het scherm op verschillende tablets en ik zorgde er voor dat de
schaal automatisch aangepast wordt naar gelang het apparaat. Ook werkte ik verder aan het generaliseren
en vergemakkelijken van de code van het swipen, ik verwijderde de niet gebruikte variabelen, ik creëerde
een nieuwe inventaris pagina en de daar bijhorende functies, en ik werkte zo nog verschillende andere
details af.
De applicatie raakt stilaan rond maar we hebben nog wat werk om onze To-Do lijst volledig te kunnen
afronden.
62 | P a g e
13.1.9 Week 9 – Verslag De week van 7 april was een moeilijke week. We verloren één van de vier dagen door het proberen oplossen
van een probleem met ajax calls. Pas na een hele dag pair programming vonden we het resultaat.
Naast deze problemen hield ik me ook bezig met een nieuw inlogsysteem en login formulier. Dit
inlogsysteem linkte ik aan de databank van ILIAS Solutions zodat er nagekeken wordt of een gebruiker
bestaat. Hierbij worden de magazijnen van de gebruikers ook opgehaald.
Vervolgens zijn we deze week begonnen met het ontwikkelen voor iOS.
En ten laatste werkte ik nog aan de encryptie van wachtwoorden en aan het verkorten van code.
13.1.10 Week 10 – Verslag In de tiende week werkten we voornamelijk aan het afwerken van het eerste werkstuk van de stage en aan
een presentatie voor de werknemers van ILIAS Solutions. Deze presentatie moest gegeven worden om alle
werknemers duidelijk te maken waar we bij ILIAS Solutions mee bezig waren en hoe ons project een
toegevoegde waarde kon geven aan ILIAS Solutions. Vervolgens hielden we ons ook bezig met het oplossen
van verschillende fouten zodat onze applicatie volledig klaar was voor de presentatie van volgende dinsdag.
13.1.11 Week 11 – Verslag De elfde week van de stage was een korte week. De week begon op dinsdag waarbij we een presentatie
gaven aan alle ILIAS medewerkers. Deze presentatie werd gedaan in het Engels en verliep volledig als
gepland. Na de presentatie startte ik meteen met het upload gedeelte van de applicatie. Ik onderzocht hoe
we dit zouden doen en begon aan de implementatie ervan.
13.1.12 Week 12 – Verslag De twaalfde week van onze stage was de week van 1 mei. Hierdoor hadden we weer maar drie dagen om
aan ons project te werken. Ik hield me tijdens deze week vooral bezig met het upload gedeelte. Het
opmaken van bestanden en deze bij confirmatie terug opladen in het systeem. Alle functionaliteiten van
het upload gedeelte werden afgewerkt waardoor ik enkel nog de opmaak en basisfuncties voor dit gedeelte
moet maken. Ook heb ik verschillende kleine problemen opgelost in samenwerking met Michael. Ten
laatste gaf ik op het einde van de week wat uitleg en een demo over de applicatie aan onze
stagebegeleiders. Deze waren zeer enthousiast over de vooruitgang en planden een meeting op 21 mei
zodat we onze applicatie konden voorleggen aan de klant.
63 | P a g e
13.1.13 Week 13 – Verslag De week van 05 mei verliep vlot en efficiënt. Ten eerste werkte ik de volledige upload sectie tot in de puntjes
uit. Ook na het krijgen van feedback van de stage mentoren veranderde ik de functionaliteiten en design
uit volgens hun wensen. Vervolgens werkte ik ook aan het verkorten van de code, dit was nodig want
verschillende delen in de code konden vergemakkelijkt worden. Op woensdag deed ik opzoekwerk over een
probleem dat zich voordeed bij het testen op verschillende tablets. Hierop werd het antwoord nog niet
gevonden. Ten laatste deden we ook een "work in progress" meeting om onze vorderingen aan onze
mentoren mee te delen. In deze meeting kwamen alle nog af te werken punten aan bod.
13.1.14 Week 14 – Verslag In de week van 12 mei werkten we aan het afwerken van de applicatie. We hadden verschillende
gesprekken met de stagementoren om te bespreken hoe ver we stonden met de applicatie en wat ons nog
te doen stond. We werkten verschillende details uit om de applicatie volledig "up and running" te krijgen.
Zo werkten we aan een configuratie file om alle basis configuraties per omgeving te kunnen opslaan. Ook
werkten we aan het uitwerken van de applicatie zodat ze gedownload kon worden op verschillende
platformen. Vervolgens werkten we ook samen met een ILIAS werknemer om problemen in verband met
de rest services uit te werken. Voor de offline modus werden ook wat aanpassingen gemaakt in
verschillende delen van de applicatie. Ten laatste begon ook de testing fase waarbij ik de hele applicatie
testte om fouten op te sporen.
13.1.15 Week 15 & 16 – Verslag De laatste twee weken verliepen zeer vlot. We werkten alles tot in de puntjes uit zodat de hele stage
volledig afgewerkt was. In de 15 de week werkte ik vooral de details van de pagina's af. We werkten ook
aan de documentatie en aan een laatste presentatie die gegeven werd voor de klant, de Belgische defensie.
Alle reacties waren volledig positief en we werden door iedereen gecomplimenteerd. Zelf de grote baas
van ILIAS Solutions bedankte ons en vond onze applicatie zeer goed. Vervolgens werkte ik ook aan het
schrijven van commentaar in de code en het ontwikkelen van de applicatie voor windows tablet. De laatste
dagen van de stage hebben we de applicatie door verschillende personen laten testen. Telkens er een bug
was hebben we deze opgelost.
64 | P a g e
13.2 Manual “Manage Stock Inventory Application”
13.2.1 Inlogscherm De bedoeling van dit inlogscherm is zich in te loggen
in de applicatie. Hiervoor is een goede combinatie van
gebruikersnaam en wachtwoord verplicht.
Een gebruiker kan ook zijn omgeving veranderen. De
omgeving zal weergeven op welke plaats de persoon
zich bevindt. Ook de kleur van de applicatie zal
veranderen naar gelang de gekozen omgeving.
Hier volgen verschillende screenshot van de applicatie
waarin de gebruiker de inventaris doet van een stock.
Klik op “Confirm” om in te loggen of op “Exit” om de applicatie af te sluiten.
65 | P a g e
13.2.2 Downloadpagina De downloadpagina dient om de data van een
warenhuis te downloaden. Men kan één voor één data
downloaden van verschillende magazijnen. Dit doet
men door op de knop Download data te klikken.
Als je reeds data gedownload hebt staat de datum
weergegeven van de laatste keer dat je data
gedownload hebt. In dat geval krijg je de mogelijkheid
de data te verversen.
Als data van meerdere magazijnen gedownload is krijgt men de mogelijkheid te kiezen welk magazijn men
wilt gebruiken.
Klik op “confirm” om naar het hoofdmenu te gaan of klik op “cancel” om terug te gaan naar het inlogscherm.
66 | P a g e
13.2.3 Menu Eens je bent ingelogd en data is gedownload krijg je de kans verschillende zaken te doen met de applicatie.
Ten eerste krijg je de mogelijkheid te kiezen tussen vier opties. Een inventaris maken, zoeken naar een
product, je profiel bekijken en de historiek van een file te bekijken. Vervolgens kan je naar rechts swipen
om een menu tevoorschijn te laten komen. Ook kan je rechts boven een popup openen om na te gaan van
welk magazijn de data is dat ze gebruiken. Daarbij kunnen ze ook naar een settingspagina gaan en krijgen
ze de mogelijkheid uit te loggen uit het systeem.
67 | P a g e
13.2.4 Profielpagina 1) Persoonsgegevens nagaan
a. Voornaam
b. Achternaam
c. Taal
d. Geslacht
e. Legernummer
f. Organisatie
g. Type
h. Categorie
2) Profielfoto aanpassen
a. Klik op Edit profile picture en neem een foto met je mobiele apparaat. Deze foto wordt
opgeslagen als de profielfoto.
3) Magazijn aanpassen
68 | P a g e
13.2.5 Zoekpagina Zoek op een locatie, NSN nummer, Referentienummer of een Asset om producten terug te krijgen die aan
de combinatie van de zoekgegevens voldoen. De teruggevonden producten worden rechts op de pagina
weergegeven nadat men op Search geklikt heeft.
13.2.6 Inventorypagina keuze Kies uit de lijst het inventaris type je wilt doen.
69 | P a g e
13.2.7 Blinde inventaris Voor de blinde inventaris te maken moet je items toevoegen in de lijst. Hiervoor kan je items scannen of
manueel toevoegen. Er moeten telkens verschillende gegevens gegeven worden voordat je ze in de lijst kan
bijvoegen. Klik op het “+” teken om items te inventariseren.
Mogelijke combinaties zijn
Binloc + NSN + Lot Ref
BinLoc + NSN
Binloc + Asset
Gegevens ingeven door te scannen
70 | P a g e
13.2.8 Datum inventaris Voor de datum inventaris kan je de slider slepen naar rechts om de zoekresultaten groter te maken en naar
links om deze kleiner te maken. Klik op “start inventory” om alle gevonden producten die ouder zijn als de
data die de slider weergeeft te inventariseren.
71 | P a g e
13.2.9 Inventaris per locatie Meerdere inventaris mogelijkheden (gerangschikt per bin locatie naam)
1) Filteren op naam van de BinLocatie
2) Filteren op datum
3) Filteren op geselecteerde items. Item selecteren om deze te inventariseren.
72 | P a g e
13.2.10 Inventaris per maand (Macode) Meerdere inventaris mogelijkheden (gerangschikt per Macode)
1) Filteren op naam van de Macode
2) Filteren op datum
3) Filteren op geselecteerde items. Item selecteren om deze te inventariseren.
73 | P a g e
13.2.11 Detailpagina van een product 1) Gegevens van items weergeven
a. BinLocatie
b. NSN
c. Zone
d. Lot Ref
e. Asset
f. Descriptie
g. Naam
h. UM
i. Consumable
j. Reap Type
k. Last Price
l. Lot No
m. Repairable
n. Issue to Client
o. Loan
p. Attractive
q. Utility status
r. Cercopes No
2) Foto van een product nemen. (Klik op Edit Picture)
3) Waarde meegeven en deze confirmen
74 | P a g e
13.2.12 Upload pagina Klik op “Synchronize Data” om data op te laden en feedback terug te krijgen.
Kleuren geven de feedback weer. (Bol)
1) Groen: Succesvol
2) Geel: Opgeladen maar nog geen feedback
3) Wit: Nog niet opgeladen
4) Rood: Niet succesvol opgeladen / Probleem
13.2.13 Historiek file detail pagina Eens je op een file klikte uit vorige pagina kom je op de details van deze file terecht. Hierbij wordt ook een
feedback per item weergegeven. Om de feedback te lezen kan je op het info icoon klikken.
75 | P a g e
13.2.14 Settings pagina 1) Skin kleur aanpassen. Twee mogelijkheden, Light en Dark mogelijkheden.
2) Download nieuwe data mogelijkheid.
13.2.15 Uitlogscherm Het uitlogscherm geeft de mogelijkheid uit te loggen. Twee mogelijkheden zijn zichtbaar. “Confirm” om
echt uit te loggen, “Cancel” om niet uit te loggen.
13.2.16 Wachtscherm Op sommige momenten moet de applicatie wat laden. Daarbij wordt steeds volgend scherm getoond.
76 | P a g e
13.3 Curriculum Vitae
Curriculum vitae
Personal data Stainier Nicolas 32, Rue de Rebecq, 1480 Saintes (Belgium) +32 2 377 83 21 +32 495 62 14 22 [email protected] Belgian, born 04 december 1993 in Jette
Profile I am creative, dynamic and driven by an entrepreneurial spirit. I also have good
skills in coaching and communication management. Independently and in a team, I work quickly and efficiently to achieve the best possible result. By my willingness to learn, I will always keep my knowledge up
to date. So you can consider me a real added value for your business throughout my career.
Education and training
2014 – 2015
2011 – 2014
2008 – 2011
2007 – 2008
2005 – 2007
Traineeship at ILIAS Solutions ILIAS Solutions (Belgium) Main objective of the traineeship was to manage an IT-project from the start to the end. The mission was to develop a mobile, multi-platform, application to facilitate the stock inventory in military warehouses. This application was developed with PhoneGap, a hybrid application development platform. Applied Informatics Hogeschool-Universiteit Brussel (Belgium) Social and technical sciences Heilig-Hart & College (Belgium) Human sciences Sint-Niklaasinstituut (Belgium) Modern languages Sint-Niklaasinstituut (Belgium)
Computer knowledge
MS Office
Programming languages
Platforms
Networking skills
Excel, Word, Access, OneNote, Visio, Outlook, Microsoft Projects. HTML, HTML5, CSS, CSS3, JavaScript, jQuery, jQuery Mobile, AJAX, Java, C++, VB.Net, C#, .NET, MySQL, SQL, SQLite, XML, UML, ERD. Windows (Very Good), Linux (Good), Mac (Basics), PhoneGap. Cisco CCNA Discovery
77 | P a g e
Personal skills and competences
Languages
Hobbies
Sports
Native: Dutch, French Fluent: English Gymnastics coach (competition group - girls and competition group - trampoline ) Gymnastics, Trampoline, Fitness, Badminton, Diving, Snowboard, Volleyball.
Leisure activities – Sidelines
2009 – 2014
Gymnastics coach at gymnastics club ‘Gympie’
78 | P a g e
13.4 Presentatie Bachelorproef
Dohou Michael & Stainier NicolasStudent | Hogeschool-Universiteit Brussel22|04|2014 - Brussels
Confidential
Bachelor Thesis
Manage Logistic Stock Inventory on tablet
2 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion
79 | P a g e
3 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
Introduction
School: Hogeschool-Universiteit Brussel
Study: Applied Informatics
Specialisation: Software Development
Traineeship: ILIAS Solutions
4 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion
80 | P a g e
5 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
Description of the organisation| ILIAS Solutions
What: Information management solutions
Who: Team of professionals (Development, Implementation & Maintenance)
Where: Haren, 1130 Brussels
When: Started in 1997 – constant evolution until now …
6 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion
81 | P a g e
7 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
Mission Description
Current Situation
– PC
– Printer
– Pen & Paper
Future-Oriented Solutions– Barcode scanner application
– Mobile Stock Inventory Application
8 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
Mission Description
Mobile Stock Inventory Application
– Execute Stock counting
– Immediate validation of quantities
– Barcode Scanning possibility
– Multi-platform enabled
– Interacting with ILIAS
82 | P a g e
9 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion
10 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion
83 | P a g e
11 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
SWOT analysis of the Result | Strengths & Weaknesses
Strengths
– Multiplatform
– Barcode Scanner
– Fast Inventory Method
– Multiple Inventory Methods
– Search function
– Picture possibility
– Easy to use
Weaknesses
– Slower than native apps
– VPN Connection
– Security
12 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
SWOT analysis of the Result | Opportunities & Threats
Opportunities
– New Technology
Threats
– User friendly
– Wi-Fi connection
– Download of the application
84 | P a g e
13 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion
14 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
Course of the internship | Competetences
Work fluently in a professional (and international) environment
Develop new IT solutions (autonomously) in line with the expectations of the client
Perform high quality IT tasks to satisfy an ever-changingenvironment
85 | P a g e
15 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
Course of the internship |Course
Planning
Programming
Meetings
Presentations
16 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion
86 | P a g e
17 | 18
Bachelor Thesis |
© ILIAS Solutions Confidential
Conclusion | What’s next?
Innovative way to do inventories
Follow the market and generalise usage of mobile Technology
This project can be turned into a Framework
– To cover progressively all the tasks of the warehouse keeper
– Could be done via Wi-Fi/3G or on a asynchronous way
Dohou Michael & Stainier NicolasStudent | Hogeschool-Universiteit Brussel22|04|2014 - Brussels
Confidential
Thank You
• For the opportunity
• To the people who made this possible
87 | P a g e
13.5 Code Samples
13.5.1 Login_methods.js
13.5.1.1 Function choseEnvironment(xml)
Deze functie zal een xml-file laden en de gegevens van de gevraagde omgeving lokaal opslaan.
1. Lokale config.xml laden
2. Elke lijn van de xml-file lezen
3. Indien de lijn van de gevraagde omgeving gevonden is
a. ENVIRONMENT_NAME, TIMEOUT_DOWNLOAD, TIMEOUT_ACTIVITY, SKIN, LANGUAGE ,
URL_LOGIN, URL_STORES, URL_STOCK_DATA, URL_NSN_DATA, URL_DATA_POST,
URL_DATA_RESPONSE en URL_ANNOTATION worden opgeslagen in de session storage
4. Indien niet worden de default values opgeslagen
13.5.1.2 Function validateLogin()
Deze functie wordt opgeroepen wanneer er op login geklikt wordt. Het zal de ingevoerde gegevens nakijken
en sturen naar de server. Indien deze correct zijn zal de gebruiker mogen inloggen.
1. De ingevoerde gegevens worden opgenomen
2. De wachtwoord wordt geëncrypteerd
3. De functie wordt doorgestuurd naar checkUser(username, password, encryptedPw) in
login_db_methods.js
88 | P a g e
13.5.2 Login_db_methods.js
13.5.2.1 Function checkUser(username, password, encrypedPw)
Deze functie zal de ingevoerde gebruikersnaam en geëncrypteerde wachtwoord opnemen. Het zal dan via
een ajax POST call de gegevens naar de server doorsturen en op een antwoord wachten. Indien dit niet
mogelijk is zal het de gegevens vergelijken met wat in de lokale database zit. Indien dit niet werkt wordt er
een error bericht getoond.
1. De geselecteerde omgeving wordt opgenomen
2. De AuthenticatedUser database wordt geopend
3. Gebruikersnaam en wachtwoord worden naar de server doorgestuurd via een ajax POST
4. Indien de POST succesvol is
a. De gebruiker wordt toegevoegd in de lokale database (indien hij nog niet bestaat)
b. Een sessie wordt gemaakt met de gegevens van de gebruiker
c. De functie getWarehouses(username) wordt opgeroepen
5. Indien de POST niet succesvol is
a. Er wordt nagekeken als de gebruiker in de lokale database al bestaat
i. Indien wel wordt er een sessie gemaakt en wordt de functie
getWarehouses(username) opgeroepen
ii. Indien niet wordt er een error bericht getoond
13.5.2.2 Function getWarehouses(username)
In deze functie worden alle magazijnen opgeladen van de gebruiker en wordt de gebruiker doorgestuurd
naar de downloadpagina.
1. Een database wordt aangemaakt met de magazijnen van de gebruiker
2. Indien de magazijnen al in de lokale database zijn voor de gebruiker wordt hij doorgestuurd naar
downloadpagina
3. Indien niet worden de magazijnen gedownloadt via een ajax GET
a. Indien de ajax call succesvol is wordt de gebruiker doorgestuurd naar de downloadpagina
b. Indien niet wordt er een error bericht getoond
89 | P a g e
13.5.3 Db_methods.js
13.5.3.1 Function getData(warehouse)
Deze functie wordt opgeroepen wanneer op download geklikt wordt van een warehouse. Hier zal dan alle
data gedownloadt worden van de gevraagde warehouse en opgeslagen worden in een lokaal database.
1. Twee databases worden aangemaak : een voor de Stock van de warehouse en een voor iedere
NSN
2. Een ajax GET wordt uitgevoerd voor de warehouse
3. Alle data die terug gestuurd wordt wordt in de lokale databases opgeslagen
13.5.3.2 Function selectQuery(tx, select, from, clause)
Dit een dynamische functie die we gemaakt hebben om het selecteren van data te vergemakkelijken. We
hebben ervoor gezorgd dat de select query zo goed mogelijk aanpasbaar is zodat we altijd deze functie
kunnen oproepen en niet telkens een nieuwe moeten maken.
1. Er wordt eerst nagekeken naar wat er gevraagd wordt
a. Indien een ‘*’ staat (all) worden alle rijen van de gevraagde tabel geselecteerd
b. Indien niet gaan enkel de gevraagde rijen geselecteerd worden
2. Er zal dan gekeken worden welke tabel gevraagd wordt
3. Ten laatste wordt er nagekeken worden wat de conditie is (clause) van de functie
4. Wanneer dit gedaan is wordt alle data in de vorm van een multidimensionele array terug
gestuurd
90 | P a g e
13.5.4 Layout_methods.js
13.5.4.1 Function changeConnectionMode(connection)
Deze functie is gelinkt aan een van de plugins die we toegevoegd hebben aan PhoneGap. Wanneer de tablet
online of offline gaat wordt de applicatie aangepast.
1. Via een event wordt deze functie opgeroepen
2. Indien de connectie offline is
a. De gebruiker zal geen warehouse data mogen downloaden
b. De download button zal uitgeschakeld zijn
c. Er zal geen data opgeladen worden
3. Indien de connectie online is
a. Zal de gebruiker de applicatie kunnen gebruiken zoals het moet
13.5.4.2 Function uploadImage(type, image, nsn)
Deze functie zal een image doorsturen naar de server. De type geeft aan of het een profielfoto is of een
foto van een product. Nsn wordt hier doorgegeven als parameter indien het over een image van een nsn
gaat.
1. Er wordt nagekeken als de type over een profile image gaat of een nsn
a. Bij beide gevallen zal de url aangepast worden
2. Een ajax PUT wordt naar de server gestuurd
a. Indien deze succesvol is zal een update gemaakt worden van de image
b. Indien niet wordt er een error bericht getoond
13.5.4.3 Function on panelbeforeopen
Dit is een special geval. Deze functie hebben we gemaakt omdat we bij jQuery mobile een panel op elke
pagina apart moeten maken. Dit wilt zeggen dat we bij elke verandering alle panels moeten aanpassen. We
hebben er dus voor gezorgd dat deze panels dynamisch aangemaakt worden en maar één keer gedeclareerd
moeten worden.
1. Alle data wordt opgenomen van een variabele panelContent
2. Deze wordt gevuld in de panel
3. De huidige pagina wordt geselecteerd in de panel
4. De profile image wordt opgenomen en getoond in de panel
91 | P a g e
13.5.4.4 Function checkWarehouseData(username, selectedWarehouseCode, selectedWarehouse,
environment, warehouse)
Deze functie dient als een check om na te gaan als er al data van de warehouse bestaat in de lokale
database. Indien dit het geval is wordt er nagekeken als de expiry date van de data niet overschreden is.
1. Alle data wordt geselecteerd van de locale database
a. Indien dit niet terug geeft
i. Alle data zal gedelete worden (voor de zekerheid)
ii. De download button van de warehouse zal actief zijn
b. Indien er data is wordt er nagekeken als de expirydate overschreden is
i. Indien wel wordt alles gedelete en is de download button weer actief
ii. Indien niet moet de gebruiker de data niet opnieuw downloaden
13.5.4.5 Function barcodeInit()
Deze functie zal de barcode scanner opstarten en een barcode scannen. De gescande code wordt daarna
verwerkt in en de correcte veld gevuld.
1. Er wordt eerst nagekeken als de gebruiker op een tablet is (indien niet wordt er een error
getoond)
2. De gescande code wordt dan nagekeken
a. Indien de code met een (E007) begint is het een binlocation
b. (E029) een NSN
c. (90) is ook een NSN
d. (E043) is een lotreference
e. (E025) is een lotnummer
f. (E032) is een asset
g. (E081) geeft de hoeveelheid weer (dit is dus een error)
13.5.4.6 Function addItem()
Deze functie al alle velden opnemen van de blind inventory en zal dan voor de ingevoegde product zoeken.
Indien deze gevonden is worden de details daarvan weergegeven. Indien niet wordt er een error getoond.
1. Alle waarden worden in een variabele gevuld
2. Indien er genoeg informative is wordt er een select uitgevoerd
a. Indien de select iets terug geeft wordt de gebruiker doorgestuurd naar de details van de
item
b. Indien niet wordt een error getoond
3. Indien niet wordt een error getoond
92 | P a g e
13.5.4.7 Function checkQuantity()
Deze functie zal de ingevoerde waarde nakijken. Indien deze overeenkomt met de database wordt er
weergegeven dat de hoeveelheid correct is. Indien deze niet overeenkomt wordt er gevraagd of de
gebruiker zeker is van de ingevoerde waarde.
1. De ingevoerde waarde wordt in een variabele gevuld.
2. De waarde die in de database staat wordt geselecteerd en ook in een variabele gevuld.
3. Indien deze twee waarden overeenkomen wordt de waarde bevestigd
4. Indien niet krijgt de gebruiker twee keuzes
a. Hij kan de hoeveelheid nakijken en als deze wel correct was zijn hoeveelheid kiezen en
bevestigen
b. Als de ingevoerde waarde niet correct was en wat er in de database zit wel correct was
de database waarde kiezen
13.5.4.8 Function uploadData()
Deze functie zal alle geinventariseerde items opladen naar de server via een ajax call. Deze worden eerst
uit de lokale database opgenomen en in een xml-file gevuld. Wanneer dit gedaan is zal er een functie
opgeroepen worden om de response van de server te vragen.
1. Alle data van tabel exportData wordt geselecteerd en in een variabele gezet (in de vorm van xml).
2. Deze variabele wordt omgevormd naar xml
3. Een ajax POST wordt naar de server gestuurd
a. Indien deze succesvol is
i. Wordt er een update gemaakt van de inventory date op de lokale database
ii. Wordt de upload button uitgeschakeld
iii. Wordt de status veranderd (bol wordt geel)
iv. Wordt er aan de server gevraagd voor een response
b. Indien niet zal er een error getoond worden
93 | P a g e
13.6 Bronnen
ILIAS Solutions
o www.ilias-solutions.com
HTML5
o http://www.w3schools.com/html/html5_intro.asp
o http://en.wikipedia.org/wiki/HTML5
o http://nl.wikipedia.org/wiki/HTML5
o http://www.html5rocks.com/en/
CSS3
o http://www.css3generator.com
o www.w3schools.com/css/css3_intro.asp
o www.css3.info
o http://www.en.wikipedia.org/wiki/Cascading_Style_Sheets
o http://www.css3.com
JavaScript
o www.w3schools.com/js/DEFAULT.asp
o en.wikipedia.org/wiki/JavaScript
o https://developer.mozilla.org/en/docs/Web/JavaScript
o http://www.webteacher.com/javascript/
JQuery
o http://jquery.com/
o http://en.wikipedia.org/wiki/JQuery
o http://jqueryui.com/
o http://www.w3schools.com/jquery/
JQuery Mobile
o http://jquerymobile.com/
o http://www.w3schools.com/jquerymobile/
o http://www.w3schools.com/jquerymobile/
XML
o http://en.wikipedia.org/wiki/XML
o http://en.wikipedia.org/wiki/XML
o http://www.w3schools.com/xml/xml_whatis.asp
o http://www.w3.org/XML/
AJAX
o http://api.jquery.com/j
o http://www.w3schools.com/ajax/default.ASP
SQLite
o http://www.sqlite.org/
o http://www.sqlite.org/docs.html
o http://www.sqlite.org/docs.html
o http://nl.wikipedia.org/wiki/SQLite
94 | P a g e
Phonegap
o http://phonegap.com/
o http://phonegap.com/about/
o http://phonegap.com/about/feature/
o http://phonegap.com/install/