BachelorProef ILIAS Solutions - Typepad · 2014. 6. 19. · ILIAS Solutions is ISO9001...
Transcript of BachelorProef ILIAS Solutions - Typepad · 2014. 6. 19. · ILIAS Solutions is ISO9001...
BachelorProef
ILIAS Solutions
DOHOU MICHAEL
HOGESCHOOL-UNIVERSITEIT BRUSSEL | Toegepaste Informatica – Software Ontwikkeling | 2013-2014
Dohou Michael & Stainier Nicolas 3TI 2013-2014
1 | P a g i n a
INHOUDSTAFEL
Acroniemenlijst ....................................................................................................................................................... 4
Voorwoord .............................................................................................................................................................. 5
Inleiding ................................................................................................................................................................... 6
Organisatiebeschrijving ........................................................................................................................................... 7
ILIAS Solutions .................................................................................................................................................... 7
Ligging ................................................................................................................................................................. 7
Geschiedenis en huidige situatie ........................................................................................................................ 7
Producten ........................................................................................................................................................... 8
Partners .............................................................................................................................................................. 9
Opdrachtomschrijving ........................................................................................................................................... 10
Huidige situatie ................................................................................................................................................. 10
Toekomstgerichte oplossingen ......................................................................................................................... 10
Out-side problemen met de applicatie ............................................................................................................. 11
Gebruiksvriendelijkheid ................................................................................................................................ 11
Wi-Fi verbinding ........................................................................................................................................... 11
Downloaden van de applicatie ..................................................................................................................... 11
Context .................................................................................................................................................................. 12
Specialisatie en keuze ....................................................................................................................................... 12
Doel van het project ......................................................................................................................................... 12
Mobiele oplossing ............................................................................................................................................. 12
Functionaliteiten van de applicatie .................................................................................................................. 13
Technische UitwerkinG ......................................................................................................................................... 14
Aanpak .............................................................................................................................................................. 14
Use-cases .......................................................................................................................................................... 15
Use Case: Inloggen / Uitloggen .................................................................................................................... 16
Use Case: Data downloaden ......................................................................................................................... 17
Use Case: Vier soorten inventarisaties maken ............................................................................................. 18
Use Case: Hoeveelheid van goederen bevestigen / veranderen. ................................................................. 19
Dohou Michael & Stainier Nicolas 3TI 2013-2014
2 | P a g i n a
Use Case: Goederen scannen ....................................................................................................................... 20
Use Case: Gemaakte inventarissen opladen en feedback van opgeladen inventarissen bekijken .............. 21
Use Case: on- en offline werken ................................................................................................................... 22
Gebruikte Technieken ........................................................................................................................................... 23
Vereisten voor de uitwerking van het project .................................................................................................. 23
HTML5 ............................................................................................................................................................... 24
CSS3 .................................................................................................................................................................. 25
JavaScript .......................................................................................................................................................... 25
jQuery ............................................................................................................................................................... 26
JQuery functies ............................................................................................................................................. 26
jQuery Mobile ................................................................................................................................................... 26
JQuery Mobile uitbreidingen ........................................................................................................................ 26
XML ................................................................................................................................................................... 27
AJAX .................................................................................................................................................................. 27
Hoe werkt AJAX? .......................................................................................................................................... 27
SQLite ................................................................................................................................................................ 28
Phonegap .......................................................................................................................................................... 29
Installatie ...................................................................................................................................................... 29
Commands.................................................................................................................................................... 31
Windows additional...................................................................................................................................... 32
Ontwikkelde ICT oplossing - Stock inventory Application ..................................................................................... 33
Ontwikkelde functionaliteiten .............................................................................................................................. 33
Prototype .............................................................................................................................................................. 35
Planning................................................................................................................................................................. 48
Technical planning ............................................................................................................................................ 48
Practical planning ............................................................................................................................................. 48
SWOT Analyse ....................................................................................................................................................... 49
Strengths ........................................................................................................................................................... 49
Weaknesses ...................................................................................................................................................... 49
Dohou Michael & Stainier Nicolas 3TI 2013-2014
3 | P a g i n a
Opportunities .................................................................................................................................................... 50
Threats .............................................................................................................................................................. 50
Ontwikkelingsplan ................................................................................................................................................. 51
Slotwoord .............................................................................................................................................................. 54
Bijlagen .................................................................................................................................................................. 55
Bronnen ............................................................................................................................................................ 55
Curriculum vitae ............................................................................................................................................... 57
Code Samples ................................................................................................................................................... 59
Weekverslagen ................................................................................................................................................. 65
Presentatie ........................................................................................................................................................ 69
Dohou Michael & Stainier Nicolas 3TI 2013-2014
4 | P a g i n a
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
5 | P a g i n a
VOORWOORD
Dit is het eindwerk van Dohou Michael, laatstejaarstudent Toegepaste Informatica aan de HUB-KAHO. In dit
document bevindt zich een uitgebreide uitleg in verband met mijn IT-project en stage.
We hebben de mogelijkheid gekregen om een project te kiezen en daar gedurende een jaar aan te werken. We
hebben gedurende het eerste semester gewerkt aan de analyse van het project en het plannen van onze stage.
Tijdens het tweede semester hebben we de gelegenheid gekregen om ons software te gaan implementeren bij
het gekozen bedrijf.
Voor ik aan mijn uitleg begin zijn er enkele personen die ik zou willen bedanken. Deze personen hebben mij de
zowel de mogelijkheid als de gelegenheid gegeven om dit project te kunnen werken en tot een einde te
brengen.
De eerste persoon die ik zou willen bedanken is Nicolas Stainier. Nicolas is iemand waarmee ik al enkele
projecten afgewerkt heb en ik wist al op voorhand dat we samen goed konden werken. Hij heeft mij dit
schooljaar goed geholpen en dit heb ik zo goed als mogelijk voor hem proberen te doen. We hebben samen dit
project van het begin tot het einde afgewerkt en met veel inspanningen een mooi resultaat bekomen zijn.
Een tweede persoon die ik zou willen bedanken is Pierre Van Brussel. Hij was de opdrachtgever van dit project
en onze business coach tijdens onze stage. Hij heeft ons begeleidt tijdens onze stage en heeft ervoor gezorgd
dat we zoals echte werknemers verwelkomd werden. Wanneer we vragen hadden konden we altijd bij hem
terecht en als er een probleem was ging hij alles doen om het probleem zo snel mogelijk op te lossen.
Graag zou ik ook Dimitri Van De Velde willen bedanken. Hij was onze technische coach van dit project. Hij heeft
ons zeer belangrijke advies kunnen geven en ons de goede weg getoond naar het einde van het project.
Naast Pierre en Dimitri wens ik ook Chris, Johan en Luc te bedanken. Zij hebben ons zowel technisch als
functioneel geholpen bij het afwerken van dit project.
Ten laatste zou ik de Hogeschool-Universiteit Brussel willen bedanken, maar vooral Gerard Hoorelbeke. Hij was
onze begeleider op school. Hij heeft ervoor gezorgd dat ons stage zo goed als mogelijk verliep en heeft ook
nagekeken als we alles gedaan hebben zoals het moest.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
6 | P a g i n a
INLEIDING
Het project die we uitgewerkt hebben was voor het bedrijf Ilias Solutions. De bedoeling van het project was om
een mobiele applicatie te ontwikkelen voor de inventarisatie van een stock. De applicatie werkt zowel op
Android als iOS tablets en op desktop computers.
In dit document wordt er uitgelegd hoe Nicolas en ik de applicatie hebben uitgewerkt van start tot einde. Eerst
zal er een inleiding gegeven worden over het gekozen stagebedrijf. Er zal kort uitgelegd worden wie Ilias
Solutions is, welke producten ze al uitgewerkt hebben en voor welke klanten.
Vervolgens wordt er een omschrijving gegeven over de opdracht en de bedoeling van ons stage. We zullen
uitleggen wat de huidige situatie was van het probleem en hoe het bedrijf deze problemen wenste op te
lossen.
Het derde hoofdstuk legt de oplossing uit die we bedacht hebben. We leggen daar uit hoe we het project
uitgewerkt hebben en waarom we voor onze oplossing gekozen hebben.
De volgende hoofdstukken leggen de technisch aanpak van het project uit en welke technologieën we allemaal
gebruikt hebben om ons applicatie te kunnen implementeren.
Ten laatste volgt een prototype van de applicatie, de planning van de uitwerking, een kritische SWOT-analyse
en het ontwikkelingsplan.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
7 | P a g i n a
ORGANISATIEBESCHRIJVING1
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 ISO9001 gecertificeerd voor alle activiteiten die verband houden met de ontwikkeling,
levering en onderhoud van IT-oplossingen voor vermogensbeheer.
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.
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.
Specifiek heeft ILIAS Solutions vooral moeten zorgen voor het beheren van het onderhoud van F-16
vliegtuigen. Dit project werd ondersteund 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 18 F-16 vliegtuigen
die de Antofagasta Air Force Base van Chili beschikt.
1 Ilias Solutions, http://www.ilias-solutions.com/iliasdrupal/ [15/04/2014]
Dohou Michael & Stainier Nicolas 3TI 2013-2014
8 | P a g i n a
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.
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 ontwikkeld 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
daarbijhorende 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
personneel. 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 (onder constructie)
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
9 | P a g i n a
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
10 | P a g i n a
OPDRACHTOMSCHRIJVING
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 nieuwere technologieën.
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
11 | P a g i n a
OUT-SIDE PROBLEMEN MET DE APPLICATIE
GEBRUIKSVRIENDELIJKHEID
Bij het opmaken van het project hebben we enkele problemen ondervonden die we zouden hebben bij het
programmeren van ons 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 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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
12 | P a g i n a
CONTEXT
SPECIALISATIE EN KEUZE
Wij, Dohou Michael en Stainier Nicolas, kozen voor Sofware 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 aparaten. Dit topic was ons volkomen onbekend waardoor het voor ons de perfecte
gelegenheid was nieuwe kennis op te doen.
DOEL VAN HET PROJECT
Het doel van het project is het creeë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 creeërt in het bedrijfsleven
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 ons 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 dowloaden. Eens deze gedownload is kan hij deze lokaal
aanpassen en later, met een internetverbinding, opnieuw opladen op de server.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
13 | P a g i n a
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 geinventariseerd 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 inentariseren.
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
14 | P a g i n a
TECHNISCHE UITWERKING
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
15 | P a g i n a
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
16 | P a g i n a
USE CASE: INLOGGEN / UITLOGGEN
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.
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.
REQUIREMENTS
Gebruikerscombinatie moet op server niveau bestaan.
OF
Gebruikerscombinatie bestaat al op het mobiele apparaat en heeft reeds data gedownload.
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
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
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 verschillende criteria moesten worden nagekeken.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
17 | P a g i n a
USE CASE: DATA DOWNLOADEN
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.
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.
REQUIREMENTS
De gebruiker moet online zijn om te kunnen downloaden of te refreshen.
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.
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.
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
18 | P a g i n a
USE CASE: VIER SOORTEN INVENTARISATIES MAKEN
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.
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.
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.
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, …
RESULTAAT
Alle inventarissen werken voor de volle 100%. Je kan op geen verkeerde plaatsen klikken en er is geen
mogelijkheid van problemen.
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
19 | P a g i n a
USE CASE: HOEVEELHEID VAN GOEDEREN BEVESTIGEN / VERANDEREN.
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.
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.
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.
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
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
20 | P a g i n a
USE CASE: GOEDEREN SCANNEN
BESCHRIJVING
Een gebruiker kan bij het blind inventariseren van producten goederen scannen. Hiervoor maakt hij gebruik van
de camera van zijn toestel.
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.
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.
TESTPLAN
Voor de barcode scanner te testen creëerden we acht verschillende soorten barcodes.
We probeerden ook niet gekende producten in te scannen.
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.
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
21 | P a g i n a
USE CASE: GEMAAKTE INVENTARISSEN OPLADEN EN FEEDBACK VAN OPGELADEN
INVENTARISSEN BEKIJKEN
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.
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.
REQUIREMENTS
Om feedback op te halen is het vereist dat deze eerst wordt opgeladen.
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
RESULTAAT
1) Data kan niet meer dubbel worden opgeladen
2) Data wordt lokaal aangepast
3) Data wordt op server niveau aangepast
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
22 | P a g i n a
USE CASE: ON- EN OFFLINE WERKEN
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.
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.
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.
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.
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.
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
23 | P a g i n a
GEBRUIKTE TECHNIEKEN
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
24 | P a g i n a
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 ons 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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
25 | P a g i n a
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
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 de applicatie gebruiken we JavaScript om elementen op te roepen en hier dynamisch mee om te gaan.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
26 | P a g i n a
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.
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
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.
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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
27 | P a g i n a
XML
XML (of eXtended Markup Language) wordt in ons 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 ons 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.
AJAX
Ajax staat voor Asynchroon JavaScript en 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 pagi na (dat geen
ajax gebruikt) zou volledig moeten herladen om nieuwe inhoud te kunnen tonen.
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.
}
});
Dohou Michael & Stainier Nicolas 3TI 2013-2014
28 | P a g i n a
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 ons applicatie werken met de data die
hij lokaal heeft gedownload.
In JavaScript bestaan er niet zo veel functies. We hebben op ons 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 commands komen die we gaan gebruiken. Deze zijn alle SQL commands die we
gebruikt hebben in ons applicatie:
CREATE IF NOT EXIST INSERT UPDATE DELETE SELECT
Dohou Michael & Stainier Nicolas 3TI 2013-2014
29 | P a g i n a
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.
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.
VOORBEREIDING
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
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)
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
30 | P a g i n a
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
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
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;%ANDRO
ID_HOME%\tools;%ANDROID_HOME%\platform-tools
CORDOVA (PHONEGAP) INSTALLATIE
Nu dat alles klaar ligt kunnen we cordova installeren via de Command Prompt. Dit gebeurt via command:
npm install –g cordova
Dohou Michael & Stainier Nicolas 3TI 2013-2014
31 | P a g i n a
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 ons 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
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
32 | P a g i n a
Indien alles goed opgestart werd zou dit scherm op het tablet tevoorschijn moeten komen.
Voorbeeld van een basisch cordova applicatie
EXTRA: Om de werkelijke applicatie te creeëren (release versie) zal de gebruiker volgende commando moeten
uitvoeren:
cordova build <platform> --release
Voorbeeld:
cordova build android --release
Deze commando’s creeëren een applicatie die je kan downloaden om op je device te installeren.
WINDOWS ADDITIONAL
For windows phone cordova install - for development on windows phone 7 you need windows 7 - for development on windows phone 8 you need windows 8 You need npm, cordova, java path like in android Additional paths - Windows SDK: download link : http://dev.windowsphone.com/en-us/downloadsdk - Framework link in PATH variable: link to C:\Windows\Microsoft.NET\Framework\v4.0.30319 Windows commands - cordova platform add wp8 - cordova build wp8 --release .xap file in windows store
Dohou Michael & Stainier Nicolas 3TI 2013-2014
33 | P a g i n a
ONTWIKKELDE ICT OPLOSSING - STOCK INVENTORY APPLICATION
– Multiplatform app + desktop possibility
o Ons applicatie bestaat uit een website en phonegap plugins, het is dus perfect mogelijk om
deze op een desktop te gebruiken. Enkel de plugins (barcode, spashscreen, ...) zullen niet
ondersteund worden op pc.
o Dankzij PhoneGap kunnen we een website op een applicatie tonen alsof het een native
applicatie is
– Execute Stock counting
o We hebben ervoor gezorgd dat de gebruiker op een gebruiksvriendelijke manier een
hoeveelheid kan ingeven bij het inventariseren van een product
– Immediate validation of quantities
o Omdat ons applicatie rechtstreeks geconnecteerd is met de ILIAS Solutions Database
– Barcode Scanning possibility
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.
– Interacting with 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
verwerke n doorheen de applicatie
ONTWIKKELDE FUNCTIONALITEITEN – Inlog en uitlog systeem
o Zoals op elk 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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
34 | P a g i n a
– Stock inventariseren op vier manieren
Blind Inventory
– De blinde inventaris is een inventaris die gemaakt is om producten snel te inventariseren.
Bij het openen nvan 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 da kans om de
inventaris te starten. Als je de inventaris start zullen alle items in de database die ouder
zijn dan de waarde van de slider zullen 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 loactie 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.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
35 | P a g i n a
PROTOTYPE
Hier volgen verschillende screenshots van de applicatie waarin de gebruiker de inventaris doet van een stock.
Inlogscherm
Omgeving kiezen
Gebruikersnaam, wachtwoord en omgeving ingeven en confirmeren
Dohou Michael & Stainier Nicolas 3TI 2013-2014
36 | P a g i n a
Downloadscherm
Download van de data van één magazijn
Data van meerdere magazijnen gedownload. Keuze uit deze magazijnen voor het actieve magazijn.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
37 | P a g i n a
Home scherm
Menu (links)
Actieve magazijn + opties + uitlogmogelijkheid (rechts boven)
Dohou Michael & Stainier Nicolas 3TI 2013-2014
38 | P a g i n a
Profielpagina + mogelijkheid profielfoto aan te passen
Profielpagina + persoonsgegevens
Gebruikte magazijn aanpassen
Dohou Michael & Stainier Nicolas 3TI 2013-2014
39 | P a g i n a
Zoekpagina
Inventarisatie mogelijkheden
Scan pagina (‘+’ om items toe te voegen aan de inventarisratie)
Dohou Michael & Stainier Nicolas 3TI 2013-2014
40 | P a g i n a
Gegevens van item ingeven
Gegevens ingeven door te scannen
Inventaris maken per datum (slider stelt datum voor)
Dohou Michael & Stainier Nicolas 3TI 2013-2014
41 | P a g i n a
Inventaris maken van items ouder dan…
Inventaris maken van alle data
Inventaris maken per locatie (BinLocatie)
Dohou Michael & Stainier Nicolas 3TI 2013-2014
42 | P a g i n a
BinLoc inventaris filteren op data criteria
Bepaalde BinLocaties aanduiden om deze te inventariseren
Inventarisatie per maand (Macode)
Dohou Michael & Stainier Nicolas 3TI 2013-2014
43 | P a g i n a
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
44 | P a g i n a
Historiek, inventarisdocumenten, pagina
Eens data gesynchroniseerd wordt er gewacht (knop uitgeschakeld)
Succesvol opgeladen file (geen fouten op server en applicatie niveau)
Dohou Michael & Stainier Nicolas 3TI 2013-2014
45 | P a g i n a
Historiekdocument uitgeschreven
Details van een item (server details i.v.m. product upload)
Eens document is opgeladen start je een nieuw document.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
46 | P a g i n a
Twee succesvol-upgeloade files
Settings (Voorgrond kleur optie + data van nieuw magazijn downloaden mogelijkheid)
Donkere pagina
Dohou Michael & Stainier Nicolas 3TI 2013-2014
47 | P a g i n a
Upload pagina met donkere kleur
Uitlogscherm
Wachtscherm
Dohou Michael & Stainier Nicolas 3TI 2013-2014
48 | P a g i n a
PLANNING
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
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
49 | P a g i n a
SWOT ANALYSE
In de volgende pagina’s zal een SWOT-analyse volgen. Dit heeft als doel op een kritische manier de strengths,
weaknesses, opportunities en threats van de applicatie te bepalen.
STRENGTHS
Snellere, efficiëntere inventarisatie
o Alles gebeurde toen op pen en papier.
o Het gebeurde in 3 fasen :
Afdrukken van het inventarisatielijst
Inventariseren van de stock
Overtijpen van het resultaat
o Hoeveelheden worden rechtstreeks weergegeven
o Er wordt een melding gegeven bij verschil met de database
o Een prent van het product wordt getoond om producten gemakkelijker te herkennen
o In sommige gevallen worden er zelfs dimensies en gewicht van het product gegeven
Rechtstreekse connectie met de database
o Download van alle data van een bepaalde warehouse
o Data wordt lokaal opgeslagen en kan dus offline gebruikt worden
o Upload van data
o Feedback van inventarisaties na upload
Tablet & desktop applicatie
o Kan gebruikt worden op computers
o Is ook een applicatie op tablet
o Een tablet is gemakkelijk om te gebruiken
o Een tablet iso ok klein en transporteerbaar
Multi-platform compatibiliteit
o De applicatie is compatibel voor de drie meestgebruikte platforms :
Android
iOS
Windows Phone
o Geeft de mogelijkheid aan de Belgische Defensie om zelf hun tablet te kiezen
WEAKNESSES
Security
o Is nog niet volledig afgewerkt
o Een hacker zou de wachtwoorden van ingelogde gebruikers kunnen terug vinden
De applicatie moet via een VPN (Virtual Private Network) connecteren
o Anders heeft de applicatie geen toegang tot het ILIAS Solutions netwerk
Performantie
o We hebben niet genoeg tijd gehad om de performantie van ons applicatie te verhogen
o De applicatie is niet traag, maar kan sneller
Dohou Michael & Stainier Nicolas 3TI 2013-2014
50 | P a g i n a
OPPORTUNITIES
Nieuw contract
o De Belgische Defensie zou een contract kunnen tekenen met ILIAS Solutions om dit applicatie
te implementeren op al hun computers en tablets
Barcodes
o De applicatie werkt met barcodes, dit zou het Defensie kunnen aanmoedigen om overal
barcodes te zetten
THREATS
Gebruiksvriendelijkheid
o Mensen die ons applicatie gaan gebruiken hebben geen ervaring met de nieuwere
technologieën.
o Het zijn mensen die niet vaak op tablets werken
o Gebruiksvriendelijkheid zal dus constant aangepast moeten worden
Wi-Fi
o Ons applicatie heeft Wi-Fi nodig om te kunnen inloggen, data te downloaden en data daarna
te kunnen uploaden
o Ookal werkt de applicatie offline, de gebruiker zal minstens één keer om de twee weken
online moeten gaan om zijn data terug te downloaden
Installatie
o Installatie van ons applicatie gebeurt momenteel nog niet volledig automatisch.
o Iemand van ILIAS Solutions zal de applicatie online moeten zetten na updates.
o Dit moet voor elk platform appart gebeuren
Dohou Michael & Stainier Nicolas 3TI 2013-2014
51 | P a g i n a
ONTWIKKELINGSPLAN
In het begin van ons stage werd ons gevraagd om verschillende competenties te kiezen die van toepassing
waren op onze stage en daarop een score te geven van 0 tot 3. Dit hebben we gedaan en hebben op het einde
van de stage feedback gekregen van onze stagementor en coaches. Hier volgt een overzicht van deze
competenties en mijn vooruitgang na de stage.
Algemene competenties (niet-IT):
Vlot functioneren in een professionele (internationale) omgeving
o Score: 1 =>2
Bij ILIAS Solutions hebben we de mogelijkheid gehad om op het bedrijf zelf aan onze stage te mogen werken.
Dit hield dus in dat we de applicatie konden programmeren en implementeren op hun systeem.
Om dit te kunnen doen hebben we veel moeten samenwerken met de verschillende werknemers van het
bedrijf. Dankzij hen hebben we op hun REST Service kunnen connecteren, SQL statements gekregen om de
verschillende acties van de applicatie te kunnen uitvoeren, … .
Bij problemen konden we altijd terecht bij onze technische coach die ons goed geholpen heeft. Wanneer hij
geen antwoord had op onze vragen stuurde hij ons naar zijn collega’s die wat meer kennis hadden over wat we
zochten.
Dit had ik nog nooit moeten doen. We hebben op school altijd geleerd wat we moesten doen, terwijl we nu
alleen zaten in een bedrijf. We hebben ons plan moeten trekken om te leren programmeren op tablets, maar
hebben leren samenwerken met andere mensen. Ook begrijp ik nu waarom het belangrijk is om voor een goed
structuur te zorgen in een bedrijf, waar iedereen zijn taak heeft.
Feedback van de docent: “Je bent blijkbaar goed geïntegreerd en men ervaart het prettig om met u te werken.”
Bedrijfsbeleid ondersteunen vanuit de eigen vakspecialisatie
o Score: 0 => niet van toepassing
Ik heb dit bij de algemene competenties toegevoegd omdat ik dacht dat er hiermee bedoeld was dat we
mensen iets bijgeleerd hebben die ze niet wisten. Dit was het geval met PhoneGap en Jquery Mobile.
Twee van de meetings die we gehad hebben tijdens onze stagen hadden als doel dat we aan onze collega’s een
soort van les moesten geven. Deze les ging over het gebruik van PhoneGap en Jquery en hoe ze dit moeten
installeren. Daarbij hebben we ook een handleiding geschreven over de installatie van PhoneGap.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
52 | P a g i n a
ICT-specifieke competenties:
Gegevens verzamelen, opslaan en ter beschikking stellen zodat deze op een correcte en
gebruiksvriendelijke manier kunnen worden opgevraagd
o Score: 1 => 2
Om code te delen en verzamelen maakt ILIAS Solutions gebruikt van Git. Dit is een platform waarbij ze al hun
code opslaan. Wanneer iemand een aanpassing maakt in de code wordt deze toegevoegd aan de code en
wordt er weergegeven wie wat aangepast heeft.
We hebben dit ook gebruikt bij onze code. Al onze code is terug te vinden op hun Git, samen met een
opvolging van alle veranderingen die we gemaakt hebben aan onze code. Op die manier kunnen ze de
applicatie downloaden en zie wat we gedaan hebben aan de code en wanneer dit gebeurd is.
We hebben voor de zekerheid ook meerdere tests gedaan om zeker te zijn dat onze code bruikbaar is op
iemand ander zijn pc en dit is met veel success verlopen.
Feedback: “De uitwerking van de toepassing en de cross-platforminstallatie is blijkbaar zeer goed verlopen.”
Nieuwe IT-oplossingen (autonoom) uitwerken in overeenstemming met de verwachtingen van de
opdrachtgever
o Score: 2 (blijft)
We zijn voor ons applicatie vanaf nul begonnen. Het enige waarover we beschikten was de ILIAS Solutions
database. We hebben stap per stap de applicatie uitgewerkt volgens onze planning en hebben zelfs nog tijd
over gehad om te testen.
We hebben alle functionaliteit uitgewerkt die ons gevraagd warden en zelfs meer. Enkele van de
functionaliteiten werden als out-of-scope beschouwd en hebben we uiteindelijk kunnen toevoegen aan ons
project.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
53 | P a g i n a
Op een adequate wijze IT-oplossingen configureren, beveiligen en aanpassen zodat deze beantwoorden
aan de veranderende behoeften van de organisatie
o Score: 0 => 1+
Zoals is de feedback gezegd hebben we voor een correcte beveiliging kunnen zorgen van de applicatie, ookal
was dit niet in de scope van het project.
We hebben voor een config.xml file gezorgd waarin alle configuraties van ons applicatie zitten. Dit zorgt voor
het gemakkelijk aanpassen van enkele configuraties en functionaliteiten.
Feedback: “Alhoewel initieel de beveiliging niet de hoofdzaak was is dit blijkbaar toch aan de orde gekomen,
vandaar de goede score.”
IT-taken kwaliteitsvol uitvoeren zodat het resultaat voldoet aan de eisen van een steeds wisselende
omgeving
o Score: 0 => 2
Zoals hierboven vermeld hebben we een config.xml file gemaakt. Dit geeft de mogelijkheid om de verschillende
omgevingen gemakkelijk te kunnen aanpassen. We hebben rekening gehouden met het feit dat ILIAS Solutions
verschillende klanten heeft met verschillende eisen.
Feedback: “Blijkbaar is het over brengen van de applicatie naar een Android, Windows als iOS platform goed
verlopen.”
Dohou Michael & Stainier Nicolas 3TI 2013-2014
54 | P a g i n a
SLOTWOORD
Het was voor mij een grote eer om een applicatie te mogen ontwikkelen voor Ilias Solutions. In het begin van
het project waren Nicolas en ik een beetje bang omdat we geen kennis hadden met het programmeren op
mobile device. Vandaag kan ik op mijn CV toevoegen dat ik mobiele applicaties kan programmeren op
verschillende platforms.
Ik heb een mooi ervaring gehad op het bedrijf zelf, heb leuke mensen leren kennen en deze mensen hebben
mij veel bijgeleerd. De baas heeft ons gezegd dat we welkom waren indien we werk zochten en dit beschouw ik
als een dikke ‘win’.
We hebben een project leren voorbereiden en plannen. Ook hebben we analyses leren maken van een
probleem en een oplossing op gevonden. Tenslotte hebben geleerd hoe we onze tijd moesten inplannen en
welke stappen we vooral niet mochten vergeten bij het ontwikkelen van software.
Tijdens onze stage zelf hebben we leren programmeren op PhoneGap. We hebben daarbij veel met HTML5 en
JavaScript gewerkt. We hebben ook geleerd wat Git, REST en Jenkins waren. Deze waren drie technologieën
waarop ik nooit gewerkt had.
Ik zou dat bedrijf alvast aanraden aan mijn collega’s van het tweede jaar zodat zij ook zo’n mooi ervaring
kunnen hebben van hun stage. Ik ben er zeker van dat zij het goed gaan doen er veel bij gaan leren.
Om af te sluiten zou ik iedereen een laatste keer willen bedanken voor wat ze voor ons gedaan hebben. Ik zal
er mooie herinneringen van houden.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
55 | P a g i n a
BIJLAGEN
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/
Dohou Michael & Stainier Nicolas 3TI 2013-2014
56 | P a g i n a
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
Phonegap
o http://phonegap.com/
o http://phonegap.com/about/
o http://phonegap.com/about/feature/
o http://phonegap.com/install/
Dohou Michael & Stainier Nicolas 3TI 2013-2014
57 | P a g i n a
CURRICULUM VITAE
DOHOU MICHAEL
Geboren op: 30 april 1993, Etterbeek
Geslacht: M
Nationaliteit: Belg
Burgelijke staat: Ongehuwd
Telefoonnummer: 02/466 92 98
GSM-nummer: 04/73 50 13 62
E-mail: [email protected]
HUIDIGE OPLEIDINGSNIVEAU:
Toegepaste Informatica (sectie programmeren)
in Hogeschool-Universiteit Brussel
ONDERWIJSKWALIFICATIE:
Diploma Basis Onderwijs
in Heilig Harts-college Ganshoren
Diploma Secundair Onderwijs
in Sint-Pieterscollege Jette
ARBEIDSVERLEDEN:
Direct Sport Anderlecht
als verkoper in de schoenensectie
Duur: 1 maand
Les Jeux d’Hivers
als kerlner en barman
Duur : 3 jaar (tijdens vakantieperiode en weekends)
Dohou Michael & Stainier Nicolas 3TI 2013-2014
58 | P a g i n a
TALENKENNIS:
Spreken Begrijpen Schrijven
Frans Zeer goed Zeer goed Zeer goed Nederlands Zeer goed Zeer goed Zeer goed Engels Zeer goed Zeer goed Zeer goed Duits Basisch Basisch Basisch
PROFESSIONELE KWALIFICATIES:
Microsoft Office
Word: Zeer uitgebreid
Excel: Zeer uitgebreid
PowerPoint: Uitgebreid
Access: Zeer uitgebreid
Outlook: Uitgebreid
Programmeren
C++: Basisch
Html: Uitgebreid
Javascript: Uitgebreid
CSS: Uitgebreid
JQuery: Goed (+ Mobile)
AJAX: Basisch
JSon: Basisch
Java: Goed
.NET: Uitgebreid
SQL: Uitgebreid
Android SDK: Basisch
Extra
Git, PhoneGap, SCRUM, Prince2, XML
Dohou Michael & Stainier Nicolas 3TI 2013-2014
59 | P a g i n a
CODE SAMPLES
LOGIN_METHODS.JS
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
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
60 | P a g i n a
LOGIN_DB_METHODS.JS
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
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
61 | P a g i n a
DB_METHODS.JS
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
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
62 | P a g i n a
LAYOUT_METHODS.JS
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
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 ere en error bericht getoond
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
63 | P a g i n a
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
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)
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
64 | P a g i n a
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
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
65 | P a g i n a
WEEKVERSLAGEN
WEEK 1 (10/02)
Deze week is ons stage bij ILIAS Solutions begonnen. We zijn direct aan de slag geweest met het
implementeren van het project. We hebben de eerste dag eerst alle nodige tools geïnstalleerd (hoofdzakelijk
Visual Studio en Eclipse). Naast het programmeren hebben we ook enkele meetings gehad met onze klant. Een
eerste meeting was om ons feedback te geven over onze presentatie tijdens het examen. Naast deze meeting
hebben we ook een afspraak kunnen krijgen met een van de klanten van ILIAS Solutions. Daarbij hebben we
kunnen vragen wat hun taak was en wat ze allemaal verwachten van een mogelijke inventory management
applicatie. De laatste meeting was op het einde van de week, waarbij we samen met onze technische mentor
(Dimitri Van de Velde) hebben besproken wat we allemaal gedaan hadden deze week en of we goed bezig
waren.
WEEK 2 (17/02)
Deze week was voor mij een moeilijke week. Ik ben enkele dagen vastgebleven op een bepaalde functie van
onze applicatie. Deze functie had als doel een getrokken foto in de database op te slaan als BLOB, en deze
terug op te vragen en te tonen. Het heeft mij drie dagen genomen om deze functie volledig te kunnen
implementeren. Het probleem lag vooral aan het feit dat zaken die op een desktop website werkten, niet
wouden werken op tablet. Naast dit had ik ook besloten om onze code wat op te kuisen. We hadden veel
functie in commentaar gezet die we niet meer nodig hadden en onze code was helemaal niet georganiseerd. Ik
heb dus besloten om alles op te kuisen zodat het leesbaar werd. Deze week hebben we geen tijd gehad om een
meeting te doen, maar we hebben al voor een afspraak gezorgd voor maandag morgend.
WEEK 3 (24/02)
Deze week is begonnen met een meeting omdat we vorige week geen tijd gehad hebben om deze te kunnen
doen. Er waren wat meer mensen aanwezig tijdens deze meeting, dit was dus de gelegenheid om wat feedback
te krijgen. Deze mensen hebben een gelijkaardige programma aan de opdracht die wij moeten uitvoeren. Zij
hebben een desktop interface gemaakt om het inventarisatie van de stock te kunnen beheren. Hun programma
is wel veel uitgebreider dan wat wij moeten doen, maar hun feedback was voor ons heel belangrijk. Ze hebben
ons enkele zaken laten zien waar we wat meer aan moesten werken, maar in het algemeen zijn we op dit
moment goed bezig. Op donderdag hebben we een tweede meeting gehad, om wat te laten zien wat we in de
week gedaan hebben. Pierre (onze opdrachtgever) was tevreden over ons werk.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
66 | P a g i n a
WEEK 4 (03/03)
We hebben deze week bezoek gekregen van onze stagebegeleider mr. Hoorelbeke. Er viel niet veel te zeggen
over ons behalve het feit dat ik me een beetje heb overgeschat voor enkele competenties. Onze docent heeft
kunnen zien dat we goed op pad zijn en ons project tot een goed eind zullen brengen. Deze week zijn we nog
bezig geweest met design van onze applicatie. We gaan dit nog volgende week doen en de week daarna zou
onze front-end zo goed als af moeten zijn. Dit zou normaal gezien haalbaar moeten zijn aangezien we nu vooral
bezig zijn met details. Een groot deel van onze applicatie is al af en het begint stilletjes aan op een echte
applicatie te lijken. Wekelijke afspraken met onze opdrachtgever toont aan dat we goed bezig zijn, hij heeft
maar enkele opmerkingen te geven en deze vragen maar kleine aanpassingen.
WEEK 5 (10/03)
Deze week waren we maar 3 dagen aanwezig op onze stageplaats wegens het verplichte job beurs aan de HUB
op 13/03. Tijdens deze korte week hebben we eerst een meeting gedaan met onze opdrachtgever. Hij was de
vorige week afwezig, we moesten dus de meeting van vorige week inhalen. We hebben enkele opmerkingen
gekregen betreffende onze design. Deze details hebben we verbeterd in de loop van de week maar er blijven
nog enkele zaken dat we in orde moeten brengen voor volgende week. Ik heb een slider toegevoegd dat als
filter dient om de datums van de verschillende inventarissen te laten zien. Elke keer dat een gebruiker zal
slide’n zal hij datums van verschillende periodes te zien krijgen. Ook heb ik wat aanpassingen gebracht aan
onze blind inventory omdat het mi gevraagd werd. Ik heb bepaalde buttons verplaatst en weggehaald, maar
deze waren maar kleine aanpassingen.
WEEK 6 (17/03)
Op donderdag 20/03 hadden we een afspraak met magazijniers van de Wing 15 warehouse. Omdat we daarbij
een demo moesten geven van onze applicatie, hebben we ons deze week vooral gefocust op bug fixing. We
wilden ervoor zorgen dat de functionaliteiten die we gingen tonen zo goed mogelijk werkten om een goede
indruk te geven. We hebben dus blind en binloc inventory zo goed mogelijk afgewerkt en die twee vooral
gepresenteerd aan de klant.
De klant was tevreden over het resultaat en heeft ons de mogelijkheid gegevens om foto’s te trekken van de
warehouse.
WEEK 7 (24/03)
Op donderdag 20/03 hadden we een afspraak met magazijniers van de Wing 15 warehouse. Omdat we daarbij
een demo moesten geven van onze applicatie, hebben we ons deze week vooral gefocust op bug fixing. We
wilden ervoor zorgen dat de functionaliteiten die we gingen tonen zo goed mogelijk werkten om een goede
indruk te geven. We hebben dus blind en binloc inventory zo goed mogelijk afgewerkt en die twee vooral
gepresenteerd aan de klant.
De klant was tevreden over het resultaat en heeft ons de mogelijkheid gegevens om foto’s te trekken van de
warehouse.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
67 | P a g i n a
WEEK 8 (31/03)
Voor de terugkomst van de opdrachtgever (volgende week) hebben we besloten om het design van onze
applicatie volledig te veranderen. Ik drie nieuwe thema’s ontworpen voor ons applicatie om een deftig design
te kunnen geven aan onze applicatie. Ik heb eerder voor een flat design gekozen omdat dit nu de trend is bij
applicaties. Ook heb ik enkele details aangepast ivm het design zodat het er wat gebruiksvriendelijker uitziet. Ik
ben fier op mijn werk en ben benieuwd over wat Pierre erover denkt.
WEEK 9 (07/04)
Deze week is onze opdrachtgever terug gekomen van Chili. Hij was zeer blij van onze werk en heeft onze amper
kritiek moeten geven. Ik heb nog wat verder gewerkt aan design en heb details afgewerkt. Naast dit heb ik wat
structuur gegeven aan onze database en heb ik een extra functionaliteit toegevoegd: Het opnemen van
warehouses uit de database en ze tonen op het scherm (dit gebeurde vroeger statisch). We kunnen nu ook
gebruikers’ informatie opvragen en ze opslaan in een sessie. We zouden dit ook lokaal moeten opslaan in een
xml-bestand maar we moeten eerst een encryptie vinden om de password veilig te kunnen opslagen.
WEEK 10 (14/04)
We hebben deze week niet zo veel aan onze applicatie gewerkt. We moeten tegen volgende week dinsdag een
presentatie geven voor alle werknemers van Ilias en hebben dus de hele week aan onze presentatie gewerkt. Ik
heb eerst een beetje bug fixing gedaan om zeker te zijn dat we een mooi demo kunnen geven. Daarna hebben
Nicolas en ik samengezeten om een eerste versie van de presentatie te maken. Op donderdag zijn we samen
gaan zitten met onze opdrachtgever om onze presentatie na te kijken en enkele verbeteringen aan te brengen.
Ten laatste hebben we een template gekregen van Ilias die ze gebruiken om presentaties te maken. Om de look
en feel te houden van het bedrijf hebben we dus onze presentatie veranderd volgens de template.
WEEK 11 (21/04)
Deze week was een korte week. Onze week is op dinsdag begonnen met een presentatie over wie we zijn en
wat we in het bedrijf komen doen. Er waren een 20-tal aanwezigen tijdens de presentatie en we hebben nogal
goede feedback gekregen. We zijn ook samen met onze coachen naar het restaurant gaan eten om ons succes
te vieren. Ons applicatie is natuurlijk nog niet af maar we zijn dicht bij het einde en ze lijken zeer tevreden over
ons werk. De andere dagen heb ik voor een grote update gezorgd van onze applicatie. We hebben sinds het
begin nog geen update gedaan van phonegap, ik dacht dus dat het de goede moment was om dit te doen zodat
we tegen het einde geen problemen krijgen met versieverschillen. Ik heb wel even moeten prutsen om al onze
phonegap plugins (oa de camera en de barcodescanner) te kunnen laten werken maar tegen het einde van de
week werkte alles weer perfect.
WEEK 12 (28/04)
Voor deze korte week hebben Nicolas en ik vooral gewerkt aan de laatste functionaliteit op tablet, namelijk het
upload gedeelte. Dit gedeelte is bijna af, we zouden het volgende week volledig moeten afwerken. Dit wil dus
zeggen dat we stilletjes aan ons applicatie beginnen af te ronden. We gaan nog aan enkele details werken zoals
bijvoorbeeld version control en het automatisch laten installeren van onze applicatie maar deze delen zijn
optioneel. We gaan vooral nog aan bug fixing moeten doen om zeker te zijn dat er geen bugs tussen zitten.
Voor de rest val er niet veel meer te doen.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
68 | P a g i n a
WEEK 13 (05/05)
Deze week heb ik vooral aan de settings van ons applicatie gewerkt. We kunnen nu de kleur veranderen van de
applicatie en een donkere skin geven. Ook ben ik aan de offline mode begonnen waarbij een gebruiker zelfs
offline de applicatie kan gebruiken. Deze is nog niet volledig af en zal tegen volgende week afgewerkt worden.
Daarnaast heb ik enkele details afgewerkt en heeft Nicolas een eerste afgewerkte versie van de upload-
functionaliteit gemaakt. We hebben donderdag een meeting gehad met onze technische coach en de
opdrachtgever en hebben feedback gekregen over onze work in progress. We hebben een nieuw lijst gemaakt
over wat er nog te doen is en zullen dit afwerken voor de twee volgende weken.
WEEK 14 (12/05)
We zijn deze week met een meeting begonnen. Het was een tijdje geleden dat we dit niet meer gedaan hadden
omdat onze opdrachtgever het druk had. We hebben onze nieuwe functionaliteiten getoond en hebben
feedback gekregen. Er waren enkele problemen met onze upload-functionaliteit, we hadden de bedoeling van
de upload niet zo goed begrepen. Na een goede bespreking hebben Nicolas en ik goed begrepen wat er van ons
verwacht werd bij het opladen en hebben eraan gewerkt. We zijn begonnen met het aanpassen van de functie
maar hebben het nog niet afgewerkt. We verwachten dat het volgende week ten laatste op dinsdag afgewerkt
is zodat we het kunnen presenteren aan de mensen van de Belgische Defensie tijdens onze demo. Ook zijn we
aan een config xml-file begonnen waarin we per omgeving apart configuraties zullen inzetten. Nicolas heeft dit
als deels opgebouwd en zal het doorsturen naar een collega die zal nakijken of er nog iets in de config file
tussen moet.
WEEK 15 (19/05 & 26/05)
De laatste twee weken waren voor ons een drukke weken. We hebben ons applicatie zo goed als afgewerkt.
Alle testing is gedaan, alle bugs zijn gefixt. Op woensdag hebben we een belangrijk meeting gehad met mensen
van de Belgische Defensie. We hebben hen een presentatie en een demo gegeven van ons applicatie.
Daarnaast hebben ze zelf ook ons applicatie mogen testen. Ze waren heel blij van ons werk en hebben ons
goede feedback gegeven.
Het applicatie is nu volledig afgewerkt. We hebben nog vandaag (op de laatste dag) alles nagekeken. We
mogen dus zeggen dat ons applicatie klaar is voor de presentatie. We zijn samen met de directeur van ILIAS
Solutions gaan eten en ook hij was zeer tevreden over ons werk. Hij heeft ons gezegd dat hij graag zou willen
dat we na onze studies voor zijn bedrijf komen werken. Ook heeft hij ons gevraagd om het bedrijf aan
studenten van het tweede aan te raden omdat hij volgend jaar ook als stagebedrijf zou willen inschrijven.
Hopelijk gaat de Defensie ons applicatie ooit kopen en wie weet zal het misschien in het praktijk gebruikt
worden. Het was een zeer toffe en leerrijke stage. We hebben enorm veel bijgeleerd. Ik zou het zowiezo
opnieuw kunnen doen.
Dohou Michael & Stainier Nicolas 3TI 2013-2014
69 | P a g i n a
PRESENTATIE
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
70 | P a g i n a
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
71 | P a g i n a
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
72 | P a g i n a
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
73 | P a g i n a
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
74 | P a g i n a
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
75 | P a g i n a
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
76 | P a g i n a
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
Dohou Michael & Stainier Nicolas 3TI 2013-2014
77 | P a g i n a
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