BachelorProef ILIAS Solutions - Typepad

95
BACHELORPROEF | STAINIER NICOLAS BachelorProef ILIAS Solutions STAINIER NICOLAS HOGESCHOOL-UNIVERSITEIT BRUSSEL | Toegepaste Informatica - Software Ontwikkeling | 2013-2014

Transcript of BachelorProef ILIAS Solutions - Typepad

Page 1: BachelorProef ILIAS Solutions - Typepad

BACHELORPROEF | STAINIER NICOLAS

BachelorProef

ILIAS Solutions

STAINIER NICOLAS

HOGESCHOOL-UNIVERSITEIT BRUSSEL | Toegepaste Informatica - Software Ontwikkeling | 2013-2014

Page 2: BachelorProef ILIAS Solutions - Typepad

1 | P a g e

1 Voorwoord

Dit document werd opgesteld door Stainier Nicolas, laatstejaars student Toegepaste Informatica aan de

Hogeschool-Universiteit Brussel. In volgend document krijgt u alle informatie in verband met zijn IT-project.

Het IT-project is een opdracht die werd toegewezen aan alle laatste jaar studenten aan de HUB. Het gaf hen

de mogelijkheid een project te kiezen / op te stellen en daar gedurende een volledig jaar aan te werken.

Het eerste semester werd toegewezen aan de analyse van het project en het tweede semester aan de

uitvoering van het project.

Alle studenten kregen de kans dit IT-project in groepjes van twee personen uit te voeren. Daarom kozen

Michael Dohou en ikzelf (Nicolas Stainier) hiervoor samen te werken. Onze keuze als IT-project ging meteen

naar een project van ILIAS Solutions.

Het project van ILIAS Solutions was een Software project. Het was de bedoeling een mobiele applicatie te

ontwikkelen voor de inventarisatie van een warehouse te vergemakkelijken. Deze applicatie is toegankelijk

op twee mobiele platformen (Android en iOS) en op desktop computers.

In dit document wordt u meer informatie gegeven over alle processen van het opstarten tot het afsluiten

van het project.

Vervolgens bedank ik de Hogeschool Universiteit Brussel voor de opportuniteit die mij geboden werd om

te werken aan deze bachelor proef.

Het is voor ons een enorm leerrijke ervaring die zonder dit IT-project niet mogelijk geweest zou zijn. De

kans krijgen niet alleen een stage te doen maar ook de uitvoering van een volledig project is uitzonderlijk.

Dit is een kennis die we als bagage meenemen in onze latere carrière.

Ook wil ik graag mijn teamgenoot, Dohou Michael, bedanken voor alle hulp die hij mij heeft geboden.

Zonder hem had dit proces veel zwaarder geweest en had ik nooit even veel kunnen bijleren en resultaat

kunnen boeken.

Ten slotte willen we ILIAS Solutions bedanken voor alle tijd en middelen die zij hebben vrij gemaakt om aan

dit project te werken. Specifieker willen we onze stagementoren, Pierre Van Brussel en Dimitry Van De

Velde, bedanken die ons bijstonden gedurende het hele project.

Page 3: BachelorProef ILIAS Solutions - Typepad

2 | P a g e

2 Inhoudsopgave 1 Voorwoord .............................................................................................................................................. 1

3 Inleiding................................................................................................................................................... 4

4 Acroniemenlijst ....................................................................................................................................... 5

5 Organisatiebeschrijving ........................................................................................................................... 6

5.1 ILIAS Solutions ................................................................................................................................ 6

5.2 Ligging ............................................................................................................................................. 6

5.3 Geschiedenis en huidige situatie .................................................................................................... 7

5.4 Producten ....................................................................................................................................... 8

5.5 Partners .......................................................................................................................................... 9

6 Opdrachtomschrijving ........................................................................................................................... 10

6.1 Huidige situatie ............................................................................................................................. 10

6.2 Toekomstgerichte oplossingen ..................................................................................................... 10

6.3 Out-side problemen met de applicatie......................................................................................... 11

6.3.1 Gebruiksvriendelijkheid ............................................................................................................ 11

6.3.2 Wi-Fi verbinding ....................................................................................................................... 11

6.3.3 Downloaden van de applicatie ................................................................................................. 11

7 Context .................................................................................................................................................. 12

7.1 Specialisatie en keuze ................................................................................................................... 12

7.2 Doel van het project ..................................................................................................................... 12

7.3 Mobiele oplossing ......................................................................................................................... 12

7.4 Functionaliteiten van de applicatie .............................................................................................. 13

8 Technische Uitwerking .......................................................................................................................... 14

8.1 Aanpak .......................................................................................................................................... 14

8.2 Use-cases ...................................................................................................................................... 15

8.2.1 Use Case: Inloggen / Uitloggen ................................................................................................ 16

8.2.2 Use Case: Data downloaden ..................................................................................................... 18

8.2.3 Use Case: Vier soorten inventarisaties maken ......................................................................... 19

8.2.4 Use Case: Hoeveelheid van goederen bevestigen / veranderen. ............................................ 20

8.2.5 Use Case: Goederen scannen ................................................................................................... 21

8.2.6 Use Case: Gemaakte inventarissen opladen en feedback opgeladen inventarissen bekijken . 22

8.2.7 Use Case: on- en offline werken ............................................................................................... 23

8.3 Gebruikte technieken ................................................................................................................... 24

Page 4: BachelorProef ILIAS Solutions - Typepad

3 | P a g e

8.3.1 Vereisten voor de uitwerking van het project .......................................................................... 24

8.3.2 HTML5 ...................................................................................................................................... 25

8.3.3 CSS3 .......................................................................................................................................... 26

8.3.4 JavaScript .................................................................................................................................. 26

8.3.5 jQuery ....................................................................................................................................... 27

8.3.6 jQuery Mobile ........................................................................................................................... 27

8.3.7 XML ........................................................................................................................................... 28

8.3.8 AJAX .......................................................................................................................................... 28

8.3.9 SQLite ....................................................................................................................................... 29

8.3.10 Phonegap.............................................................................................................................. 30

8.4 Ontwikkelde ICT oplossing - Stock inventory Application ............................................................ 35

8.5 Ontwikkelde functionaliteiten ...................................................................................................... 35

8.6 Prototype ...................................................................................................................................... 37

9 Planning ................................................................................................................................................ 50

9.1 Technical planning ........................................................................................................................ 50

9.2 Practical planning ......................................................................................................................... 50

10 Kritische SWOT analyse van het resultaat ............................................................................................ 51

10.1 Strengths ....................................................................................................................................... 51

10.2 Weaknesses .................................................................................................................................. 52

10.3 Oportunities .................................................................................................................................. 53

10.4 Threats .......................................................................................................................................... 53

11 Persoonlijk ontwikkelingsplan .............................................................................................................. 54

11.1 Algemene competenties (niet-IT) ................................................................................................. 55

11.2 ICT-specifieke competenties......................................................................................................... 56

11.3 Algemene feedback van de stagementor ..................................................................................... 58

12 Slotwoord .............................................................................................................................................. 59

13 Bijlagen .................................................................................................................................................. 60

13.1 Weekverslagen ............................................................................................................................. 60

13.2 Manual “Manage Stock Inventory Application” ........................................................................... 64

13.3 Curriculum Vitae ........................................................................................................................... 76

13.4 Presentatie Bachelorproef ............................................................................................................ 78

13.5 Code Samples ............................................................................................................................... 87

13.6 Bronnen ........................................................................................................................................ 93

Page 5: BachelorProef ILIAS Solutions - Typepad

4 | P a g e

3 Inleiding

Aan het begin van dit schooljaar (2013-2014) kregen we de opdracht een IT-project op te stellen. Het IT-

project hield in dat men een project zou analyseren (eerste semester) en implementeren (tweede

semester).

In het eerste semester kregen we de mogelijkheid zelf een project te kiezen. We gingen op zoek naar een

project waarin we de mogelijkheid kregen een mobiele applicatie te ontwikkelen. Dit onderwerp sprak ons

meteen aan omdat we ervan uitgaan dat mobiele applicaties een enorme groei ondergaan en dus

toekomstgericht zijn. Uit de vele projectmogelijkheden kwamen we al snel terecht bij ILIAS Solutions die

ons een project voorstelden. Dit project was de ontwikkeling van een mobiele applicatie voor de Belgische

defensie. We maakten al snel een afspraak om dit project te bespreken. Na het bespreken ervan begonnen

we met de hele business kant van het project. We creëerden een PID, business analyse, technische analyse,

een prototype en nog verschillende andere documenten.

Eens het eerste semester was afgelopen creëerden we een paper over alle analyses die in het eerste

semester gedaan werden. Door deze analyses was het voor ons mogelijk in het tweede semester meteen

te beginnen aan ons IT-project. Voor dit project tot een goed eind te krijgen kregen we zowel technische

als business hulp. Met deze basis en hulp konden we startten aan de creatie van de applicatie.

De applicatie die we kozen was een applicatie die zou dienen om de inventarisatie in magazijnen van de

Belgische defensie te vergemakkelijken.

U kan meer informatie vinden over ILIAS Solutions, een opdrachtomschrijving, de uitwerking en de

bedoeling van de applicatie, een SWOT analyse van het resultaat en een persoonlijk ontwikkelingsplan

tijdens deze stage in deze paper.

Page 6: BachelorProef ILIAS Solutions - Typepad

5 | P a g e

4 Acroniemenlijst

ISO 9001 International Organization for Standardization

NAVO Noord-Atlantische VerdragsOrganisatie

COTS Commercial-Off-The-Shelf

FACh Fuerza Aerea de Chile

ABNL Admiraliteit BENELUX

PPPIOO Prepare – Plan – Design – Implement – Operate – Optimize

HTML HyperText Markup Language

CSS Cascading Style Sheets

AJAX Asynchroon JavaScript en XML

XML eXtended Markup Language

REST Representational state transfer

DOM Document Object Model

SDK Software development kit

VPN Virtual Private Network

JS JavaScript

SWOT Strengths – Weaknesses – Opportunities – Threats

PID Project Initiation Document

Page 7: BachelorProef ILIAS Solutions - Typepad

6 | P a g e

5 Organisatiebeschrijving

5.1 ILIAS Solutions ILIAS Solutions is een bedrijf dat gespecialiseerd is in informatie management oplossingen voor defensie-

en humanitaire operaties te ondersteunen. Hun software platformen zijn gericht op het optimaliseren van

de operationele gereedheid en zijn gebaseerd op het beheren van de middelen die nodig zijn voor deze

operaties.

Om hun klanten te voorzien van oplossingen die zijn afgestemd op hun specifieke behoeften bestaat ILIAS

Solutions uit een effectief team van deskundigen in de ontwikkeling, implementatie en onderhoud van

software systemen. Het ILIAS team kan u voorzien van een breed scala van vaardigheden, variërend van

business analyse, procesverbetering en project management om software te ontwikkelen, testen,

opleiding, onderhoud, helpdesk-diensten, en nog veel meer.

ILIAS Solutions is ISO 9001 gecertificeerd voor alle activiteiten die verband houden met de ontwikkeling,

levering en onderhoud van IT-oplossingen voor vermogensbeheer.

5.2 Ligging ILIAS Solutions is een Belgisch bedrijf gelegen te Brussel in Haren. Dicht bij het centrum van de Europese

Unie en het hoofdkwartier van de NAVO (de Noord-Atlantische VerdragsOrganisatie).

Page 8: BachelorProef ILIAS Solutions - Typepad

7 | P a g e

5.3 Geschiedenis en huidige situatie ILIAS Solutions is ontstaan in 1997 en was oorspronkelijk een project voor de Belgische Luchtmacht. De

Belgische Luchtmacht had nood aan aanzienlijke verbetering in beschikbaarheid van vliegtuigen, en

tegelijkertijd, om ondersteuningskosten te verminderen.

Origineel heeft ILIAS Solutions vooral moeten zorgen voor het beheren van het onderhoud van F-16

vliegtuigen en andere Belgische schepen. Dit project werd ondersteund over de voorbijen jaren door

Coopers & Lybrand (PrinceWaterhouseCoopers en IBM Consulting).

Vanaf 2006 is ILIAS Solutions een onafhankelijke Belgische dienstverlener geworden voor particuliere

klanten.

Ze bouwen, implementeren en beheren (COTS) informatiesystemen voor de Belgische defensie.

Naast de Belgische defensie werkt ILIAS Solutions nu ook voor Fuerza Aerea de Chile (FACh), of met andere

woorden, de Chileense Luchtmacht.

ILIAS Solutions heeft alle functionaliteiten geïmplementeerd voor het onderhouden van de 46 F-16

vliegtuigen die de Antofagasta en Iquique Air Force Bases van Chili beschikt.

De Chileense Luchtmacht is ILIAS’ hulp langzamerhand aan het uitbreiden over heel hun luchtmacht. Ten

laatste werkt ILIAS Solutions voor het Admiraliteit BENELUX (ABNL) voor het onderhouden van Hollandse

en Belgische Marinecomponenten.

Bron: ILIAS Solutions, http://www.ilias-solutions.com [10/06/2014]

Page 9: BachelorProef ILIAS Solutions - Typepad

8 | P a g e

5.4 Producten ILIAS Solutions werkte in zijn 17-jarige bestaan al verschillende producten uit. Onderstaand vindt u een lijst

met alle producten die ILIAS Solutions reeds ontwikkelt heeft.

1) Een Oracle platform. Met dit platform kan defensie;

Operaties organiseren

Plannen van een militaire operatie.

beheren van de vluchtmacht

beheren van de inzet en transport van troepen

Beheren van militair materiaal

Het beheren van militair materiaal kan men zien als het beheren van de magazijnen en de

daar bijhorende stock. Dit is de sector waarin onze bachelorproef wordt gemaakt.

Beheren van het personeel

Ze ontwikkelden een Human Resources Management (HRM) systeem voor het beheren

van personeel. Door dit systeem kan men weten wie waar en wanneer werkt.

Beheren van budgetten

Dit systeem werd ontwikkeld omdat militair materiaal veel geld kost. Het is dus belangrijk

dat ze aan de hand van een systeem tot op het kleinste detail hun budgetten kunnen

beheren.

2) Zowel desktop als mobiele applicaties.

Military Flight Scheduling Live kunnen zien welke vliegtuigen beschikbaar zijn en op missie zijn.

Holistic Vehicle Fleet Management Het beheren van land voertuigen (technisch gedeelte).

Small Arms & Ammunition Zal de mogelijkheid geven om een overzicht te krijgen van hun beschikbare stock aan

wapens en munitie. Ilias Solutions maakt gebruik van oracle, sql en redhat technologie voor het uitvoeren van hun diverse taken.

Bron: ILIAS Solutions, http://www.ilias-solutions.com [10/06/2014]

Page 10: BachelorProef ILIAS Solutions - Typepad

9 | P a g e

5.5 Partners ILIAS Solutions is actief in een netwerk van gespecialiseerde en complementaire partner bedrijven. Ze

werken samen met bedrijven zoals;

EDGE UK

Human Resources

EDGE Innovation Network

Networking

Corena

Producten voor het beheren van documentatie voor complexe apparatuur

Daedalus

One-stop-shop voor diensten voor de militaire luchtvaart

Oracle

Database technology

Visionwaves

Oplossingen voor het beheren van bedrijven

EPICOS

De enige dienstverlener die intelligentie, overheidsaanbestedingen, Defense en High-

Tech Industry markten integreert.

Bron: ILIAS Solutions, http://www.ilias-solutions.com [10/06/2014]

Page 11: BachelorProef ILIAS Solutions - Typepad

10 | P a g e

6 Opdrachtomschrijving

6.1 Huidige situatie Momenteel gebruikt de Belgische Defensie verouderde methoden voor het maken van inventarissen.

Deze verouderde technologie is een technologie die ILIAS Solutions jaren geleden ontwikkelt heeft en nog

steeds gebruikt. Daarom zijn ze zelf begonnen met het bedenken en ontwikkelen van vernieuwende

mogelijkheden om de taken van magazijniers te vergemakkelijken en te versnellen.

Magazijniers werken tot op de dag van vandaag met computer, pen en papier. Ze moeten telkens eerst hun

soort inventaris kiezen op de computer. Wanneer ze

gekozen hebben welke inventaris ze gaan doen moeten

ze een lijst laten afprinten waarop alle, te inventariseren,

producten te vinden zijn. Eens deze lijst is afgeprint gaan

ze al deze producten opzoeken om er op de lijst de

hoeveelheid bij te schrijven. Nadat ze alle producten hebben

overlopen gaan ze terug naar de computer om al deze

waarden manueel in te voegen. Bij dit proces krijgt de

gebruiker pas te weten of de hoeveelheid in de stock correct is wanneer ze bij de laatste stap, op computer,

de waarden ingeven. Dit proces kan een heel pak versneld en vergemakkelijkt worden door gebruik te

maken van vernieuwende en toekomstgerichte oplossingen.

6.2 Toekomstgerichte oplossingen De Belgische Defensie zou graag gebruik willen maken van nieuwere technologieën. Het huidige proces

vraagt veel werk, verbruikt enorm veel papier en is daarom aan vernieuwing toe.

De oplossing die ILIAS Solutions ontwikkelt is een oplossing met

een barcode scanner. Hierdoor kan de magazijnier een barcode

scannen en meteen de waarde van invoegen. Eens ze al hun

producten gescand hebben verbinden ze met de computer

waarop alle waarden automatisch ingevuld worden.

Magazijniers verliezen hierdoor de tijd niet die ze anders zouden

besteden aan het manueel invoeren van de waargenomen

waarden.

Het probleem is dat sommige stocks over geen barcodes beschikken op alle producten waardoor dit

systeem niet in alle warenhuizen gebruikt kan worden.

Een nog vernieuwende en betere oplossing voor dit systeem is een mobiele applicatie. Er werd ons gevraagd

om een mobiele applicatie te ontwerpen om al deze taken te kunnen uitvoeren.

Page 12: BachelorProef ILIAS Solutions - Typepad

11 | P a g e

6.3 Out-side problemen met de applicatie

6.3.1 Gebruiksvriendelijkheid Bij het opmaken van het project hebben we enkele problemen ondervonden die we zouden hebben bij het

programmeren van onze applicatie. Een van deze problemen was uiteraard de gebruiksvriendelijkheid. Als

IT’ers beschouwen we al snel iets als gebruiksvriendelijk. Voor magazijniers is het gebruik van deze

technologie minder vanzelfsprekend. Vaak zijn magazijniers ex-soldaten die niet meer bevoegd zijn hun

taken uit te voeren waardoor ze andere taken op zich nemen. Deze mensen hebben dus vaak de kennis niet

om mobiele apparaten op de best mogelijke manier te gebruiken. We moeten dus een oplossing vinden om

ze veel mogelijk functionaliteiten te kunnen uitvoeren met een zo eenvoudig mogelijke design.

6.3.2 Wi-Fi verbinding Daarnaast kwam het probleem van de verbinding met de database ook terug. Er zijn amper enkele stocks

die over een Wi-Fi netwerk beschikken. We moeten dus een oplossing vinden om de applicatie via een

kabelverbinding te kunnen gebruiken.

6.3.3 Downloaden van de applicatie De mobiele applicatie die ontwikkeld wordt zal niet zomaar gedownload kunnen worden. We kunnen de

applicatie niet op een platforma afhankelijke store plaatsen want dan kan de applicatie door iedereen

worden gedownload. De applicatie moet dus maar voor een specifieke doelgroep beschikbaar zijn. We

moeten hiervoor een oplossing vinden die gebruiksvriendelijk en veilig genoeg is.

Page 13: BachelorProef ILIAS Solutions - Typepad

12 | P a g e

7 Context

7.1 Specialisatie en keuze Wij, Dohou Michael en Stainier Nicolas, kozen voor Software Ontwikkeling als specialisatie in het laatste

jaar van de studierichting Toegepaste Informatica.

Vermits wij de kans kregen zelf te kiezen in welk domein we ons wouden oriënteren kozen we voor het

ontwikkelen op mobiele apparaten. Dit topic was ons volkomen onbekend waardoor het voor ons de

perfecte gelegenheid was nieuwe kennis op te doen.

7.2 Doel van het project Het doel van het project is het creëren van een mobiele applicatie die aangesloten is met de database van

ILIAS Solutions.

Deze applicatie zal hoofdzakelijk gebruikt worden door magazijniers en zal dienen om de stock

inventaris te maken. Bij het starten van de applicatie zal de magazijnier een instantie van de ILIAS database

downloaden. Aan de hand van deze data zal hij verschillende soorten inventarissen kunnen maken en

uitvoeren. De inventarissen zullen dienen om de hoeveelheid van producten na te gaan. Na confirmatie

zullen deze hoeveelheden worden doorgegeven op server niveau.

Het doel van deze bachelorproef was om alle stappen van een project zelf te leren kennen en uitvoeren.

Zowel het business aspect als de technische kant komen hierbij aanbod.

Ook was het noodzakelijk ons de kant van het bedrijfsleven te leren kennen. Hoe de business kant

samenwerkt met de technische kant en hoe men contact legt, afspraken maakt en meetings creëert in het

bedrijfsleven

7.3 Mobiele oplossing De mobiele applicatie zal hoofdzakelijk moeten werken op Android maar ideaal ook op iOS en Windows

tablets. Zo geven we de kans aan de gebruiker onze applicatie totaal platform onafhankelijk te gebruiken.

Omdat er geen Wi-Fi verbinding aanwezig is in de meeste warenhuizen zou de gebruiker bij het opstarten

van de applicatie de hele databank moeten kunnen downloaden. Eens deze gedownload is kan hij deze

lokaal aanpassen en later, met een internetverbinding, opnieuw opladen op de server.

Page 14: BachelorProef ILIAS Solutions - Typepad

13 | P a g e

7.4 Functionaliteiten van de applicatie Specifiek zal de applicatie volgende functionaliteiten bevatten:

Inloggen/uitloggen

De gebruiker krijgt de mogelijkheid zich in en uit te loggen op het systeem. De

inloggegevens worden beveiligd meegegeven en gebruikers kunnen enkel aanmelden met

een geldige combinatie van gebruikersnaam en wachtwoord.

Downloaden van data

Eens de gebruiker is aangemeld zal hij de mogelijkheid krijgen data te downloaden van alle

magazijnen waarin hij/zij bevoegd is. Deze data wordt gedownload op server niveau en

wordt lokaal opgeslagen op het mobiele apparaat zodat offline werken een optie blijft.

Inventaris maken (≠ soorten).

Blind inventory

In deze vorm van inventariseren krijgt de gebruiker twee mogelijkheden. De

eerste is de mogelijkheid tot het scannen van een product. Hierin wordt nagegaan

of de gescande items overeenkomen met een product in het magazijn. De tweede

mogelijkheid bij deze vorm is het manueel ingeven van gegevens om zo hetzelfde

resultaat te bekomen.

Date Inventory

Hierin wordt geïnventariseerd gerangschikt op datum. De gebruiker kan via een

tijdslijn een datum kiezen en alle datums ouder als de aangeduide datum

inventariseren.

BinLocation Inventory

Een BinLocatie is een locatie in een magazijn. Aan de hand van deze soort

inventaris kan de gebruiker verschillende soorten inventarissen aanduiden en

deze inventariseren.

Monthly Inventory

Hierbij kan de gebruiker kiezen welke maand hij/zij wil inventariseren.

Zoekpagina

Hierbij kan men filteren op allerlei criteria en hierop zoeken in het magazijn.

Aanpassen van item hoeveelheid

Indien de hoeveelheid in de database niet overeenkomt met de waargenomen

hoeveelheid in de stock, wordt deze waarde aangepast en wordt er automatisch

een rapport gemaakt voor verder onderzoek.

Data upload

Nadat een inventarisatie gemaakt werd, zal alle gewijzigde data via een upload naar de

database terug gestuurd worden. Deze data zal dan op server-niveau nagekeken worden

volgens de hoeveelheid aanwezig in de database. Bij gewijzigde hoeveelheden zullen deze

waarden nagekeken worden vooraleer ze worden opgeslagen.

Multiplatform

De applicatie zal moeten draaien op verschillende platformen. Zowel Android als iOS zal

de applicatie moeten ondersteunen. Ook in een browser via een gewone computer.

Page 15: BachelorProef ILIAS Solutions - Typepad

14 | P a g e

8 Technische Uitwerking

8.1 Aanpak Als aanpak voor het mobiele applicatie project hebben we gebruik gemaakt van het PPPIOO model.

Dit model legt simplistisch voor wat we hebben gedaan in beide semesters van ons laatste academie

jaar.

We deelden dit model op in twee delen. Het eerste

deel is het deel dat we hebben uitgevoerd in het

eerste semester. Dit deel houdt het voorbereiden,

plannen en het ontwerpen van de

applicatie/project in.

In het tweede deel lag de focus op het

implementeren, opereren en het optimaliseren

van het project. Dit tweede deel vond plaats in het

tweede semester van dat academie jaar.

Bij het begin van de implementatie van het project keken we terug naar het eerste semester. We keken

terug wat we hadden voorbereid zodat we dit konden gebruiken om het project te starten.

We begonnen met het HTML en CSS gedeelte van de applicatie. Eerst werden alle pagina’s gemaakt zodat

we een basis hadden om op verder te werken. Ook begonnen we meteen met het PhoneGap gedeelte. Dit

gedeelte liet ons toe om de applicatie meteen op tablet te testen.

Page 16: BachelorProef ILIAS Solutions - Typepad

15 | P a g e

8.2 Use-cases Een geautoriseerde gebruiker kan:

Inloggen / Uitloggen

Data downloaden

Een menu openen / bezichtigen

Het actieve magazijn bekijken

Zijn profiel bekijken

Via vier soorten inventarisaties starten

Via een bepaald criteria producten zoeken

Goederen scannen

Hoeveelheid van goederen bevestigen / weigeren

Gemaakte inventarissen opladen

Feedback van opgeladen inventarissen bekijken

On- en offline werken

Page 17: BachelorProef ILIAS Solutions - Typepad

16 | P a g e

8.2.1 Use Case: Inloggen / Uitloggen

8.2.1.1 Beschrijving

Een gebruiker moet de mogelijkheid krijgen om in te loggen op de applicatie. Dit doet hij door zijn

gebruikersnaam en wachtwoord in te geven. Deze combinatie wordt nagekeken en er wordt duidelijk

gemaakt of deze combinatie en een verbinding met het netwerk bestaat. Eens een persoon ingelogd is,

krijgt hij de mogelijkheid zich uit te loggen om van account te verwisselen.

8.2.1.2 Analyse / ontwikkelmethode

Voor deze use case tot stand te brengen gebruikten we bij het begin statische data. Eens dit gedaan was

gebruikten we een werkelijk inlog systeem. Dit systeem verzendt de gebruikersinformatie in base64 vorm

over een beveiligde https verbinding om op server niveau na te gaan of deze gebruiker mag inloggen.

8.2.1.3 Requirements

Gebruikerscombinatie moet op server niveau bestaan.

OF

Gebruikerscombinatie bestaat al op het mobiele apparaat en heeft reeds data gedownload.

8.2.1.4 Testplan

Voor deze use case te testen gebruikten we verschillende users en keken we wat er gebeurde bij volgende

scenario’s.

1) Geautoriseerde gebruiker online

2) Niet geautoriseerde gebruiker online

3) Geautoriseerde gebruiker online – geen magazijnen toegekend

4) Geautoriseerde gebruiker offline – reeds ingelogd

5) Geautoriseerde gebruiker offline – nog niet ingelogd

6) Niet geautoriseerde gebruiker offline

8.2.1.5 Resultaat

Op vorige testen krijgen we volgende uitkomsten

1) Aangemeld

2) Niet aangemeld – inlog error

3) Aangemeld – zonder gegevens

4) Aangemeld

5) Niet aangemeld – Ongekende persoon

6) Niet aangemeld – Ongekende persoon

Page 18: BachelorProef ILIAS Solutions - Typepad

17 | P a g e

8.2.1.6 Problemen

Bij het online gedeelte van het inloggen werden geen problemen bij ontdekt. Eens de data op server niveau wordt verzonden krijgen we steeds de juiste feedback terug. Het offline gedeelte verliep wat minder vlot omdat data lokaal moest worden opgeslagen en omdat verschillende criteria moesten worden nagekeken.

Page 19: BachelorProef ILIAS Solutions - Typepad

18 | P a g e

8.2.2 Use Case: Data downloaden

8.2.2.1 Beschrijving

Een gebruiker die is ingelogd krijgt alle magazijnen op een grafische weergave weergegeven. Hierbij krijgt

hij de mogelijkheid de data van een van deze magazijnen te downloaden. De gebruiker kan dus data

downloaden van verschillende magazijnen en kan in een online modus deze data refreshen met deze van

op de ILIAS server.

8.2.2.2 Analyse / ontwikkelmethode

Voor deze use case tot stand te brengen gebruikten we bij het begin statische data. Eens dit gedaan was

gebruikten we een werkelijk download systeem. De data wordt opgehaald op server niveau en wordt lokaal

opgeslagen in een SQLite database. Dit gebeurt via een AJAX call naar een rest service die een XML file

ophaalt.

8.2.2.3 Requirements

De gebruiker moet online zijn om te kunnen downloaden of te refreshen.

8.2.2.4 Testplan

Voor deze use case te testen hebben we een gebruiker data doen downloaden met en zonder een

verbinding. Ook wanneer data aan het downloaden was en de verbinding verbroken werd hebben we

getest.

8.2.2.5 Resultaat

Data kan enkel gedownload worden wanneer de gebruiker daartoe is toegestaan. Bijkomend moet de

gebruiker een online verbinding hebben om data te mogen downloaden. In alle andere gevallen werd geen

data gedownload en werd er een error meegegeven.

8.2.2.6 Problemen

Bij het downloaden van data hebben we problemen gehad voor personen die hun verbinding verbreken.

Deze personen hadden dan maar een deel van de data, maar dit probleem werd opgelost.

Page 20: BachelorProef ILIAS Solutions - Typepad

19 | P a g e

8.2.3 Use Case: Vier soorten inventarisaties maken

8.2.3.1 Beschrijving

Een geautoriseerde gebruiker die data reeds heeft gedownload moet een inventaris kunnen starten. Dit

kan hij doen op verschillende manieren. Hij kan zelf data toevoegen of kan gedownloade data sorteren op

datum, locatie of maand.

8.2.3.2 Analyse / ontwikkelmethode

De inventarissen werden allemaal gemaakt op de reeds gedownloade data die opgeslagen werd in SQLite.

Deze inventarissen werden in de vier soorten op een andere manier geordend. Deze ordening werd gedaan

via Javascript en jQuery mobile.

Op business vlak werd de manier waarop de inventarissen werden gemaakt vaak veranderd.

8.2.3.3 Requirements

De gebruiker moet reeds data gedownload hebben om een inventarisatie te kunnen maken. Voor de blind

inventaris moet men een bestaande combinatie uit de gedownloade data ingeven.

8.2.3.4 Testplan

De inventarissen werden vaak aangepast. Daarom was het bijna steeds verplicht deze in constante lijn te

testen. We konden ze testen door inventarissen te maken zonder data, de normale gang van de inventaris

te volgen. Omgekeerd te werken door eerst van een bepaalde inventaris naar een andere te willen gaan, …

8.2.3.5 Resultaat

Alle inventarissen werken voor de volle 100%. Je kan op geen verkeerde plaatsen klikken en er is geen

mogelijkheid van problemen.

8.2.3.6 Problemen

We hadden enkele problemen bij het ontwikkelen van deze soorten inventarisaties. We creëerden steeds

wat op business vlak het meest correct leek. Dit bleek in de werkelijkheid vaak niet overeen te komen met

wat echt verwacht en nodig was om inventarissen te kunnen maken.

Page 21: BachelorProef ILIAS Solutions - Typepad

20 | P a g e

8.2.4 Use Case: Hoeveelheid van goederen bevestigen / veranderen.

8.2.4.1 Beschrijving

Eens een gebruiker een inventaris start moet het voor hem mogelijk zijn een scherm te krijgen met de

specificaties per product en hiervan de hoeveelheid meegeven. Bij sommige soorten inventarissen is het

voor de gebruiker mogelijk de reeds meegegeven hoeveelheid van een product te wijzigen of te bevestigen.

8.2.4.2 Analyse / ontwikkelmethode

Deze bevestigde hoeveelheden worden opgeslagen in een zogenaamde file. Deze file bestaat uit rijen en

kolommen en wordt opgeslagen in een lokale SQLite databank.

8.2.4.3 Requirements

De gebruiker moet om dit te kunnen bevestigen / gebruiken reeds ingelogd zijn, data hebben gedownload

en zich op de detail pagina van een item bevinden. Vervolgens is het ook verplicht een hoeveelheid mee te

geven. Zo niet kan deze niet worden opgeslagen in de database.

Je kan waarden ingeven via het toetsenbord of via een zelf gemaakt toetsenbord dat je ziet op het scherm.

8.2.4.4 Testplan

Volgende tests werden uitgevoerd om deze use case op elke manier te geldig te maken.

1) Invullen van een geheel getal

2) Invullen van een ongeldige waarde (geen getal)

3) Invullen van een kommagetal

4) Bevestigen van een gewijzigde waarde

5) Ingeven van het getal 0

6) Ingeven van extreem grote getallen

8.2.4.5 Resultaat

Volgende resultaten kwamen uit de voorbije tests

1) OK

2) Error: ongeldige waarde ingegeven

3) OK: Kommagetallen zijn hierbij toegestaan

4) OK: waarden mogen veranderd worden door de magazijnier

5) OK: Het kan zijn dat er geen producten meer zijn in het magazijn

6) Error: Er is een maximum van 99999 items per NSN.

Page 22: BachelorProef ILIAS Solutions - Typepad

21 | P a g e

8.2.5 Use Case: Goederen scannen

8.2.5.1 Beschrijving

Een gebruiker kan bij het blind inventariseren van producten goederen scannen. Hiervoor maakt hij gebruik

van de camera van zijn toestel.

8.2.5.2 Analyse / ontwikkelmethode

Voor het scannen van barcodes is een PhoneGap plugin toegevoegd. Deze werd op de verschillende

platformen toegevoegd en wordt op elk platform met Javascript code opgeroepen. Eens een product

gescand is wordt de succes functie getriggerd.

8.2.5.3 Requirements

De barcodes die gescand moeten worden moeten gekend zijn in het systeem.

Om barcodes te kunnen lezen heeft men steeds een mobiel apparaat nodig.

8.2.5.4 Testplan

Voor de barcode scanner te testen creëerden we acht verschillende soorten barcodes.

We probeerden ook niet gekende producten in te scannen.

8.2.5.5 Resultaat

De plugin om barcodes te lezen werkte voor alle soorten barcodes met uitzondering op zeer lange barcodes.

Het is mogelijk producten in te scannen die niet in de data van het systeem voorkomen maar met deze data

kan men niets doen.

8.2.5.6 Problemen

1) De juiste versie van de barcode scanner werd niet steeds gebruikt.

2) De grootte van het scherm bij het scannen van goederen was niet op alle apparaten groot

genoeg.

3) Grote barcodes zijn moeilijk te lezen.

Page 23: BachelorProef ILIAS Solutions - Typepad

22 | P a g e

8.2.6 Use Case: Gemaakte inventarissen opladen en feedback opgeladen inventarissen bekijken

8.2.6.1 Beschrijving

Een gebruiker moet de bevestigde waarden kunnen opladen op server niveau en hiervan feedback

opvragen. Zo kan een gebruiker steeds weten of de geüploade file ook op server niveau goed is afgehandeld.

8.2.6.2 Analyse / ontwikkelmethode

Voor deze use case is gebruik van een AJAX call die een GET en een POST doet naar de server. Eens de file

klaar is en de gebruiker vraagt deze op te laden worde deze file vervormd in XML stijl. De XML wordt gepost

via een AJAX call naar een rest service op server niveau waar deze wordt afgehandeld. De server stuurt dan

een id mee zodat men via dit id de feedback kan opvragen van de opgeladen file.

8.2.6.3 Requirements

Om feedback op te halen is het vereist dat deze eerst wordt opgeladen.

8.2.6.4 Testplan

1) Data dubbel opladen

2) Data opladen en kijken of de waarde in de lokale databank wordt opgeslagen

3) Data opladen en kijken of de waarde in de server databank wordt opgeslagen

8.2.6.5 Resultaat

1) Data kan niet meer dubbel worden opgeladen

2) Data wordt lokaal aangepast

3) Data wordt op server niveau aangepast

8.2.6.6 Problemen

Bij het opladen van data kregen we problemen door de compatibiliteit. De aangepaste data werd lokaal

niet aangepast maar wel op server niveau. Als je dan opnieuw deze data wou opladen was deze niet

aangepast en waren er compatibiliteitsfouten met de server.

Page 24: BachelorProef ILIAS Solutions - Typepad

23 | P a g e

8.2.7 Use Case: on- en offline werken

8.2.7.1 Beschrijving

Elke gebruiker moet de mogelijkheid hebben on en offline te werken. Zo kan de gebruiker In het magazijn

zonder internet verbinding werken en kan hij data opladen wanneer hij een verbinding heeft.

8.2.7.2 Analyse / ontwikkelmethode

Voor het nakijken als de gebruiker online of offline aan het werken is is een PhoneGap plugin toegevoegd.

Deze kan opnemen wanneer de connectie van de tablet veranderd en zal een signaal doorgeven aan de

applicatie. De applicatie zal dan reageren volgens het signaal.

8.2.7.3 Requirements

De gebruiker moet gekend zijn in het systeem.

Om offline te werken moet de gebruiker reeds ingelogd zijn geweest.

Voor een nieuwe gebruiker op een bepaald device is een internet verbinding vereist.

8.2.7.4 Testplan

Het beste manier om na te gaan als een gebruiker online of offline aan het werken is, is door een inventaris

te maken. Dit is de enige functionaliteit dat niet zal werken wanneer de gebruiker offline probeert te

werken. De gebruiker zal dus onmogelijk een inventaris kunnen opladen naar de server als hij offline aan

het werken is.

8.2.7.5 Resultaat

We hebben ervoor gezorgd dat wanneer de gebruiker offline aan het werken is, de applicatie aangepast

wordt volgens zijn connectie. Een gebruiker die voor het eerste keer probeert in te loggen zal bijvoorbeeld

niet kunnen inloggen als hij offline is. Dit wordt niet nagekeken als de applicatie weet dat de gebruiker

online aan het werken is.

8.2.7.6 Problemen

We hebben met de offline support vooral problemen gehad bij het inloggen van gebruikers. Wanneer een

gebruiker online werkt wordt dit naar de server gestuurd. De server kijkt dan na of dit correct is en zal dan

feedback geven. Bij het inloggen wanneer de gebruiker offline is moet er nagekeken worden als de

gebruiker al ooit ingelogd is geweest en indien wat hij ingevoerd heeft correct is.

Page 25: BachelorProef ILIAS Solutions - Typepad

24 | P a g e

8.3 Gebruikte technieken

8.3.1 Vereisten voor de uitwerking van het project Voor het schrijven van de code voor de applicatie gebruikten we verschillende web technologieën zoals

HTML5, CSS3, JavaScript, jQuery, jQuery Mobile, XML, AJAX, SQLite en PhoneGap. Deze kozen we omdat ze

het gemakkelijkst samen te gebruiken zijn. Ze vullen elkaar aan en we zorgden ervoor dat we geen twee

technologieën hadden voor dezelfde doeleinden. Dit om de performantie van de applicatie zo optimaal

mogelijk te houden.

Voor de uitwerking van ons project gebruikten we verschillende programma’s. Zo gebruikten we Eclipse

voor het testen van ons applicatie op Android. Door Eclipse kregen we de toegang tot de Java code van

PhoneGap. Ook gebruikten we Visual Studio voor het schijven van de code van de web applicatie. Als versie

controle systeem gebruikten we GIT. GIT is een systeem dat ons toelaat documenten online te plaatsen en

die met andere te delen. Het laat ons ook toe versie problemen op te lossen omdat we vaak met meerdere

aan dezelfde code moesten werken. Ten laatste hadden we nog enkele tools nodig om PhoneGap via de

command line te installeren zoals nodejs, …

Ook hadden we bij de uitwerking van het project hulp nodig van enkele personen. Zo hebben we een grote

business hulp gehad van Pierre Van Brussel en van Joha. Voor de technische kant kregen we een bijstand

van Dimity Van De Velde en van Luc. Luc hielp ons voor het creëren van alle REST services op server niveau.

Deze zorgden ervoor data in XML vorm van server niveau via AJAX calls op te roepen en terug te sturen.

Page 26: BachelorProef ILIAS Solutions - Typepad

25 | P a g e

8.3.2 HTML5 HTML is een taal voor het beschrijven van web paginas. Het staat voor Hyper Text Markup Language. Alle

tags die gebruikt woden binnen HTML beschrijven de inhoudvan het document. In een HTML document

gebruik je tags en text.

HTML5 is de nieuwe HTML Standaard. Deze geeft ons toegang tot verschillende nieuwe functionaliteiten

die gebruikt kunnen worden op web pagina's.

Deze functionaliteiten zijn:

Nieuwe Elementen

Nieuwe Attributen

Volledige CSS3 support

2D/3D grafieken

Lokaal opslagruimte

Lokale SQL Database

Web Applicaties

HTML geeft de gebruiker ook nieuwe multimedia functionaliteiten. Deze zorgen ervoor dat we

gemakkelijker video’s kunnen toevoegen op een web pagina (d.m.v. <video> en <audio>).

We kunnen dankzij HTML5 nu ook web applicaties maken. Deze applicaties krijgen toegang tot een lokaal

opslagruimte, lokaal toegang tot bestanden, lokaal SQL Database, Applicatie Cache, JavaScript en

XMLHttpRequest. Al deze functionaliteiten werden gebruikt in onze applicatie. We gebruikten een lokale

SQL database om alle data per user lokaal op te slaan wat de gebruiker toelaat offline te werken.

XMLHttpRequest zorgt ervoor de xml van de server te lezen zodat deze lokaal kan worden opgeslagen.

HTML5 geeft ons nieuwe elementen voor headers, footers, menu’s, secties en artikels. De HTML forms

krijgen ook extra functionaliteiten zoals nieuwe form elementen, nieuwe attributen, nieuwe input types en

automatische validatie. Al deze functionaliteiten worden gebruikt in de applicatie.

Ten laatste werkt HTML5 volledig met CSS3.

Page 27: BachelorProef ILIAS Solutions - Typepad

26 | P a g e

8.3.3 CSS3 CSS3 geeft ons verschillende variëteiten aan mogelijkheden om design te geven aan een website. CSS3 is

een vernieuwde versie van CSS. Er zijn veel veranderingen in CSS3 vergeleken met de vorige CSS versie.

CSS3 is opgedeeld in verschillende modules. Dit hebben ze gedaan omdat de vorige versie veel te breed en

te complex was om in één keer geüpdatet te worden. Ze hebben dus CSS opgedeeld in kleinere delen.

Daarbij hebben ze enkele nieuwe functionaliteiten toegevoegd.

Sommige van deze modules zijn:

Het Box Model

Lijst Modules

Hyperlink Presentatie

Speech Module

Achtergronden en randen

Tekst Effecten

Multi-Kolom Lay-out

8.3.4 JavaScript JavaScript is een programmeer/script taal die gebruikt wordt om webpagina’s dynamisch en interactief te

maken en web applicaties te ontwikkelen. Het is de taal die voor interactie tussen de website/applicatie en

de gebruiker zorgt. Javascript wordt uitgevoerd door de browser net zoals bij HTML en CSS. Belangrijk is

ook dat JavaScript een hoofdletter gevoelige taal is.

JavaScript bevat verschillende functionaliteiten die je helpen voor interactie te zorgen tussen de browser

en je gebruiker. Deze functionaliteiten zijn:

Functies maken

Event

Operators

Vergelijkingen

Programmatie mogelijkheden: if, switch, loop for, loop while, …

Error behandelen

Navigatie

In onze applicatie gebruiken we JavaScript om elementen op te roepen en hier dynamisch mee om te gaan.

Page 28: BachelorProef ILIAS Solutions - Typepad

27 | P a g e

8.3.5 jQuery JQuery is een gratis cross-browser JavaScript bibliotheek voor het creëren van dynamische en interactieve

websites, onder andere voor het bewerken van CSS en voor de interactie met de webserver (ook bekend

als AJAX).

De structuur van JQuery is zo opgebouwd dat het het maken van web applicaties vergemakkelijkt.

8.3.5.1 JQuery functies

Functies voor DOM elementen te selecteren

Functies om DOM elementen te manipuleren

Functies om CSS manipulaties uit te voeren

Ondersteuning om events te definiëren

Voor gedefinieerde effecten en animaties

Ajax ondersteuning

Uitbreidbaarheid

De mogelijkheid om herbruikbare plug-ins te maken in jQuery

8.3.6 jQuery Mobile JQuery Mobile is een aanraak geoptimaliseerd web framework die ontwikkeld wordt door het jQuery

project team. De ontwikkeling ervan focust zich op het creëren van een framework dat compatibel is met

een grote hoeveelheid smartphones en tabletten. Het jQuery mobiele framework is compatibel met andere

mobiele applicatie frameworks en platformen zoals bv PhoneGap.

8.3.6.1 JQuery Mobile uitbreidingen

Compatibel met alle bekendste mobiele platformen zo goed als met alle bekendste desktop browsers. Waaronder iOS, Android, Blackberry, WebOS, Symbian, Windows Phone en nog vele andere.

Gebouwd op basis van JQuery taal dus gemakkelijk voor de mensen die deze programmeertaal al kennen.

Framework dat thema’s ondersteunt. Onafhankelijk en licht waardoor het de snelheid optimaliseert. Automatisch schermgrootte aanpakken. HTML5-gebaseerde configuratie voor pagina’s op te maken met zo weinig mogelijk scripting. AJAX gebaseerde navigatie. UI widgets date er voor zorgen dat het touch system geoptimaliseerd wordt.

JQuery Mobile hebben we hoofdzakelijk gebruikt voor het design van ons applicatie. Dit gaf ons de

mogelijkheid om de ‘Look and Feel’ aan onze website te geven van een echte mobiele applicatie. Alle CSS

code is op voorhand geschreven, waardoor wij amper kleine veranderingen moesten brengen aan het

design van onze website.

Page 29: BachelorProef ILIAS Solutions - Typepad

28 | P a g e

8.3.7 XML XML (of eXtended Markup Language) wordt in onze applicatie gebruikt om data te krijgen en te sturen naar

de ILIAS Solutions Rest Service. Alle data die we krijgen van de server wordt automatisch omgezet in xml-

formaat. Op onze applicatie gaan we deze xml-files verwerken en opslaan. Nadat data gewijzigd wordt gaan

we deze terug in xml-formaat zetten en zo doorsturen naar de server. Uiteindelijk zal de server dit ook

verwerken en in de database zetten.

8.3.8 AJAX Ajax staat voor Asynchroon JavaScript and XML. Het is een techniek om snel dynamische web pagina’s te

maken. Dit geeft ons de mogelijkheid om web pagina’s asynchroon up te daten door kleine hoeveelheden

data te uit te wisselen in het achtergrond. Dit wil zeggen dat we kleine delen van een pagina kunnen

updaten zonder de hele pagina te herladen. Een klassieke web pagina (dat geen ajax gebruikt) zou volledig

moeten herladen om nieuwe inhoud te kunnen tonen.

8.3.8.1 Hoe werkt AJAX?

Er gebeurt een bepaalde evenement in onze browser -> We maken een XMLHttpRequest object -> We

sturen de HttpRequest -> Dit gaat door het internet naar de server -> De server gaat de HttpRequest

bewerken -> Er wordt een antwoord gemaakt en deze wordt terug gestuurd naar onze browser -> Opnieuw

via het internet gaat ons antwoord van server naar browser -> De gestuurde data wordt door het browser

verwerkt d.m.v. JavaScript -> De inhoud van de pagina wordt geüpdatet

Ajax kan XMLHttpRequests maken om data uit te wisselen met de server, JavaScript/DOM gebruiken om

informatie te updaten en tonen, CSS om deze informatie een mooie lay-out te geven en XML gebruiken als

formaat voor onze data.

Ajax calls worden in de applicatie gebruikt om met de server te communiceren. Wanneer data gekregen of

doorgestuurd wordt naar de server gebeurt dit met een ajax call. Ajax calls kunnen in drie vormen

voorkomen: als GET, PUT of POST. Get ajax calls worden gebruikt om data aan de server te vragen. Bij een

PUT gaat de applicatie data doorsturen naar de server. Een post ajax call gaat eerst data doorsturen naar

de server, en in ruil krijgt het data terug.

Een voorbeeld van een ajax call:

$.ajax({ type: GET/PUT/POST, url: <url>, dataType: <type data dat wordt doorgestuurd>, success: function(data) { <Data is wat er door de server doorgestuurd wordt> Hier wordt er een functie uitgevoerd als de ajax call goed verlopen is. }, error: function(responseData) { Indien iets fout loopt wordt deze functie opgeroepen. } });

Page 30: BachelorProef ILIAS Solutions - Typepad

29 | P a g e

8.3.9 SQLite De nieuwe Web SQL Database functionaliteit op HTML

geeft toegang tot een SQLite database om data lokaal op te

slagen op een web browser. Dit gaf ons de mogelijkheid om

data van de server op te vragen en met exact dezelfde

structuur lokaal op te slaan op een SQLite database. Op

deze manier kan een gebruiker offline op onze applicatie

werken met de data die hij lokaal heeft gedownload.

Voor SQLite datamanipulatie bestaan er in JavaScript niet zo veel functies. We hebben voor onze applicatie

niet meer dan 3 functies nodig gehad:

1. OpenDatabase

a. Een database aanmaken (indien het al bestaat, openen)

b. Window.openDatabase(<naam database>,<versie sqlite>,<beschrijving>,<volume in

bytes>)

c. Voorbeeld:

var db = window.openDatabase(“TestDatabase”,”1.0”,”Een test database”,10000)

2. Transaction

a. Een transactie starten met SQL commands

b. Db.transaction(<sql command>,<error functie>,<success functie>);

c. Voorbeeld:

db.transaction(selectAllUsers,errorDB,addUsersToList);

3. ExecuteSQL

a. SQL commands om met de database te communiceren

b. Tx.executeSql(<sql command>, [<parameters>]);

c. Voorbeeld:

tx.executeSql(“INSERT INTO tblTest(testRij) VALUES (?)”,[testWaarde]);

In executeSQL zullen alle SQL commando’s komen die we gaan gebruiken. Deze zijn alle SQL commando’s

die we gebruikt hebben in onze applicatie:

CREATE IF NOT EXIST

INSERT

UPDATE

DELETE

SELECT

Page 31: BachelorProef ILIAS Solutions - Typepad

30 | P a g e

8.3.10 Phonegap PhoneGap is een open source framework voor het snel ontwikkelen van multi-

platform mobiele applicaties te bouwen met JavaScript, HTML5 en CSS3. Met

andere woorden geeft PhoneGap de mogelijkheid om één applicatie te maken dat

op ieder platform kan draaien (iOS, Android, Windows, BlackBerry, …).

Oorspronkelijk moet een developer bij het programmeren van een mobiele applicatie code schrijven voor

elk platform apart. Elk platform heeft zijn eigen programmeertaal en logica waardoor de developer een

applicatie moet maken voor bv: Android, iOS en Windows. Android applicaties worden met Java

geprogrammeerd, iOS applicaties met Objective C en Windows met C#. Dit wil dus zeggen dat het 3x zo veel

werk vereist voor eenzelfde applicatie.

Met PhoneGap is het mogelijk om mobiele applicaties overal te laten werken. PhoneGap applicaties zijn

native applicaties waarop een web applicatie getoond wordt. Zo’n applicaties worden hybride applicaties

genoemd.

8.3.10.1 Installatie

Omdat er ons gevraagd werd om de applicatie hoofdzakelijk op Android te laten werken, hebben we

PhoneGap geconfigureerd voor Android.

PhoneGap maakt gebruik van drie onderdelen om te kunnen werken: Java, Apache Ant en Android SDK.

Java wordt gebruikt om de native applicatie te kunnen hosten. Apache Ant dient om de applicatie te kunnen

builden (aanmaken) en Android SDK zorgt voor het runnen (opstarten) op een Android Device. Daarnaast

moet NodeJS ook geïnstalleerd worden om PhoneGap te kunnen downloaden.

8.3.10.1.1 Java JDK

Eerst en vooral moet de laatste versie van Java JDK geïnstalleerd worden. Dit is mogelijk via volgende

stappen:

1. Laatste Java JDK download via url:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2. Executable file opstarten en installeren

8.3.10.1.2 Apache Ant

Om Apache Ant te installeren:

1. De laatste versie van Apache Ant (in zip) downloaden op: http://ant.apache.org/bindownload.cgi

2. Zip op een goed gekozen locatie uitpakken (belangrijk)

8.3.10.1.3 Android SDK

Zoals bij het vorige proces:

1. De laatste versie van Android SDK downloaden in zip:

http://developer.android.com/sdk/index.html?hl=sk#download

2. Zip uitpakken in dezelfde folder als Apache Ant

Page 32: BachelorProef ILIAS Solutions - Typepad

31 | P a g e

8.3.10.1.4 Node.js

Node.js zal toegang geven tot de functie npm.

1. Op http://nodejs.org/ op install klikken (zal een .msi file downloaden)

2. Node.js installeren

8.3.10.2 Environment Variables

Cordova bestaat uit verschillende commands die uitgevoerd moeten worden op de Command Prompt. Om

deze commands te kunnen toevoegen moeten de geïnstalleerde programma’s toegevoegd worden in de

Environment Variables. Om dit te doen:

1. Op start klikken

2. Rechter klik op Computer -> Properties

3. Aan de linker kant op Advanced System Settings klikken

4. Op Environment Variables klikken

Op deze pagina gaan we enkele nieuw user variabelen toevoegen:

1. Java

a. Variable Name: JAVA_HOME

b. Variable Value: <pad naar de Java JDK folder>

i. Voorbeeld: C:\Program Files\Java\jdk1.8.0_05

2. Ant

a. Variable Name: ANT_HOME

b. Variable Value: <pad naar de Apache Ant folder>

i. Voorbeeld: C:\apache-ant\apache-ant-1.9.3

3. SDK

a. Variable Name: ANDROID_HOME

b. Variable Value: <pad naar de Android SDK folder>

i. Voorbeeld: C:\adt-bundle-windows-x86-20140321\sdk

8.3.10.2.1 PATH variabele

De PATH variabele wordt door de Command Prompt gebruikt om commands terug te vinden. Hierin gaan

we onze vorige variabelen zetten samen met Node.js (npm)

Variable Name: PATH

Variable Value: <pad naar Roaming npm>; <pad naar de bin folder van JAVA_HOME>; <pad naar

de bin folder van ANT_HOME>; <pad naar de tools folder van ANDROID_HOME>; <pad naar de

platform-tools folder van ANDROID_HOME>

o Voorbeeld:

C:\Users\dohoum\AppData\Roaming\npm;%JAVA_HOME%\bin;%ANT_HOME%\bin;%AN

DROID_HOME%\tools;%ANDROID_HOME%\platform-tools

Page 33: BachelorProef ILIAS Solutions - Typepad

32 | P a g e

8.3.10.3 Cordova (PhoneGap) installatie

Nu dat alles klaar ligt kunnen we cordova installeren via de Command Prompt. Dit gebeurt via command:

npm install –g cordova

8.3.10.3.1 Commands

Eens cordova volledig geïnstalleerd is kunnen we beginnen met het creeëren van een PhoneGap project.

Dit doe je door te beginnen met volgend commando.

cordova create <naam van het project> <naam van de package>

<naam van de applicatie>

Voobeeld:

cordova create TestApplicatie com.dohoum.testApp TestApp

Eens het project gecreërd werd kunnen we beginnen aan het toevoegen van de verschillende platformen

waarop we onze applicatie willen runnen:

cordova platform add <naam van het platform>

Voorbeelden:

cordova platform add android

cordova platform add wp8

cordova platform add ios

Bijkomend kunnen ook plugins toegevoeg worden op een PhoneGap applicatie. Om een plugin toe te

voegen gebruik je het commando:

cordova plugin add <naam van de plugin>

Voorbeeld:

cordova plugin add org.apache.cordova.camera

Page 34: BachelorProef ILIAS Solutions - Typepad

33 | P a g e

Wanneer het project volledig afgewerkt is, moet de applicatie alleen nog opgestart worden op een tablet

of een emulator. Om dit te doen gebruik je volgend commando:

cordova run <naam van het platform>

Voorbeeld:

cordova run android

Indien alles goed opgestart werd zou dit scherm op het tablet tevoorschijn moeten komen.

EXTRA: Om de werkelijke applicatie te creëren (release versie) zal de gebruiker volgende commando

moeten uitvoeren:

cordova build <platform> --release

Voorbeeld:

cordova build android --release

Deze commando’s creëren een applicatie die je kan downloaden om op je device te installeren.

Page 35: BachelorProef ILIAS Solutions - Typepad

34 | P a g e

8.3.10.4 Windows bijkomend

Als je Cordova voor windows Phone wil installeren heb je de basis benodigdheden van Android nodig.

Bijkomend zal je volgende zaken nog nodig hebben.

1) Als je wil ontwikkelen voor Windows Phone 7 heb je een pc nodig die Windows 7 draait.

2) Als je wil ontwikkelen voor Windows Phone 8 heb je een pc nodig die Windos 8 draait.

Je hebt bijkomende paden nodig zoals NPM, Cordova en het JAVA pad zoals in Android.

Bijkomende paden:

- Windows SDK (download link : http://dev.windowsphone.com/en-us/downloadsdk)

- Framework link in PATH variable (download link naar

C:\Windows\Microsoft.NET\Framework\v4.0.30319)

Windows Commando’s:

- cordova platform add wp8

- cordova build wp8 --release

Zoals er een “.apk” file bestaat in Android en een “.ipa” file in iOS heb je een “.xap” file voor Windows.

Page 36: BachelorProef ILIAS Solutions - Typepad

35 | P a g e

8.4 Ontwikkelde ICT oplossing - Stock inventory Application

– Multiplatform applicatie + desktop mogelijkheid

o Onze applicatie bestaat uit een website en phonegap plugins, het is dus perfect mogelijk

om deze op een desktop te gebruiken. Enkel de plugins (barcode, splashscreen, ...) zullen

niet ondersteund worden op pc.

o Dankzij PhoneGap kunnen we een website op een applicatie tonen alsof het een native

applicatie is

– Stock producten tellen

o We hebben ervoor gezorgd dat de gebruiker op een gebruiksvriendelijke manier een

hoeveelheid kan ingeven bij het inventariseren van een product.

– Instant valideren van hoeveelheden

o Omdat onze applicatie rechtstreeks geconnecteerd is met de ILIAS Solutions Database .

– Barcode scannen mogelijkheid

o Via een PhoneGap plugin kan een gebruiker met zijn tablet barcodes scannen. Deze

gescanned barcodes geven een code terug die verwerkt wordt door de applicatie.

– Interactie met ILIAS

o Via een VPN service (Junos Pulse) is het tablet via wifi of 3G geconnecteerd op de Rest

Service van ILIAS Solutions. Dit geeft ons alle informatie door van de database die we

daarna kunnen verwerken doorheen de applicatie.

8.5 Ontwikkelde functionaliteiten

– Inlog en uitlog systeem

o Zoals op elke applicatie is een in en uitlog systeem vereist. Het inlog systeem is volledig

beveiligd zodat gevoelige informatie niet wordt vrijgegeven.

– Configuratie File

o Deze file wordt per omgeving gemaakt en zorgt voor verschillende zaken die omgeving

specifiek zijn. Zo kan de download van data tijd ingegeven worden. Data zal om de

“ingegeven aantal dagen” verwijderd worden voor een gebruiker. Ook wordt hierin de

omgeving kleur, de taal, de logout van een inactieve user en alle url’s voor de omgevingen

gespecifieerd.

– Download en upload functionaliteiten

o Data moet in de applicatie kunnen worden gedownload om deze achteraf lokaal op te

slaan en er inventarissen op te doen. Eens je inventarissen gedaan zijn moet je die data

terug kunnen opladen.

– Offline modus

o Een gebruiker kan zonder internet verbinding de hele applicatie gebruiken. Hiervoor is wel

vereist dat hij de data alvorens al eens heeft gedownload.

– Zoekfuncties in de database

o Een optie in de applicatie is om te zoeken op een bepaald zoekveld. Men kan zo bv een

product opzoeken adhv zijn binlocatie of zijn NSN nummer. Van de gevonden items kan

ook een inventaris worden gemaakt.

Page 37: BachelorProef ILIAS Solutions - Typepad

36 | P a g e

– Stock inventariseren op vier manieren

Blind Inventory

– De blinde inventaris is een inventaris die gemaakt is om producten snel te

inventariseren zonder een op voorhand gedefinieerde lijst. Bij het openen van de

pagina wordt een lege lijst weergegeven. Je krijgt dan de mogelijkheid producten toe

te voegen aan je inventaris. Deze inventarisvorm is gebaseerd op manuele input of op

gescande items. Eens je item is toegevoegd komt deze in de lijst en wordt je naar een

detail pagina van het item gestuurd.

Date Inventory

– De datum inventaris wordt gemaakt aan de hand van de datum. Bij het openen van de

pagina krijg je een slider te zien die een datum voorstelt. Deze datum is bij het openen

van de pagina, één jaar. Je krijgt na het verschuiven van de slider de kans om de

inventaris te starten. Als je de inventaris start zullen alle items in de database, die niet

werden geïnventariseerd sinds de datum van de slider, worden toegevoegd aan de

inventaris. Hierna worden deze ellementen weergegeven in de detail pagina.

BinLocation Inventory

– De binloc inventaris is een inventaris die gebaseerd is op de locatie van producten.

Deze locatie wordt een BinLoactie genoemd. Eens je op de inventaris komt krijg je

verschillende mogelijkheden. De eerste is om te filteren op de naam van een

binlocatie. Je kan dus zoeken op alle locaties waar een bepaalde combinatie in

voorkomt. De tweede mogelijkheid is om de elementen weer te geven in een lijst die

ouder zijn dan een bepaalde datum. In het midden van het scherm krijgt de gebruiker

dus een lijst weergegeven met alle binlocaties die aan al de besproken zoekcriteria

voldoen. De gebruiker kan dan ofwel een aantal items aanduiden of alle gefilterde

items inventariseren.

Regular Monthly Inventory

– De laatste invantaris is de maandelijkse inventaris. Hierbij kan men de maand kiezen

en worden alle inventarissen weergegeven die in die maand zouden gedaan moeten

worden. Eens deze maand gekozen is worden alle producten, waarvan de

inventarismaand gelijk is aan de filter, weergegeven in de lijst. De gebruiker kan dan

ofwel een aantal items aanduiden of alle gefilterde items inventariseren.

Details page

– De detail pagina is een pagina die wordt opgeroepen na het maken van een van de

vier soorten inventarissen. Op deze pagina worden alle gegevens van items

weergegeven. Ook krijgt men de mogelijkheid de hoeveelheid van een bepaald

element te veranderen of te bevestigen. Dit is het hoofddoel van de applicatie.

Page 38: BachelorProef ILIAS Solutions - Typepad

37 | P a g e

8.6 Prototype Hier volgen verschillende screenshot van de applicatie waarin de gebruiker de inventaris doet van een stock.

Inlogscherm

Omgeving kiezen

Gebruikersnaam, wachtwoord en omgeving ingeven en confirmeren

Page 39: BachelorProef ILIAS Solutions - Typepad

38 | P a g e

Downloadscherm

Download van de data van één magazijn

Data van meerdere magazijnen gedownload. Keuze uit deze magazijnen voor het actieve magazijn.

Page 40: BachelorProef ILIAS Solutions - Typepad

39 | P a g e

Home scherm

Menu (links)

Actieve magazijn + opties + uitlogmogelijkheid (rechts boven)

Page 41: BachelorProef ILIAS Solutions - Typepad

40 | P a g e

Profielpagina + mogelijkheid profielfoto aan te passen

Profielpagina + persoonsgegevens

Gebruikte magazijn aanpassen

Page 42: BachelorProef ILIAS Solutions - Typepad

41 | P a g e

Zoekpagina

Inventarisatie mogelijkheden

Scan pagina (‘+’ om items toe te voegen aan de inventarisratie)

Page 43: BachelorProef ILIAS Solutions - Typepad

42 | P a g e

Gegevens van item ingeven

Gegevens ingeven door te scannen

Inventaris maken per datum (slider stelt datum voor)

Page 44: BachelorProef ILIAS Solutions - Typepad

43 | P a g e

Inventaris maken van items ouder dan…

Inventaris maken van alle data

Inventaris maken per locatie (BinLocatie)

Page 45: BachelorProef ILIAS Solutions - Typepad

44 | P a g e

BinLoc inventaris filteren op data criteria

Bepaalde BinLocaties aanduiden om deze te inventariseren

Inventarisatie per maand (Macode)

Page 46: BachelorProef ILIAS Solutions - Typepad

45 | P a g e

Item details + item foto mogelijkheid + waarde ingeven mogelijkheid

Niet overeenstemmende waarde (t.o.v. ILIAS databank) voor een product ingeven

Foto nemen van een product

Page 47: BachelorProef ILIAS Solutions - Typepad

46 | P a g e

Historiek, inventarisdocumenten, pagina

Eens data gesynchroniseerd wordt er gewacht (knop uitgeschakeld)

Succesvol opgeladen file (geen fouten op server en applicatie niveau)

Page 48: BachelorProef ILIAS Solutions - Typepad

47 | P a g e

Historiekdocument uitgeschreven

Details van een item (server details i.v.m. product upload)

Eens document is opgeladen start je een nieuw document.

Page 49: BachelorProef ILIAS Solutions - Typepad

48 | P a g e

Twee succesvol-upgeloade files

Settings (Voorgrond kleur optie + data van nieuw magazijn downloaden mogelijkheid)

Donkere pagina

Page 50: BachelorProef ILIAS Solutions - Typepad

49 | P a g e

Upload pagina met donkere kleur

Uitlogscherm

Wachtscherm

Page 51: BachelorProef ILIAS Solutions - Typepad

50 | P a g e

9 Planning

9.1 Technical planning

1) HTML5 & CSS3

2) Phonegap basics

3) Jquery Mobile + Jquery

4) JavaScript functions

5) XML data storage

6) BarcodeScanner

7) SQLite storage

8) PhoneGap extended

9) AJAX Calls

9.2 Practical planning

1) Pagina’s creëeren

2) jQuery Mobile stijl gebruiken + bibliotheken downloaden

3) CSS design

4) Home pagina

5) Menu maken – JQuery Mobile styke

6) Login Pagina

7) Phonegap basis voor Android + iOS

8) XML basis data om applicatie te gebruiken

9) Blind inventory maken + JS functies ervoor

10) Barcode functies + testen

11) Viewport op mobiele apparaten

12) Andere 3 inventarissen (date, macode, binloc)

13) Data opslaan in SQLite ipv met XML

14) Profielpagina maken

15) Data ophalen van op de server en opslaan in XML (via een ajax call naar een rest service)

16) Login functie (via een ajax call naar een rest service)

17) Nieuwe file aanmalen bij het bevestigen/veranderen van producten

18) Data opladen op server niveau (via een ajax call naar een rest service)

19) Opgeladen data feedback en deze per product weergeven (via een ajax call naar een rest service)

20) PhoneGap gedeelte creëren via command line i.p.v. user interface

21) Actieve magazijn op elke pagina weergeven

22) Design afwerken

23) Multiplatform iOS add

24) Multiplatform Windows Phone add

25) Splashscreen toevoegen op pagina’s waarbij de laadtijd groot is

26) Offline support

27) Testen

28) Debuggen

29) Extra

Page 52: BachelorProef ILIAS Solutions - Typepad

51 | P a g e

10 Kritische SWOT analyse van het resultaat

10.1 Strengths Multiplatform

Een applicatie die op de drie belangrijkste mobiele platformen draait is een pluspunt voor elke klant.

Daarom is dit een sterkte van de applicatie. Elke klant die de applicatie wil gebruiken zal zijn eigen apparaat

mogen kiezen om de applicatie op te draaien. Dat deze nu mobiel of vast is, de applicatie werkt en ziet er

overal gelijk uit.

Barcode scanner

Voor gebruikers die de applicatie op een mobiel apparaat willen gebruiken is de optie van een barcode

scanner een groot pluspunt. Voor het blind inventariseren van producten kan een gebruiker producten

scannen. Eens een product gescand is kan hij kijken naar alle informatie over het product en de hoeveelheid

in stock bekijken of aanpassen. Bij dit proces geeft de barcode scanner de mogelijkheid veel tijd te winnen.

Snelle inventaris methode

Magazijniers werken op verouderde methoden. Door deze applicatie winnen ze een heleboel tijd die ze aan

andere zaken zouden kunnen besteden. Door de effectiviteit van de applicatie gebeuren inventarissen

sneller en efficiënter.

Meerdere inventaris methoden

Door de mogelijkheid meerdere soorten inventarissen te kunnen doen is het voor magazijniers een

gemakkelijkere en plezantere taak. Ze kunnen kiezen wat de manier is waarop ze willen inventariseren. Ze

kunnen een inventarislijst maken met daarin alle te inventariseren items. Deze lijst kunnen ze op creëren

op verschillende manieren die ervoor zorgen dat ze deze lijst op eigen grootte kunnen maken, afhankelijk

van de beschikbare tijd.

Zoek functies

Een magazijnier die op zoek is naar informatie over een product, locatie, referentie nummer, lot nummer,

… kan de zoekfunctie van de applicatie gebruiken. Magazijniers zijn hierdoor niet meer verplicht dit

opzoekwerk op pc te doen maar kunnen dit in het magazijn zelf doen. Ze hebben hiervoor niet eens een

data connectie nodig.

Mogelijkheid van foto’s van producten

Magazijniers zijn vaak bezig met producten waarvan ze niet weten hoe het er uit ziet. Daarom gaven wij

hun de mogelijkheid een foto te nemen van een product. Op deze manier kan een persoon bij opzoekwerk

of bij een inventaris visueel zien wat het product is.

Page 53: BachelorProef ILIAS Solutions - Typepad

52 | P a g e

Gemakkelijk gebruik en simpel design

Magazijniers zijn niet vaak de meest technologische personen. Daarom maakten wij de applicatie zo

eenvoudig mogelijk en met zo weinig mogelijk knoppen. Alle functionaliteiten werden gegoten in een zo

simpel mogelijk design.

Natuurvriendelijker

Vandaag worden inventarissen nog steeds afgeprint. Door de applicatie is papier niet meer vereist.

10.2 Weaknesses Trager dan native applicaties

Een klein negatief element van da applicatie is de snelheid van de hybride applicatie. Een hybride applicatie

communiceert niet even snel met het apparaat als een native applicatie.

VPN verbinding

Een ander nadeel of zwakte van de applicatie is het feit dat men, voor het kunnen inloggen op het systeem

en het downloaden van data, steeds moet inloggen via een VPN verbinding op het ILIAS netwerk.

Security

De beveiliging van de applicatie is niet optimaal. Aanvallen van buitenaf zijn nog steeds mogelijk waardoor

er hier nog op gewerkt moet worden. Dit was wel out of scope voor ons project.

Page 54: BachelorProef ILIAS Solutions - Typepad

53 | P a g e

10.3 Oportunities

Nieuwe technologie

Nieuwe technologie die de inventarisatie in magazijnen van de Belgische defensie vergemakkelijkt. Door

deze technologie verliezen magazijniers een hoop kostbare tijd.

10.4 Threats Gebruiksvriendelijkheid

Bij de analyse van het project hebben we enkele problemen ondervonden die op de voorgrond zouden

treden bij het programmeren van onze applicatie. Een van deze problemen was uiteraard de

gebruiksvriendelijkheid. Als IT’ers beschouwen we al snel iets als gebruiksvriendelijk. Voor magazijniers is

het gebruik van deze technologie minder vanzelfsprekend. Vaak zijn magazijniers ex-soldaten die niet meer

bevoegd zijn hun taken uit te voeren waardoor ze andere taken op zich nemen. Deze mensen hebben dus

vaak de kennis niet om mobiele apparaten op de best mogelijke manier te gebruiken. We moeten dus een

oplossing vinden om ze veel mogelijk functionaliteiten te kunnen uitvoeren met een zo eenvoudig mogelijke

design.

Wi-Fi verbinding

Daarnaast kwam het probleem van de verbinding met de database ook terug. Er zijn amper enkele stocks

die over een Wi-Fi netwerk beschikken. We moeten dus een oplossing vinden om de applicatie via een

kabelverbinding te kunnen gebruiken.

Downloaden van de applicatie

De mobiele applicatie die ontwikkeld wordt zal niet zomaar gedownload kunnen worden. We kunnen de

applicatie niet op een platform afhankelijke store plaatsen want dan kan de applicatie door iedereen

worden gedownload. De applicatie moet dus maar voor een specifieke doelgroep beschikbaar zijn. We

moeten hiervoor een oplossing vinden die gebruiksvriendelijk en veilig genoeg is.

Page 55: BachelorProef ILIAS Solutions - Typepad

54 | P a g e

11 Persoonlijk ontwikkelingsplan Het doel van de bachelor proef was van de studenten te leren werken in een professionele omgeving. Ik

leerde de manier waarop IT’ers werken in een kleine onderneming, de manier van samenhang tussen het

business gedeelte en het technische gedeelte in een bedrijf, het luisteren naar de wensen van de werkgever

en verbeterde nog een hele hoop andere competenties.

Bij het begin van de stage kregen we de mogelijkheid een aantal competenties te kiezen waaraan we ons

tijdens de stage zouden houden. Het was de bedoeling een aantal algemene competenties en een aantal

ICT specifieke competenties te kiezen en gedurende de stage in deze competenties te groeien.

Bij elk van de gekozen competenties gaven we bij het begin van de stage een score mee. Elk van deze scores

heeft zijn eigen waarde en betekenis. Door deze competenties aan het begin van de stage en aan het eind

van de stage te beoordelen kunnen we onze persoonlijke groei meten.

Legende van de scores:

0) Competentie nog niet ontwikkeld 1) Basis niveau 2) Gevorderd 3) Expert

Page 56: BachelorProef ILIAS Solutions - Typepad

55 | P a g e

11.1 Algemene competenties (niet-IT)

11.1.1 Vlot functioneren in een professionele (internationale) omgeving.

1) Uitleg

Het vlot functioneren in een professionele omgeving is een van de competenties waar ik me het meest op

wou focussen. Het is zeer belangrijk te kunnen samenwerken met collega’s en vlot te kunnen functioneren

in het bedrijfsleven. Ik gaf veel aandacht aan deze competentie want de kennis hiervan kan ik gebruiken in

mijn verdere carrière.

2) Commentaar

Volgens de stagementoren ben ik goed geïntegreerd in de bedrijfsprocessen en ervaren ze me prettig om

mee te werken.

3) Score

Tijdens deze stage evolueerde ik van score 1 naar score 2. Van een basisniveau van het functioneren in een

professionele omgeving ging ik naar een gevorderd niveau. Dit komt doordat ik deze competentie zo

belangrijk vond en omdat het voor het uitwerken van het project van groot belang was samen te werken

met alle bijhorende partijen.

11.1.2 Relaties met collega’s en opdrachtgevers 1) Uitleg

Een tweede algemene competentie die ik koos was de relatie met collega’s en opdrachtgevers

onderhouden. We zorgden er voor dat we met collega’s steeds een toffe maar professionele band

onderhielden. In de meeste gevallen liep de communicatie goed. Er zijn geen gevallen geweest van

miscommunicatie tussen ons en de opdrachtgevers. Ook hebben we hulp gevraagd aan enkele andere

collega’s. Deze hielpen ons met alle plezier en we bedankten deze personen op de correcte manier.

2) Commentaar

Door onze goede communicatie hebben we goede feedback gekregen van onze stagementoren. De

communicatie verliep steeds vlot en op professionele wijze. Ook onze meertaligheid speelde in ons

voordeel voor de relatie met onze opdrachtgevers. Tijdens de stage gaven we verschillende presentaties in

meerdere talen. Dit kwam van pas omdat klanten of collega’s ons anders niet konden verstaan.

3) Score

Voor deze competentie evolueerde ik weer van een basisniveau naar een gevorderd niveau. Relaties met

opdrachtgevers verliepen meestal wel vlot op school maar in het bedrijfsleven is dit toch wat anders. In het

bedrijfsleven moet je steeds op de voorgrond treden en zelf actie ondernemen om deze relatie te

onderhouden.

Page 57: BachelorProef ILIAS Solutions - Typepad

56 | P a g e

11.2 ICT-specifieke competenties

11.2.1 Gegevens verzamelen, opslaan en ter beschikking stellen zodat deze op een correcte en gebruiksvriendelijke manier kunnen worden opgevraagd

1) Uitleg

Bijkomend hebben we ons tijdens de stage ook gefocust op gegevens. Voor de uitwerking en de installatie

van de applicatie moesten we veel gegevens verzamelen. Zowel van internet als van de business en

technische personen kregen we een heleboel informatie die we konden gebruiken tijdens het project. We

zorgden ervoor dat deze informatie werd opgeslagen zodat zowel anderen als wij zelf deze opnieuw konden

gebruiken en raadplegen.

2) Commentaar

De uitwerking van de toepassing en de cross-platforminstallatie is zeer goed verlopen. Ook verwijzen ze

naar vorige competentie voor de commentaar over deze competentie.

3) Score

Ook bij deze competentie stegen we van een score 1 naar een gevorderde score 2.

11.2.2 Nieuwe IT-oplossingen (autonoom) uitwerken in overeenstemming met de verwachtingen van de opdrachtgever

1) Uitleg

Een grote must van dit project was het autonoom aanleren van IT-oplossingen. We kregen de kans met

twee dit project uit te voeren in programmeertalen die we nog nooit gebruikt hadden. We leerden hoe we

met verschillende programmeertalen en platformen moesten werken op zelfstandige basis.

2) Score

Voor deze competentie had ik mezelf was overschat bij de het begin van de stage. Ik gaf mezelf een

gevorderd niveau voor deze competentie omdat we dit al gedaan hadden tijdens een vorig academiejaar.

De score van de competentie is gevorderd gebleven maar toch leerde ik een hoop bij over de manier van

autonoom een project op te stellen volgens de, soms veranderende, wensen van de opdrachtgever.

Page 58: BachelorProef ILIAS Solutions - Typepad

57 | P a g e

11.2.3 Op een adequate wijze IT-oplossingen configureren, beveiligen en aanpassen zodat deze beantwoorden aan de veranderende behoeften van de organisatie

1) Uitleg

Deze competentie werd gekozen door het oplossen van IT-oplossingen zodat deze beantwoorden aan de

behoeften van de organisatie. We zorgden ervoor dat we een programma creëerden die zo gemakkelijk en

zo toepasselijk mogelijk was voor gebruikers die hier dagelijks mee moesten omgaan.

2) Commentaar

Alhoewel initieel de beveiliging niet de hoofdzaak was is dit blijkbaar toch aan de orde gekomen, vandaar

de goede score.

3) Score

Voor deze competentie ben ik verbeterd van een nog niet ontwikkelde competentie naar een gevorderd

basis niveau dat ik kan gebruiken in het verdere bedrijfsleven.

11.2.4 IT-taken kwaliteitsvol uitvoeren zodat het resultaat voldoet aan de eisen van een steeds wisselende omgeving

1) Uitleg

Een van de in de scope doeleinden van deze bachelor proef was dat de applicatie werkt op meerdere

platformen. We zorgden ervoor dat de gebruiker niet platform afhankelijk is en hij dus zelf kan kiezen op

welk apparaat hij werkt.

2) Commentaar

Het overbrengen van de applicatie naar een Android, Windows als iOS platform goed verlopen.

3) Score

Met deze competentie had ik nog geen ervaring maar door de grote behoefte hieraan in dit project heb ik

hieraan kunnen werken. Ik stijg bij deze competentie van een ongekende competentie naar een gevorderd

niveau.

Page 59: BachelorProef ILIAS Solutions - Typepad

58 | P a g e

11.3 Algemene feedback van de stagementor

Positieve feedback

+ Je bent vlot in de omgang en beschikt ook technisch over de goede ICT-kwaliteiten.

+ Je hebt zin om problemen te bestuderen en toont initiatief om deze eerst zelf op te lossen.

+ Als ICT-ontwikkelaar heb je zeker veelzijdig kwaliteiten. staan Hierin kan je zeker een loopbaan uitbouwen.

Negatieve feedback

- Je mag je best wat beter profileren (bv. iets assertiever naar voorkomen bij groepsbesprekingen). Het zou namelijk ook jouw ambitie moeten zijn om later door te groeien als projectleider zeker als je blijft functioneren in de ICT- ontwikkeleng.

Page 60: BachelorProef ILIAS Solutions - Typepad

59 | P a g e

12 Slotwoord

We kregen de kans een volledig project uit te werken. Bij dit project leerden we hoe een project van begin

tot eind ontwikkelt wordt.

In het eerste semester keken we naar de analyse van het project. De PID, de business analyse, de

technische analyse, het prototype, en er is maar één ding dat ik kan concluderen uit deze studie: Het was

een enorm leerrijke ervaring waarbij ik veel heb bijgeleerd voor mijn toekomstige carrière.

In het tweede semester hielden we ons bezig met de ontwikkeling van het project. We maakten een

volledige applicatie die gebruikt kan worden in het bedrijfsleven. Ook hierbij horen verschillende

componenten zoals het beschrijven wat je wekelijks/dagelijks doet en het presenteren van je applicatie

aan de klant. We maakten in de loop van onze stage twee presentaties: één voor aan onze collega’s uit te

leggen waarmee we bezig waren tijdens onze stage en één waarin we de applicatie presenteerden aan de

klant.

Ook was het leerrijk te ervaren hoe je een onderzoek gestructureerd aanpakt, hoe je moet rapporteren in

een project, hoe je een applicatie ontwikkelt binnen het bedrijfsleven (verschillende meetings,

rapporteren, …) en hoe je je prestaties presenteert aan je opdrachtgevers. Door deze bachelorproef heb

ik voldoende kennis kunnen opdoen om een project uit te voeren of zelf op te stellen.

Hierbij wil ik iedereen bedanken voor het lezen en de interesse die U toonde door het lezen van mijn

bachelor proef.

Page 61: BachelorProef ILIAS Solutions - Typepad

60 | P a g e

13 Bijlagen 13.1 Weekverslagen

13.1.1 Week 1 – Verslag De eerste week van de stage was een leerrijke ervaring. Het begon met de kennismaking met de hele ILIAS

ploeg. Eens we iedereen begroet hadden en kennis gemaakt hadden met hun functie startten we met het

installeren van alle nodige programma’s. Zodra dit erop zat begonnen we met het opstarten van het project

in Java, html, css, JavaScript en Jquery. Vervolgens verdeelden we de taken, Dohou Michael hield zich vooral

bezig met de html/Jquery kant terwijl ik me focuste op het deel in Java. In dit deel implementeerde ik de

barcodescanner en het nemen van foto’s op mobiele apparaten. Hierbij moest ik toch ook gebruik maken

van de html kant.

13.1.2 Week 2 – Verslag De tweede week begon met het opstellen van een TO-DO list. Hierin stond wat we moesten volbrengen

voor het einde van de week. Ik hield me vooral bezig met het maken van de scan pagina en met het oplossen

van de bijbehorende problemen. Ook maakte ik de eerste mogelijkheid voor het inventariseren van

producten, de “blind inventory”. Hierin is een lijst te zien met alle gescande producten, kan men producten

toevoegen, scannen, verwijderen en geen duplicaten krijgen. Deze week kwamen we veel problemen tegen

waardoor we veel tijd verloren. Nu deze problemen zijn opgelost kunnen we de oplossing gebruiken bij

komende onderdelen. De laatste dag van de week kregen we ook nog een snelcursus GIT, een versie

controle systeem.

13.1.3 Week 3 – Verslag In de derde week kwam het project nog wat meer tot stand. Ik hield me vooral bezig met het maken van de

inventaris per datum. Hierbij moesten we data (over eerder gebeurde inventarisaties) uit een nieuwe tabel

halen en deze weergeven in een lijst, gerangschikt op datum. Ook moest ik er voor zorgen dat het mogelijk

was te klikken op deze elementen. Vervolgens zorgde ik ervoor dat men de gegevens van items kon swipen

om zo het volgende element weergegeven te krijgen. En ten laatste heb ik er ook voor gezorgd dat de reeds

geïmplementeerde functies aangepast werden zoals onze opdrachtgever dat vroeg. Deze week was de

eerste week dat we gebruik maakten van GIT als versie controle systeem.

13.1.4 Week 4 – Verslag Tijdens de week van 2 maart hebben we ons meer gefocust op de design van de applicatie. Samen hebben

we tal van pagina’s veranderd zodat deze er professioneler zouden uitzien. Ik heb me aangezet om een

nieuwe pagina te maken voor het inventariseren van producten. Bij het maken van deze pagina, zorgde ik

voor het inventariseren per lokalisatie. Vervolgens werkte ik ook de datum inventarisatie volledig af. Ik hielp

Michael bij het maken van functionaliteiten van de scan pagina waarvoor hij een nieuwe design maakte. Op

donderdag namiddag deden Michael en ikzelf ook wat testing. De planning voor de week was volledig rond

waardoor we tijd overhadden voor het testen van alle functionaliteiten van de applicatie. Door het werken

aan hetzelfde document hebben we tot tweemaal toe compatibiliteitsproblemen gehad.

Page 62: BachelorProef ILIAS Solutions - Typepad

61 | P a g e

13.1.5 Week 5 – Verslag De vijfde week van de stage was de week waarin de eerste fase van de stage werd afrond. De week begon

met een meeting met de coaches. In deze meeting bespraken we wat al werd afgewerkt en wat nog moest

afgewerkt worden in deze eerste fase. Na de meeting bespraken we wie/wat moest doen zodat de eerste

fase kon worden afgerond. Mijn taak was het maken van twee soorten inventarissen. Ik werkte aan de

inventaris per lokalisatie en de inventaris per maand. Deze gebruikten elk een gelijkaardige soort van

werking waardoor het goed was dat ik deze twee taken op mezelf nam. Deze vijfde week telde maar drie

werkdagen, de vierde werkdag werd ingenomen door een jobbeurs op de HUB.

13.1.6 Week 6 – Verslag In de zesde week van de stage werkten we alle, reeds opgemaakte, pagina's tot in de puntjes af. Dit deden

we om op de laatste dag van deze stageweek een presentatie te geven in een warenhuis van de Belgische

defensie. Deze afspraak bij de Belgische defensie had twee doeleinden; ten eerste was het de bedoeling

een eerste indruk te krijgen van mensen die dagelijks in een warenhuis werken en ten tweede was het voor

ons de perfecte gelegenheid ons idee van een warenhuis te vergelijken met de realiteit. Ik hield me dus

vooral bezig met het afwerken van alle details in twee soorten inventarissen.

13.1.7 Week 7 – Verslag In de zevende week werkte ik aan vele verschillende kleine details/problemen. Ik begon de week met het

afwerken van alle inventarissen en hun details. Monthly inventory werd hier ook volledig afgewerkt.

Vervolgens werkte ik verder aan de design van de "inventaris keuze" pagina, aan het zoeken naar een

mogelijkheid om xml van de server te kunnen downloaden, aan het linken van de downloadpagina aan de

profielpagina, aan een extra pagina voor de selectie van het actieve warenhuis, aan het oplossen van het

logout probleem, aan het oplossen van problemen op de scan pagina en aan het linken van back buttons

naar de juiste pagina's.

13.1.8 Week 8 – Verslag De achtste week van de stage begon met een afwezigheid wegens ziekte. Ik mailde de stagebegeleider en

sprak hiermee af dat ik in de paasvakantie een dag stage zou inhalen.

Na de dag afwezigheid begon ik de rest van de week met volle moed. We werkten hard en behaalden veel

resultaat. Hiervoor maakten we een To-Do lijst aan en werkten we vervolgens één voor één de puntjes af.

Ik regelde in deze drie dagen de schaal van het scherm op verschillende tablets en ik zorgde er voor dat de

schaal automatisch aangepast wordt naar gelang het apparaat. Ook werkte ik verder aan het generaliseren

en vergemakkelijken van de code van het swipen, ik verwijderde de niet gebruikte variabelen, ik creëerde

een nieuwe inventaris pagina en de daar bijhorende functies, en ik werkte zo nog verschillende andere

details af.

De applicatie raakt stilaan rond maar we hebben nog wat werk om onze To-Do lijst volledig te kunnen

afronden.

Page 63: BachelorProef ILIAS Solutions - Typepad

62 | P a g e

13.1.9 Week 9 – Verslag De week van 7 april was een moeilijke week. We verloren één van de vier dagen door het proberen oplossen

van een probleem met ajax calls. Pas na een hele dag pair programming vonden we het resultaat.

Naast deze problemen hield ik me ook bezig met een nieuw inlogsysteem en login formulier. Dit

inlogsysteem linkte ik aan de databank van ILIAS Solutions zodat er nagekeken wordt of een gebruiker

bestaat. Hierbij worden de magazijnen van de gebruikers ook opgehaald.

Vervolgens zijn we deze week begonnen met het ontwikkelen voor iOS.

En ten laatste werkte ik nog aan de encryptie van wachtwoorden en aan het verkorten van code.

13.1.10 Week 10 – Verslag In de tiende week werkten we voornamelijk aan het afwerken van het eerste werkstuk van de stage en aan

een presentatie voor de werknemers van ILIAS Solutions. Deze presentatie moest gegeven worden om alle

werknemers duidelijk te maken waar we bij ILIAS Solutions mee bezig waren en hoe ons project een

toegevoegde waarde kon geven aan ILIAS Solutions. Vervolgens hielden we ons ook bezig met het oplossen

van verschillende fouten zodat onze applicatie volledig klaar was voor de presentatie van volgende dinsdag.

13.1.11 Week 11 – Verslag De elfde week van de stage was een korte week. De week begon op dinsdag waarbij we een presentatie

gaven aan alle ILIAS medewerkers. Deze presentatie werd gedaan in het Engels en verliep volledig als

gepland. Na de presentatie startte ik meteen met het upload gedeelte van de applicatie. Ik onderzocht hoe

we dit zouden doen en begon aan de implementatie ervan.

13.1.12 Week 12 – Verslag De twaalfde week van onze stage was de week van 1 mei. Hierdoor hadden we weer maar drie dagen om

aan ons project te werken. Ik hield me tijdens deze week vooral bezig met het upload gedeelte. Het

opmaken van bestanden en deze bij confirmatie terug opladen in het systeem. Alle functionaliteiten van

het upload gedeelte werden afgewerkt waardoor ik enkel nog de opmaak en basisfuncties voor dit gedeelte

moet maken. Ook heb ik verschillende kleine problemen opgelost in samenwerking met Michael. Ten

laatste gaf ik op het einde van de week wat uitleg en een demo over de applicatie aan onze

stagebegeleiders. Deze waren zeer enthousiast over de vooruitgang en planden een meeting op 21 mei

zodat we onze applicatie konden voorleggen aan de klant.

Page 64: BachelorProef ILIAS Solutions - Typepad

63 | P a g e

13.1.13 Week 13 – Verslag De week van 05 mei verliep vlot en efficiënt. Ten eerste werkte ik de volledige upload sectie tot in de puntjes

uit. Ook na het krijgen van feedback van de stage mentoren veranderde ik de functionaliteiten en design

uit volgens hun wensen. Vervolgens werkte ik ook aan het verkorten van de code, dit was nodig want

verschillende delen in de code konden vergemakkelijkt worden. Op woensdag deed ik opzoekwerk over een

probleem dat zich voordeed bij het testen op verschillende tablets. Hierop werd het antwoord nog niet

gevonden. Ten laatste deden we ook een "work in progress" meeting om onze vorderingen aan onze

mentoren mee te delen. In deze meeting kwamen alle nog af te werken punten aan bod.

13.1.14 Week 14 – Verslag In de week van 12 mei werkten we aan het afwerken van de applicatie. We hadden verschillende

gesprekken met de stagementoren om te bespreken hoe ver we stonden met de applicatie en wat ons nog

te doen stond. We werkten verschillende details uit om de applicatie volledig "up and running" te krijgen.

Zo werkten we aan een configuratie file om alle basis configuraties per omgeving te kunnen opslaan. Ook

werkten we aan het uitwerken van de applicatie zodat ze gedownload kon worden op verschillende

platformen. Vervolgens werkten we ook samen met een ILIAS werknemer om problemen in verband met

de rest services uit te werken. Voor de offline modus werden ook wat aanpassingen gemaakt in

verschillende delen van de applicatie. Ten laatste begon ook de testing fase waarbij ik de hele applicatie

testte om fouten op te sporen.

13.1.15 Week 15 & 16 – Verslag De laatste twee weken verliepen zeer vlot. We werkten alles tot in de puntjes uit zodat de hele stage

volledig afgewerkt was. In de 15 de week werkte ik vooral de details van de pagina's af. We werkten ook

aan de documentatie en aan een laatste presentatie die gegeven werd voor de klant, de Belgische defensie.

Alle reacties waren volledig positief en we werden door iedereen gecomplimenteerd. Zelf de grote baas

van ILIAS Solutions bedankte ons en vond onze applicatie zeer goed. Vervolgens werkte ik ook aan het

schrijven van commentaar in de code en het ontwikkelen van de applicatie voor windows tablet. De laatste

dagen van de stage hebben we de applicatie door verschillende personen laten testen. Telkens er een bug

was hebben we deze opgelost.

Page 65: BachelorProef ILIAS Solutions - Typepad

64 | P a g e

13.2 Manual “Manage Stock Inventory Application”

13.2.1 Inlogscherm De bedoeling van dit inlogscherm is zich in te loggen

in de applicatie. Hiervoor is een goede combinatie van

gebruikersnaam en wachtwoord verplicht.

Een gebruiker kan ook zijn omgeving veranderen. De

omgeving zal weergeven op welke plaats de persoon

zich bevindt. Ook de kleur van de applicatie zal

veranderen naar gelang de gekozen omgeving.

Hier volgen verschillende screenshot van de applicatie

waarin de gebruiker de inventaris doet van een stock.

Klik op “Confirm” om in te loggen of op “Exit” om de applicatie af te sluiten.

Page 66: BachelorProef ILIAS Solutions - Typepad

65 | P a g e

13.2.2 Downloadpagina De downloadpagina dient om de data van een

warenhuis te downloaden. Men kan één voor één data

downloaden van verschillende magazijnen. Dit doet

men door op de knop Download data te klikken.

Als je reeds data gedownload hebt staat de datum

weergegeven van de laatste keer dat je data

gedownload hebt. In dat geval krijg je de mogelijkheid

de data te verversen.

Als data van meerdere magazijnen gedownload is krijgt men de mogelijkheid te kiezen welk magazijn men

wilt gebruiken.

Klik op “confirm” om naar het hoofdmenu te gaan of klik op “cancel” om terug te gaan naar het inlogscherm.

Page 67: BachelorProef ILIAS Solutions - Typepad

66 | P a g e

13.2.3 Menu Eens je bent ingelogd en data is gedownload krijg je de kans verschillende zaken te doen met de applicatie.

Ten eerste krijg je de mogelijkheid te kiezen tussen vier opties. Een inventaris maken, zoeken naar een

product, je profiel bekijken en de historiek van een file te bekijken. Vervolgens kan je naar rechts swipen

om een menu tevoorschijn te laten komen. Ook kan je rechts boven een popup openen om na te gaan van

welk magazijn de data is dat ze gebruiken. Daarbij kunnen ze ook naar een settingspagina gaan en krijgen

ze de mogelijkheid uit te loggen uit het systeem.

Page 68: BachelorProef ILIAS Solutions - Typepad

67 | P a g e

13.2.4 Profielpagina 1) Persoonsgegevens nagaan

a. Voornaam

b. Achternaam

c. Taal

d. Geslacht

e. Legernummer

f. Organisatie

g. Type

h. Categorie

2) Profielfoto aanpassen

a. Klik op Edit profile picture en neem een foto met je mobiele apparaat. Deze foto wordt

opgeslagen als de profielfoto.

3) Magazijn aanpassen

Page 69: BachelorProef ILIAS Solutions - Typepad

68 | P a g e

13.2.5 Zoekpagina Zoek op een locatie, NSN nummer, Referentienummer of een Asset om producten terug te krijgen die aan

de combinatie van de zoekgegevens voldoen. De teruggevonden producten worden rechts op de pagina

weergegeven nadat men op Search geklikt heeft.

13.2.6 Inventorypagina keuze Kies uit de lijst het inventaris type je wilt doen.

Page 70: BachelorProef ILIAS Solutions - Typepad

69 | P a g e

13.2.7 Blinde inventaris Voor de blinde inventaris te maken moet je items toevoegen in de lijst. Hiervoor kan je items scannen of

manueel toevoegen. Er moeten telkens verschillende gegevens gegeven worden voordat je ze in de lijst kan

bijvoegen. Klik op het “+” teken om items te inventariseren.

Mogelijke combinaties zijn

Binloc + NSN + Lot Ref

BinLoc + NSN

Binloc + Asset

Gegevens ingeven door te scannen

Page 71: BachelorProef ILIAS Solutions - Typepad

70 | P a g e

13.2.8 Datum inventaris Voor de datum inventaris kan je de slider slepen naar rechts om de zoekresultaten groter te maken en naar

links om deze kleiner te maken. Klik op “start inventory” om alle gevonden producten die ouder zijn als de

data die de slider weergeeft te inventariseren.

Page 72: BachelorProef ILIAS Solutions - Typepad

71 | P a g e

13.2.9 Inventaris per locatie Meerdere inventaris mogelijkheden (gerangschikt per bin locatie naam)

1) Filteren op naam van de BinLocatie

2) Filteren op datum

3) Filteren op geselecteerde items. Item selecteren om deze te inventariseren.

Page 73: BachelorProef ILIAS Solutions - Typepad

72 | P a g e

13.2.10 Inventaris per maand (Macode) Meerdere inventaris mogelijkheden (gerangschikt per Macode)

1) Filteren op naam van de Macode

2) Filteren op datum

3) Filteren op geselecteerde items. Item selecteren om deze te inventariseren.

Page 74: BachelorProef ILIAS Solutions - Typepad

73 | P a g e

13.2.11 Detailpagina van een product 1) Gegevens van items weergeven

a. BinLocatie

b. NSN

c. Zone

d. Lot Ref

e. Asset

f. Descriptie

g. Naam

h. UM

i. Consumable

j. Reap Type

k. Last Price

l. Lot No

m. Repairable

n. Issue to Client

o. Loan

p. Attractive

q. Utility status

r. Cercopes No

2) Foto van een product nemen. (Klik op Edit Picture)

3) Waarde meegeven en deze confirmen

Page 75: BachelorProef ILIAS Solutions - Typepad

74 | P a g e

13.2.12 Upload pagina Klik op “Synchronize Data” om data op te laden en feedback terug te krijgen.

Kleuren geven de feedback weer. (Bol)

1) Groen: Succesvol

2) Geel: Opgeladen maar nog geen feedback

3) Wit: Nog niet opgeladen

4) Rood: Niet succesvol opgeladen / Probleem

13.2.13 Historiek file detail pagina Eens je op een file klikte uit vorige pagina kom je op de details van deze file terecht. Hierbij wordt ook een

feedback per item weergegeven. Om de feedback te lezen kan je op het info icoon klikken.

Page 76: BachelorProef ILIAS Solutions - Typepad

75 | P a g e

13.2.14 Settings pagina 1) Skin kleur aanpassen. Twee mogelijkheden, Light en Dark mogelijkheden.

2) Download nieuwe data mogelijkheid.

13.2.15 Uitlogscherm Het uitlogscherm geeft de mogelijkheid uit te loggen. Twee mogelijkheden zijn zichtbaar. “Confirm” om

echt uit te loggen, “Cancel” om niet uit te loggen.

13.2.16 Wachtscherm Op sommige momenten moet de applicatie wat laden. Daarbij wordt steeds volgend scherm getoond.

Page 77: BachelorProef ILIAS Solutions - Typepad

76 | P a g e

13.3 Curriculum Vitae

Curriculum vitae

Personal data Stainier Nicolas 32, Rue de Rebecq, 1480 Saintes (Belgium) +32 2 377 83 21 +32 495 62 14 22 [email protected] Belgian, born 04 december 1993 in Jette

Profile I am creative, dynamic and driven by an entrepreneurial spirit. I also have good

skills in coaching and communication management. Independently and in a team, I work quickly and efficiently to achieve the best possible result. By my willingness to learn, I will always keep my knowledge up

to date. So you can consider me a real added value for your business throughout my career.

Education and training

2014 – 2015

2011 – 2014

2008 – 2011

2007 – 2008

2005 – 2007

Traineeship at ILIAS Solutions ILIAS Solutions (Belgium) Main objective of the traineeship was to manage an IT-project from the start to the end. The mission was to develop a mobile, multi-platform, application to facilitate the stock inventory in military warehouses. This application was developed with PhoneGap, a hybrid application development platform. Applied Informatics Hogeschool-Universiteit Brussel (Belgium) Social and technical sciences Heilig-Hart & College (Belgium) Human sciences Sint-Niklaasinstituut (Belgium) Modern languages Sint-Niklaasinstituut (Belgium)

Computer knowledge

MS Office

Programming languages

Platforms

Networking skills

Excel, Word, Access, OneNote, Visio, Outlook, Microsoft Projects. HTML, HTML5, CSS, CSS3, JavaScript, jQuery, jQuery Mobile, AJAX, Java, C++, VB.Net, C#, .NET, MySQL, SQL, SQLite, XML, UML, ERD. Windows (Very Good), Linux (Good), Mac (Basics), PhoneGap. Cisco CCNA Discovery

Page 78: BachelorProef ILIAS Solutions - Typepad

77 | P a g e

Personal skills and competences

Languages

Hobbies

Sports

Native: Dutch, French Fluent: English Gymnastics coach (competition group - girls and competition group - trampoline ) Gymnastics, Trampoline, Fitness, Badminton, Diving, Snowboard, Volleyball.

Leisure activities – Sidelines

2009 – 2014

Gymnastics coach at gymnastics club ‘Gympie’

Page 79: BachelorProef ILIAS Solutions - Typepad

78 | P a g e

13.4 Presentatie Bachelorproef

Dohou Michael & Stainier NicolasStudent | Hogeschool-Universiteit Brussel22|04|2014 - Brussels

Confidential

Bachelor Thesis

Manage Logistic Stock Inventory on tablet

2 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion

Page 80: BachelorProef ILIAS Solutions - Typepad

79 | P a g e

3 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

Introduction

School: Hogeschool-Universiteit Brussel

Study: Applied Informatics

Specialisation: Software Development

Traineeship: ILIAS Solutions

4 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion

Page 81: BachelorProef ILIAS Solutions - Typepad

80 | P a g e

5 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

Description of the organisation| ILIAS Solutions

What: Information management solutions

Who: Team of professionals (Development, Implementation & Maintenance)

Where: Haren, 1130 Brussels

When: Started in 1997 – constant evolution until now …

6 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion

Page 82: BachelorProef ILIAS Solutions - Typepad

81 | P a g e

7 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

Mission Description

Current Situation

– PC

– Printer

– Pen & Paper

Future-Oriented Solutions– Barcode scanner application

– Mobile Stock Inventory Application

8 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

Mission Description

Mobile Stock Inventory Application

– Execute Stock counting

– Immediate validation of quantities

– Barcode Scanning possibility

– Multi-platform enabled

– Interacting with ILIAS

Page 83: BachelorProef ILIAS Solutions - Typepad

82 | P a g e

9 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion

10 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion

Page 84: BachelorProef ILIAS Solutions - Typepad

83 | P a g e

11 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

SWOT analysis of the Result | Strengths & Weaknesses

Strengths

– Multiplatform

– Barcode Scanner

– Fast Inventory Method

– Multiple Inventory Methods

– Search function

– Picture possibility

– Easy to use

Weaknesses

– Slower than native apps

– VPN Connection

– Security

12 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

SWOT analysis of the Result | Opportunities & Threats

Opportunities

– New Technology

Threats

– User friendly

– Wi-Fi connection

– Download of the application

Page 85: BachelorProef ILIAS Solutions - Typepad

84 | P a g e

13 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion

14 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

Course of the internship | Competetences

Work fluently in a professional (and international) environment

Develop new IT solutions (autonomously) in line with the expectations of the client

Perform high quality IT tasks to satisfy an ever-changingenvironment

Page 86: BachelorProef ILIAS Solutions - Typepad

85 | P a g e

15 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

Course of the internship |Course

Planning

Programming

Meetings

Presentations

16 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

IntroductionILIAS SolutionsMission DescriptionDemonstrationSWOT ResultCourse of the internshipConclusion

Page 87: BachelorProef ILIAS Solutions - Typepad

86 | P a g e

17 | 18

Bachelor Thesis |

© ILIAS Solutions Confidential

Conclusion | What’s next?

Innovative way to do inventories

Follow the market and generalise usage of mobile Technology

This project can be turned into a Framework

– To cover progressively all the tasks of the warehouse keeper

– Could be done via Wi-Fi/3G or on a asynchronous way

Dohou Michael & Stainier NicolasStudent | Hogeschool-Universiteit Brussel22|04|2014 - Brussels

Confidential

Thank You

• For the opportunity

• To the people who made this possible

Page 88: BachelorProef ILIAS Solutions - Typepad

87 | P a g e

13.5 Code Samples

13.5.1 Login_methods.js

13.5.1.1 Function choseEnvironment(xml)

Deze functie zal een xml-file laden en de gegevens van de gevraagde omgeving lokaal opslaan.

1. Lokale config.xml laden

2. Elke lijn van de xml-file lezen

3. Indien de lijn van de gevraagde omgeving gevonden is

a. ENVIRONMENT_NAME, TIMEOUT_DOWNLOAD, TIMEOUT_ACTIVITY, SKIN, LANGUAGE ,

URL_LOGIN, URL_STORES, URL_STOCK_DATA, URL_NSN_DATA, URL_DATA_POST,

URL_DATA_RESPONSE en URL_ANNOTATION worden opgeslagen in de session storage

4. Indien niet worden de default values opgeslagen

13.5.1.2 Function validateLogin()

Deze functie wordt opgeroepen wanneer er op login geklikt wordt. Het zal de ingevoerde gegevens nakijken

en sturen naar de server. Indien deze correct zijn zal de gebruiker mogen inloggen.

1. De ingevoerde gegevens worden opgenomen

2. De wachtwoord wordt geëncrypteerd

3. De functie wordt doorgestuurd naar checkUser(username, password, encryptedPw) in

login_db_methods.js

Page 89: BachelorProef ILIAS Solutions - Typepad

88 | P a g e

13.5.2 Login_db_methods.js

13.5.2.1 Function checkUser(username, password, encrypedPw)

Deze functie zal de ingevoerde gebruikersnaam en geëncrypteerde wachtwoord opnemen. Het zal dan via

een ajax POST call de gegevens naar de server doorsturen en op een antwoord wachten. Indien dit niet

mogelijk is zal het de gegevens vergelijken met wat in de lokale database zit. Indien dit niet werkt wordt er

een error bericht getoond.

1. De geselecteerde omgeving wordt opgenomen

2. De AuthenticatedUser database wordt geopend

3. Gebruikersnaam en wachtwoord worden naar de server doorgestuurd via een ajax POST

4. Indien de POST succesvol is

a. De gebruiker wordt toegevoegd in de lokale database (indien hij nog niet bestaat)

b. Een sessie wordt gemaakt met de gegevens van de gebruiker

c. De functie getWarehouses(username) wordt opgeroepen

5. Indien de POST niet succesvol is

a. Er wordt nagekeken als de gebruiker in de lokale database al bestaat

i. Indien wel wordt er een sessie gemaakt en wordt de functie

getWarehouses(username) opgeroepen

ii. Indien niet wordt er een error bericht getoond

13.5.2.2 Function getWarehouses(username)

In deze functie worden alle magazijnen opgeladen van de gebruiker en wordt de gebruiker doorgestuurd

naar de downloadpagina.

1. Een database wordt aangemaakt met de magazijnen van de gebruiker

2. Indien de magazijnen al in de lokale database zijn voor de gebruiker wordt hij doorgestuurd naar

downloadpagina

3. Indien niet worden de magazijnen gedownloadt via een ajax GET

a. Indien de ajax call succesvol is wordt de gebruiker doorgestuurd naar de downloadpagina

b. Indien niet wordt er een error bericht getoond

Page 90: BachelorProef ILIAS Solutions - Typepad

89 | P a g e

13.5.3 Db_methods.js

13.5.3.1 Function getData(warehouse)

Deze functie wordt opgeroepen wanneer op download geklikt wordt van een warehouse. Hier zal dan alle

data gedownloadt worden van de gevraagde warehouse en opgeslagen worden in een lokaal database.

1. Twee databases worden aangemaak : een voor de Stock van de warehouse en een voor iedere

NSN

2. Een ajax GET wordt uitgevoerd voor de warehouse

3. Alle data die terug gestuurd wordt wordt in de lokale databases opgeslagen

13.5.3.2 Function selectQuery(tx, select, from, clause)

Dit een dynamische functie die we gemaakt hebben om het selecteren van data te vergemakkelijken. We

hebben ervoor gezorgd dat de select query zo goed mogelijk aanpasbaar is zodat we altijd deze functie

kunnen oproepen en niet telkens een nieuwe moeten maken.

1. Er wordt eerst nagekeken naar wat er gevraagd wordt

a. Indien een ‘*’ staat (all) worden alle rijen van de gevraagde tabel geselecteerd

b. Indien niet gaan enkel de gevraagde rijen geselecteerd worden

2. Er zal dan gekeken worden welke tabel gevraagd wordt

3. Ten laatste wordt er nagekeken worden wat de conditie is (clause) van de functie

4. Wanneer dit gedaan is wordt alle data in de vorm van een multidimensionele array terug

gestuurd

Page 91: BachelorProef ILIAS Solutions - Typepad

90 | P a g e

13.5.4 Layout_methods.js

13.5.4.1 Function changeConnectionMode(connection)

Deze functie is gelinkt aan een van de plugins die we toegevoegd hebben aan PhoneGap. Wanneer de tablet

online of offline gaat wordt de applicatie aangepast.

1. Via een event wordt deze functie opgeroepen

2. Indien de connectie offline is

a. De gebruiker zal geen warehouse data mogen downloaden

b. De download button zal uitgeschakeld zijn

c. Er zal geen data opgeladen worden

3. Indien de connectie online is

a. Zal de gebruiker de applicatie kunnen gebruiken zoals het moet

13.5.4.2 Function uploadImage(type, image, nsn)

Deze functie zal een image doorsturen naar de server. De type geeft aan of het een profielfoto is of een

foto van een product. Nsn wordt hier doorgegeven als parameter indien het over een image van een nsn

gaat.

1. Er wordt nagekeken als de type over een profile image gaat of een nsn

a. Bij beide gevallen zal de url aangepast worden

2. Een ajax PUT wordt naar de server gestuurd

a. Indien deze succesvol is zal een update gemaakt worden van de image

b. Indien niet wordt er een error bericht getoond

13.5.4.3 Function on panelbeforeopen

Dit is een special geval. Deze functie hebben we gemaakt omdat we bij jQuery mobile een panel op elke

pagina apart moeten maken. Dit wilt zeggen dat we bij elke verandering alle panels moeten aanpassen. We

hebben er dus voor gezorgd dat deze panels dynamisch aangemaakt worden en maar één keer gedeclareerd

moeten worden.

1. Alle data wordt opgenomen van een variabele panelContent

2. Deze wordt gevuld in de panel

3. De huidige pagina wordt geselecteerd in de panel

4. De profile image wordt opgenomen en getoond in de panel

Page 92: BachelorProef ILIAS Solutions - Typepad

91 | P a g e

13.5.4.4 Function checkWarehouseData(username, selectedWarehouseCode, selectedWarehouse,

environment, warehouse)

Deze functie dient als een check om na te gaan als er al data van de warehouse bestaat in de lokale

database. Indien dit het geval is wordt er nagekeken als de expiry date van de data niet overschreden is.

1. Alle data wordt geselecteerd van de locale database

a. Indien dit niet terug geeft

i. Alle data zal gedelete worden (voor de zekerheid)

ii. De download button van de warehouse zal actief zijn

b. Indien er data is wordt er nagekeken als de expirydate overschreden is

i. Indien wel wordt alles gedelete en is de download button weer actief

ii. Indien niet moet de gebruiker de data niet opnieuw downloaden

13.5.4.5 Function barcodeInit()

Deze functie zal de barcode scanner opstarten en een barcode scannen. De gescande code wordt daarna

verwerkt in en de correcte veld gevuld.

1. Er wordt eerst nagekeken als de gebruiker op een tablet is (indien niet wordt er een error

getoond)

2. De gescande code wordt dan nagekeken

a. Indien de code met een (E007) begint is het een binlocation

b. (E029) een NSN

c. (90) is ook een NSN

d. (E043) is een lotreference

e. (E025) is een lotnummer

f. (E032) is een asset

g. (E081) geeft de hoeveelheid weer (dit is dus een error)

13.5.4.6 Function addItem()

Deze functie al alle velden opnemen van de blind inventory en zal dan voor de ingevoegde product zoeken.

Indien deze gevonden is worden de details daarvan weergegeven. Indien niet wordt er een error getoond.

1. Alle waarden worden in een variabele gevuld

2. Indien er genoeg informative is wordt er een select uitgevoerd

a. Indien de select iets terug geeft wordt de gebruiker doorgestuurd naar de details van de

item

b. Indien niet wordt een error getoond

3. Indien niet wordt een error getoond

Page 93: BachelorProef ILIAS Solutions - Typepad

92 | P a g e

13.5.4.7 Function checkQuantity()

Deze functie zal de ingevoerde waarde nakijken. Indien deze overeenkomt met de database wordt er

weergegeven dat de hoeveelheid correct is. Indien deze niet overeenkomt wordt er gevraagd of de

gebruiker zeker is van de ingevoerde waarde.

1. De ingevoerde waarde wordt in een variabele gevuld.

2. De waarde die in de database staat wordt geselecteerd en ook in een variabele gevuld.

3. Indien deze twee waarden overeenkomen wordt de waarde bevestigd

4. Indien niet krijgt de gebruiker twee keuzes

a. Hij kan de hoeveelheid nakijken en als deze wel correct was zijn hoeveelheid kiezen en

bevestigen

b. Als de ingevoerde waarde niet correct was en wat er in de database zit wel correct was

de database waarde kiezen

13.5.4.8 Function uploadData()

Deze functie zal alle geinventariseerde items opladen naar de server via een ajax call. Deze worden eerst

uit de lokale database opgenomen en in een xml-file gevuld. Wanneer dit gedaan is zal er een functie

opgeroepen worden om de response van de server te vragen.

1. Alle data van tabel exportData wordt geselecteerd en in een variabele gezet (in de vorm van xml).

2. Deze variabele wordt omgevormd naar xml

3. Een ajax POST wordt naar de server gestuurd

a. Indien deze succesvol is

i. Wordt er een update gemaakt van de inventory date op de lokale database

ii. Wordt de upload button uitgeschakeld

iii. Wordt de status veranderd (bol wordt geel)

iv. Wordt er aan de server gevraagd voor een response

b. Indien niet zal er een error getoond worden

Page 94: BachelorProef ILIAS Solutions - Typepad

93 | P a g e

13.6 Bronnen

ILIAS Solutions

o www.ilias-solutions.com

HTML5

o http://www.w3schools.com/html/html5_intro.asp

o http://en.wikipedia.org/wiki/HTML5

o http://nl.wikipedia.org/wiki/HTML5

o http://www.html5rocks.com/en/

CSS3

o http://www.css3generator.com

o www.w3schools.com/css/css3_intro.asp

o www.css3.info

o http://www.en.wikipedia.org/wiki/Cascading_Style_Sheets

o http://www.css3.com

JavaScript

o www.w3schools.com/js/DEFAULT.asp

o en.wikipedia.org/wiki/JavaScript

o https://developer.mozilla.org/en/docs/Web/JavaScript

o http://www.webteacher.com/javascript/

JQuery

o http://jquery.com/

o http://en.wikipedia.org/wiki/JQuery

o http://jqueryui.com/

o http://www.w3schools.com/jquery/

JQuery Mobile

o http://jquerymobile.com/

o http://www.w3schools.com/jquerymobile/

o http://www.w3schools.com/jquerymobile/

XML

o http://en.wikipedia.org/wiki/XML

o http://en.wikipedia.org/wiki/XML

o http://www.w3schools.com/xml/xml_whatis.asp

o http://www.w3.org/XML/

AJAX

o http://api.jquery.com/j

o http://www.w3schools.com/ajax/default.ASP

SQLite

o http://www.sqlite.org/

o http://www.sqlite.org/docs.html

o http://www.sqlite.org/docs.html

o http://nl.wikipedia.org/wiki/SQLite

Page 95: BachelorProef ILIAS Solutions - Typepad

94 | P a g e

Phonegap

o http://phonegap.com/

o http://phonegap.com/about/

o http://phonegap.com/about/feature/

o http://phonegap.com/install/