Internship project: Checkin-app

36
Thinline BVBA 2012-2013 Jesse Dobbelaere Gamificatie op de werkvloer met CHECK-IN WEBAPP

description

My internship project in the final year of my ICT studies at KAHO in Ghent, Belgium. A time-tracking webapp with additional hardware (Raspberry pi with NFC cards).

Transcript of Internship project: Checkin-app

Page 1: Internship project: Checkin-app

Thinline BVBA • 2012-2013 • Jesse Dobbelaere

Gamificatie op de werkvloer met

CHECK-IN WEBAPP

Page 2: Internship project: Checkin-app

2

Goedemiddag, mijn naam is Jesse

@jessedobbelaere

Page 3: Internship project: Checkin-app

3

STAGE OVERZICHTPeriode: 11/02/2013 tot 24/05/2013

Stagebegeleider: Van Damme Bram(us)

Stagementor: Van Snick Jo

Stageplaats: Thinline BVBA

Slachthuisstraat 2

9000 Gent

Page 4: Internship project: Checkin-app

INHOUDBedrijf

Stageopdracht

Voorstudie

Uitwerking- Webapplicatie- Hardware

Besluit

4

Page 5: Internship project: Checkin-app

BEDRIJF

5

Page 6: Internship project: Checkin-app

BEDRIJFThinline BVBA in Gent- Jo Van Snick, Renaat Vervaeke, Frederik De Paepe

- Websites, webapplicaties (!), webshops, ...

6

Page 7: Internship project: Checkin-app

BEDRIJFProducten van Thinline:- Creem & Creem CMS- ShopInABox- Motool - ...

Functie in het bedrijf: front-end developer

7

Page 8: Internship project: Checkin-app

STAGEOPDRACHT

8

Page 9: Internship project: Checkin-app

9

Work is hard. Distractions are plentiful. And time is short.— Adam Hochschild, journalist & auteur

“”

Page 10: Internship project: Checkin-app

10

STAGEOPDRACHT: WAT?Geen strikt werkschema

Nood aan bijhouden van gepresteerde werkuren

“In- en uitchecken” principe

Hardware + webapplicatie nodig- PHP webapplicatie met MySQL database- Microcontroller met RFID/NFC lezer en LCD

Page 11: Internship project: Checkin-app

STAGEOPDRACHT: GAMIFICATIEGamificatie = Concepten rond gamedesign integreren in omgeving die niets met games te maken hebben.

Enthousiasme opwekken

Badges als beloning

Score’s berekenen als indicator

Statistieken

11

Page 12: Internship project: Checkin-app

VOORSTUDIE

12

Page 13: Internship project: Checkin-app

SILEX

13

PHP micro-framework

Gebaseerd op Symfony2 componenten

Beknopt maar krachtig, veilig, uitbreidbaar

Pimple = dependency injection container

Composer = dependency manager

Providers toevoegen- Twig, Doctrine DBAL, repositories,

forms, validator, monolog, ...

Page 14: Internship project: Checkin-app

RASPBERRY PI

14

Page 15: Internship project: Checkin-app

RASPBERRY PISingle-board computer zo groot als credit-card.

Kostprijs € 40

Waarom zo goedkoop?- SoC = System on a chip, volledige computer

op één enkele chip- Linux OS (Debian variant)- Geen accessoires!

Toepassingen: home theater systeem, desktop computer, home automation, ...

15

Page 16: Internship project: Checkin-app

RASPBERRY PIInterfacing zoals microcontroller- GPIO pinnen: invoer & uitvoer- Elektronica aansluiten (sensor, LCD,

motoren, ...)

Programmeren met Python- Hogere programmeertaal- Krachtig & snel- Grote standaardbibliotheek

16

Page 17: Internship project: Checkin-app

RFID/NFCRFID = Radio Frequency Identification- Object identificeren met radiosignalen- RFID tags met identificatiecode

NFC = Near Field Communication- Uitbreiding van RFID- Veiliger! Minder groot bereik & encryptie

17

Page 18: Internship project: Checkin-app

UITWERKING

18

Page 19: Internship project: Checkin-app

RESULTAAT

19

Check-in webapplicatie- Gepersonaliseerd dashboard (badges, score, ...)- Statusboard- Adminpanel met check-in, profiles en

exceptions manager.

Hardware- Raspberry Pi (webserver, check-in monitor)- LCD scherm en NFC/RFID controller- RFID kaart voor elke werknemer

Page 20: Internship project: Checkin-app

WEBAPPLICATIE

20

Page 21: Internship project: Checkin-app

WEBAPPLICATIE

21

Streven naar MVC- Controllers, views en repositories

Inkomende request:

REST API- bv. /api/users/{id}/checkins/{id}

Request index.php bootstrap.phpapp.php

(Routing)

Page 22: Internship project: Checkin-app

DASHBOARDBelonen met badges

Badges berekenen per check-in/dag/week/maand- CRON jobs!- Vervaldatum per badge

Statistieken- Indicatieve score- Grafische voorstelling van check-ins- Check-in info

22

Page 23: Internship project: Checkin-app

23

Page 24: Internship project: Checkin-app

24

Page 25: Internship project: Checkin-app

25

STATUSBOARDOverzicht van check-in/check-out werknemers

Live updates

Page 26: Internship project: Checkin-app

ADMIN PANELCheck-in + profiles + exceptions manager

26

Page 27: Internship project: Checkin-app

DEPLOYMENTUploaden van code via FTP

Deployment via Capistrano!- Changes ophalen via SCM (Git, SVN)- Toegang via SSH- Taken automatiseren- Rollback mogelijkheid

27

Page 28: Internship project: Checkin-app

HARDWARE

28

Page 29: Internship project: Checkin-app

RASPBERRY PI

29

Configuratie van webserver- Nginx + PHP-FPM + APC- Performant + zuinig omgaan met resources

Apache webserver Nginx + APC

4615 ms 2485 ms

4041 ms 1922 ms

3577 ms 1753 ms

4209 ms 1773 ms

4091 ms 1764 ms

Page 30: Internship project: Checkin-app

ASSEMBLAGELCD, NFC/RFID board en Pi Cobbler aansluiten

Python script programmeren- PN532 chip pollen via UART mode- Communiceren met API- Check-in registeren in systeem- LCD aansturen: info printen, backlight kleur

30

Page 31: Internship project: Checkin-app

ASSEMBLAGE

31

Page 32: Internship project: Checkin-app

BEHUIZING

32

3D model ontwerpen

Produceren met Makerbot Replicator 2- 3D printer- Biologisch afbreekbare kunststof: “PLA”- Laag per laag- Toekomst!

Page 33: Internship project: Checkin-app

33

BEHUIZING

Page 34: Internship project: Checkin-app

BESLUIT

34

Ideale vervanging van klassieke time tracking

Boeiend dankzij gameconcepten

Eenvoudig in gebruik

Page 35: Internship project: Checkin-app

35

VRAGEN?

Page 36: Internship project: Checkin-app

36

BEDANKT

Jesse Dobbelaere@jessedobbelaere

www.djss.be