Forprosjektrapport Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 2016 Pillbox Punchline Gruppe 8 André Østhagen Bye, s198607 Annika Hammervoll, s198611 Hanne Rygge, s198613
Innholdsfortegnelse 1 Presentasjon... 2 1.1 Oppdragsgiver... 2 1.2 Oppgaven... 2 2 Sammendrag... 3 3 Dagens situasjon... 3 4 Mål og rammebetingelser... 4 5 Løsninger og alternativer... 4 6 Analyse av virkninger... 5 7 Arbeids- og fremdriftsplan... 6 7.1 Arbeidsplan faser... 6 7.2 Fremdriftsplan... 7 7.3 Frister... 7 Gruppe 8 Pillbox Punchline Side 1
1 Presentasjon Oppdragsgiver: Prosjekttittel: Oppgave: Pillbox Interactive AS Pillbox Punchline Webapplikasjon og app for dagligvarebransjen Periode: Januar - Mai 2016 Gruppenummer: 8 Gruppemedlemmer: André Østhagen Bye s198607 Annika Hammervoll s198611 Hanne Rygge s198613 Talskvinne: Intern veileder: Ekstern veileder: Prosjektside: Annika Hammervoll Aiko Yamashita Alfred Bratterud +47 410 20 222 alfred@pillbox.no / alfred.bratterud@hioa.no http://student.cs.hioa.no/~s198611/bachelorprosjekt/index.html 1.1 Oppdragsgiver Pillbox Interactive AS er et lite IT-selskap som tilbyr løsninger innen utvikling, IT-drift og design. 1.2 Oppgaven Prosjektet vi skal jobbe med, Pillbox Punchline, går ut på å lage en webapplikasjon og en plattformuavhengig app som skal erstatte en eldre løsning. Pillbox Punchline er en rapporteringsløsning for dagligvarebransjen, der selgere og salgsfremmere daglig rapporterer hvor de er og hva de gjør, via SMS. Løsningen har også et webgrensesnitt der ansatte og ledere kan se besøksstatistikk, eksportere data til lønn etc. Inntil nylig har SMS vært den eneste praktiske løsningen, da de ansatte er stasjonert ut i hele landet, der dekningsforholdene på 3 og 4G har variert stort. Pillbox og kunder ønsker imidlertid nå å modernisere løsningen. Gruppe 8 Pillbox Punchline Side 2
2 Sammendrag Ved å lage en forbedret webapplikasjon og en plattformuavhengig app som skal erstatte sms-stemplinger, håper vi at oppdragsgivers kunder skal få en forenklet arbeidshverdag og at oppdragsgivers løsning skal bli enda mer ettertraktet. Vi vil lage et Web API i Node.js og Express.js som kontakter en MySQL-database, hvor både webapplikasjonen og appen vil jobbe mot dette Web API et. Stikkord er brukervennlighet, sikkerhet og kodekvalitet. Det skal være mulig for både administratorer og selgere til hver av oppdragsgivers kunder å logge seg inn på både nettstedet og appen og få opp relevant informasjon alt etter hvem det er som har logget seg inn. Stemplingen via appen vil være blant den viktigste funksjonaliteten som må på plass, og visning av statistikk vil være en viktig del både på nettstedet og i appen. 3 Dagens situasjon Pillbox har utviklet et system for stempling av ansatte i bedrifter. Systemet de bruker nå er fungerende, men de ønsker en ny løsning da det nåværende systemet er utdatert, samtidig som at smarttelefoner har blitt mye mer utbredt og dekningsforholdene rundt om i landet har forbedret seg drastisk. Den nåværende løsningen går ut på at ansatte sender inn sms er i løpet av arbeidsdagen med stemplingsinformasjon, samt et nettsted hvor de kan få oversikt over sine stemplinger og lønn ut fra disse. Administratorer for de ulike matvareprodusentene kan også logge inn på nettsiden og få opp statistikk og informasjon om ansattes stemplinger. Det skal nå lages en app som skal erstatte sms-meldingene, og nettstedet skal erstattes med et nytt og mer moderne nettsted. Appen skal brukes for å sende stemplingsinformasjon over mobilnettet, men i tilfeller hvor telefonen er offline skal det være mulig å sende sms er istedenfor. Gruppe 8 Pillbox Punchline Side 3
4 Mål og rammebetingelser Målet med dette prosjektet er å lage en forbedret og mer moderne webapplikasjon og en brukervennlig app for Punchline-kunder. Vi ønsker at kundene skal kunne begynne å bruke og teste ut den nye løsningen ved prosjektets slutt. Punkter som er viktige i utviklingen av løsningen er: Brukervennlighet og tilgjengelighet, inkludert ryddig og responsivt design Sikkerhet Kodekvalitet med tanke på videreutvikling og vedlikehold Appen som utvikles skal dessuten være plattformuavhengig og kunne installeres på Windows Phone-, ios-, og Android-enheter. Teknologier og rammeverk: HTML5 CSS3 Bootstrap JavaScript jquery AngularJS Chart.js/Angular Chart Node.js Express.js MySQL Adobe PhoneGap Adobe PhoneGap Build GitHub NetBeans og/eller Visual Studio Utviklingsmetode: Scrum eller liknende smidig metode 5 Løsninger og alternativer Via webapplikasjonen skal hver selger kunne logge seg inn og se informasjon om sine stemplinger og lønn, samt kunne eksportere sin informasjon til Excel. Administratorer skal også kunne logge inn og se informasjon om alle selgerne og deres stemplinger, samt statistikk. Via appen skal selgerne kunne registrere sin arbeidsdag gjennom stemplinger. Disse skal være enkle å fylle ut, noe som innebærer at man lett skal få tilgang til aktuelle butikknumre, og det skal være lett å se hvor man befinner seg i løypa; om man er hjemme, i en butikk eller på veien, og hva som er neste steg. Man skal også kunne registrere om man er syk, og vi ser på muligheten for å kunne sende SMS via appen hvis man ikke har internetttilgang. Det kan i tillegg være aktuelt at også administratorer kan logge inn i appen og få opp relevant informasjon. For å oppnå dette vil vi lage et RESTful Web API ved hjelp av Node.js og Express.js som både webapplikasjonen og appen vil benytte seg av. PhoneGap er et rammeverk for å utvikle plattformuavhengige apper, hvor man benytter HTML, CSS og JavaScript i apputviklingen. Vi kan dermed ta i bruk CSS-rammeverket Bootstrap for å lage en responsiv app, og vi kan bruke JavaScript for å kommunisere med Web API et vårt og ikke minst utnytte muligheter som JavaScript-bibliotek og -rammeverk (jquery, AngularJS, Chart.js) gir. I webapplikasjonen vil vi også ta i bruk disse frontend-teknologiene, noe som innebærer at det er muligheter for gjenbruk av kode. Vi vil benytte GitHub til versjonskontroll og vurderer Gruppe 8 Pillbox Punchline Side 4
NetBeans og Visual Studio til utvikling av webapplikasjonen og appen. Både NetBeans og Visual Studio har støtte for utvikling av Cordova/PhoneGap-apper og webapplikasjoner basert på Node.js og Express-rammeverket. Flere av teknologiene listet opp ovenfor har vi valgt med utgangspunkt i oppdragsgivers forslag, men vi har stått fritt til å velge det meste selv. Vi har valgt PhoneGap med utgangspunkt i at det er viktig for oppdragsgiver med en plattformuavhengig app slik at kundene ikke behøver å kreve at deres ansatte må kjøpe en bestemt mobiltelefon eller at kundene må betale for nye mobiltelefoner til ansatte. Når det gjelder Node.js og Express.js så ser dette ut til å være effektiv og høyst relevant teknologi som fungerer godt både mot webapplikasjoner og PhoneGap-apper. Vi har ikke lært Node.js og Express.js på høgskolen og tenkte derfor at det var fint å benytte sjansen i dette prosjektet. En allerede eksisterende MySQL-database vil ligge i bunn, men det kan være at vi må gjøre visse modifikasjoner på denne. Et alternativ har vært å endre databasen til MongoDB, en database som baserer seg på JSON-objekter. Vi har imidlertid valgt å holde oss til MySQL siden det er lettere å få ut statistikk fra en slik database og siden vi har bedre kjennskap til MySQL i forhold til MongoDB. Statistikk vil være en viktig del av prosjektet og vil være en del av både webapplikasjonen og appen, og Chart.js/Angular Chart ser ut til å være et godt valg her bl.a. fordi det legger opp til interaktive og responsive statistikkpresentasjoner som kan brukes både i webapplikasjonen og PhoneGap-appen. Vi håper å få testet løsningen godt og vil gjøre mye generell testing underveis i programmeringsprosessen, men av mer profesjonell testing vil vi vektlegge enhetstesting. Det vil også være viktig å få testet appen in situ underveis i utviklingsprosessen. Oppdragsgiver er dessuten opptatt av ytelsestesting så vi vil se på dette også i den grad vi får tid til det. 6 Analyse av virkninger Løsningen vi foreslår vil forbedre den allerede eksisterende løsningen slik at det blir enklere for brukere å utføre stemplinger og få bedre oversikt. Med vår moderne løsning kan også produktet bli mer ettertraktet, som er positivt for oppdragsgiver. For prosjektgruppen blir det en utfordring med ukjente teknologier som Node.js, Express.js og PhoneGap. Det er også en utfordring å jobbe på et så stort prosjekt med tanke på at vi har lite erfaring med liknende arbeid. Dette inkluderer planlegging, arbeidsfordeling og utviklingsmetodikk. Gruppe 8 Pillbox Punchline Side 5
7 Arbeids- og fremdriftsplan 7.1 Arbeidsplan faser Planlegging/design I denne fasen av prosjektet skal planleggingen skje. Her skal kravspesifikasjonen skrives ferdig, skisser skal tegnes av hvordan nettstedet og appen skal se ut, database-oversikt skal settes opp, m.m. Det skal settes opp midlertidige planer om hvordan det videre arbeidet skal skje med når og hva som skal gjøres videre, men denne planen vil jobbes med gjennom hele prosjektperioden. Forberedelser Denne fasen av prosjektet går ut på å få installert alt av programvare som trengs for å gjennomføre prosjektet, altså å sette opp utviklingsmiljøet, servere og selve databasen. Programmering I programmeringsfasen skjer selve kodingen. Her skal alt av front-end og back-end til både nettsiden og appen lages. Testing Testing skjer for å sikre et godt og effektivt system som fungerer på en god måte uten avbrytelser (minimalt med bugs). Testing av kode skal skje gjennom hele prosjektet. Tester skal bli laget og gjennomført samtidig med metodene de skal teste. Det blir også en periode hvor det meste av koden er ferdig og hvor hele systemet skal testes for å sikre at alle systemets komponenter fungerer bra sammen, noe som bl.a. innebærer at det ikke oppstår avbrytelser, at alvorlige bugs fjernes, og at systemet ikke krasjer. Dokumentasjon Dokumentasjon skal skrives gjennom hele prosjektet for å få fordelt arbeidsmengden. En prosjektdagbok skal holdes oppdatert gjennom hele prosessen. I tillegg til denne forprosjektrapporten skal det leveres en kravspesifikasjon, en midtveisrapport og en omfattende sluttrapport. Det trengs også brukerveiledninger for systemet. Gruppe 8 Pillbox Punchline Side 6
7.2 Fremdriftsplan 7.3 Frister Uke 3: Fredag 22. januar: Forprosjektrapport og arbeids- og fremdriftsplan Uke 10: Onsdag 9. mars: Midtveisrapport og -presentasjon Uke 21: Tirsdag 24. mai kl. 12.00: Endelig innlevering av prosjektet Uke 23: Mandag 6. - torsdag 9. juni: Muntlig presentasjon av prosjektet Gruppe 8 Pillbox Punchline Side 7