Forprosjektrapport

Hovedprosjekt i ingeniørfag, data, våren 2015
Oslo 19.01.2015
Gruppe 23 – Torstein Frogner, Bernt Kristoffer Helland, Vahid Khairkhah, Jonas Myren Mo
Forprosjektrapport
Presentasjon
Tittel:
Pizzaplutselig.no
Definisjon:
Pizzaplutselig er en web-applikasjon som skal lagre informasjon om diverse
ting som blir tilbydd og mulighet for bestilling. Oppdragsgiver ønsker seg
Google Analytics slik at han får en innsikt i hvordan besøkende bruker
nettsiden, hvordan de kom til nettstedet og hvordan man kan få besøkende
til å komme til komme tilbake.
Dessuten ønsker oppdragsgiver å kunne endre i nettsiden, blant annet
priser, produkter, legge til nye tilbud, nyheter og mer. I løsningen vil det bli
implementert registrering av brukere og bestillings-muligheter.
Gruppemedlemmer:
Torstein Frogner
Bernt Kristoffer Helland
Vahid Khairkhah
Jonas Myren Mo
Gruppenummer:
23
Oppdragsgiver:
Pizza Plutselig, Ullevålsveien 14, 0171 Oslo
Kontaktperson:
Mansour Jam
954 79 171
[email protected]
Intern veileder:
Høgskolelektor Ismail Hassan
[email protected]
Sammendrag
Hos Web Archive kan man finne nettsiden til Pizza Plutselig helt tilbake til 30. desember 2002.1 På
disse tolv årene har ikke nettsiden forandret seg i det hele tatt. Nettsiden er laget som en
vennetjeneste til oppdragsgiver, og oppdragsgiver har liten kunnskap om hvordan han kan
oppdatere siden.
Oppdragsgiver ønsker ny nettside med en adminløsning som gjør det mulig for han å endre meny,
forside, bilder og andre relevante ting.
Dagens situasjon
Oppdragsgiver har fått nettsiden som presang fra et familiemedlem. Hver gang han ønsker å utføre
endringer må han kontakte vedkommende for bistand, noe som er veldig tungvint og tidkrevende.
Oppdragsgiver ønsker å kunne effektivisere endringer i nettsiden og samtidig ikke være en byrde for
den tidligere utvikleren.
Etter første møte med oppdragsgiver fikk vi vite at oppdragsgiver primært ønsker en løsning der han
kan endre mye av informasjonen, blant annet priser, meny og nyheter. I tillegg til denne
funksjonaliteten, ønsker oppdragsgiver å kunne overvåke hvor mye trafikk som går gjennom siden,
og gjøre beslutninger relatert til siden basert på en trafikk-analyse. Oppdragsgiver har vært i kontakt
med Google og etter samtalen de har hatt fikk vår gruppe en mail om å bruke Google Analytics og
Wordpress.
Wordpress er en av de mest brukte CMS løsninger blant organisasjoner, private foretak, bloggere og
andre og har en rekke gode fordeler blant annet ferdige løsninger, plug-ins, funksjonaliteter som kan
tas i bruk og som også er gratis, men det finnes ulemper som vi syns det var greit å advare
oppdragsgiveren på før han bestemmer teknologien. Blant de ulempene finner vi patching og
oppgraderinger som kommer for Wordpress for å ivareta sikkerheten. Dersom oppdragsgiver ikke
får med seg disse, eller ikke veit hvordan de skal testes før implementering vil deres nettside og
eventuelle informasjon være veldig sårbare. Et annet aspekt ved saken er hackere som har langt
større kjennskap til en slik CMS-løsning sammenlignet med andre alternativer. Det finnes
automatiserte hacker-verktøy som angriper Wordpress sine nettsider. Sist men ikke minst er
kompatibiliteten mellom plug-ins, ikke alle kan implementeres og fungere sammen. Sikkerhet er et
viktig tema i dagens samfunn og er et nasjonsansvar. Vi som utviklere har et ansvar å levere en
løsning med høyere sikkerhetsgrad for å minke eventuelle trusler.
Derfor har vi diskutert for oss i mellom, og kom frem til at vi skulle bruke en MVC løsning hvor viktig
informasjon ligger langt inne i systemet og vanskeligere å få tak i, blant annet profil informasjon,
transaksjoner, bestillinger etc.
Vi vil sette opp en liste med alle funksjonalitetene og prioritere disse for å kunne gi oppdragsgiver et
sikkert og komfortabelt system i forhold til tiden vi har til rådighet.
Under prosjektet vil vi ha kontinuerlige møter med både vår veileder Ismail Hassan og Oppdragsgiver
Mansour Jam, slik vi kan presentere våre ideer og få tilbakemelding på fremgangen, løsningen,
1
http://web.archive.org/web/19980315000000*/http://www.pizzaplutselig.no/
funksjonalitetene eller utfordringer som dukker opp. I slike møter kan vi for gripe inn i endringer
som kommer basert på brukerhistorier og få dem i vår design og implementerings prosesser, slik
løsningen kan møte oppdragsgiveres forventninger og være brukervennlig.
Vi håper å kunne engasjere oppdragsgiver med å komme med flere kravspesifikasjoner som han
kanskje ikke har tenkt på.
Vi har allerede etablert og tatt i bruk en chattekanal gjennom Facebook og cloudlagring i Dropbox.
Dessuten bruker vi prosjekt- og oppgaveorganiseringsverktøyet Trello (scrum-brett) med konkrete
punkter og mål med angitte frister. Vi vil bruke versjonskontroll med enten Github, Bitbucket eller
Team Foundation.
Vi har et designutkast som vi skal presentere for oppdragsgiver i vårt neste møte for å se om det
samsvarer med det kunden forestiller seg.
Mål, utfordringer og løsninger
#
Mål
Utfordring
Løsning(er)
1
Muligheter for endringer i
databasen, samt endring av
nettside-info. Se på
muligheten for å kunne endre
layout.
Vi vet ikke hvordan vi skal få
opp nettsiden slik at en
administrator kan endre layout.
-Se på løsninger ved hjelp
av javascript og css.
2
Sikker lagring av
bruker/produktinformasjon.
Følge regler og retningslinjer
gitt fra datatilsynet.
-Bruke påloggings-system
for bruker.
-Hashe passord.
-Blokkering av bruker etter
antall feilinnlogginger og
gjenoppretting vie epost.
-Krav om sterke passord
eller passord med små,
store bokstaver og tall
3
Designe en høyest mulig
normalisert, og kompleks nok
database.
Utvikle en så kompleks og
dynamisk database at dette
ikke hindrer oppdragsgivers
ønske om funksjonalitet.
Databasen skal ha minst mulig
duplikater, og ha minimum
tredje normalform.
-Bruk av LINQ database.
-Planlegge og designe
databasen med en
domenemodell osv.
-Følge alle kravene for
første, andre, og tredje
normalform.
4
Utskrift av bestillinger til en
ekstern device.
Oppdragsgiver ønsker utskrift
av bestillinger fortløpende.
Gjerne på en liten «labelprinter» eller lignende løsning
som de bruker pr i dag fra
JustEat. En annen mulighet er å
få bestillingen tilsendt til
mailkonto med automatisk
print funksjon.
-Sette opp en automatisk
utskrift av bestillinger som
kommer inn i
Oppdragsgivers bestilling
mailboks.
-Bruke en miniprinter.
5
Muligheter for å analysere
datatrafikk (Google Analytics)
At vårt produkt er kompatibelt
med Google Analytics.
-Legge til javascript i alle
sidene
6
Hosting av webserver og
database
Dersom det ikke lar seg gjøre å
flytte alt på nåværende
webhotell som oppdragsgiver
bruker, vil utfordringen bli
kostnader relatert til å
implementere løsningen.
Om nåværende server er god
nok for å lese vårt .net prosjekt.
-Leie webserver og
database-lagring på
oppdragsgivers bekostning.
-Finne et gratis webhotell
løsning som kan gi brukeren
en gitt størrelse både til
lagring og trafikk.
Generelt om målene:
Vi har i første omgang satt opp en del punkter som vi syns det var viktig å få med. Men det vil
muligens komme nye mål eller krysset bort noe av de ovennevnte mål.
De største utfordringene kan bli videresending av bestillinger til et apparat som oppdragsgiver kan
benytte seg i butikken, lage en nettside hvor det er enkelt å endre design og omplasseres. Basert på
gruppemedlemmenes bakgrunnskunnskap er vi ikke helt sikre på om enkelte deler av prosjektet lar
seg gjøre med gratisverktøy eller om man trenger lisensbelagte rammeverk og programvare for å
iverksette og muliggjøre dette.
De ovennevnte punkter er de mest utfordrende punkter i prosjektet. Vi ønsker i tillegg å ha følgende
trivielle mål:




Utvikle et brukervennlig og ryddig design hvor vi tar hensyn til Universell utforming.
Responsivt design.
Administrator bruker som kan endre og legge til nye brukere.
Tilfredsstille alle (brukerhistorier) som blir meldt til oss av oppdragsgiver og ansatte.
Rammebetingelser
Programmeringsspråk:







C#
HTML5
CSS3
MySQL / LINQ
Javascript
JQuery
Angular / Polymer
Verktøy:





Microsoft Visual Studio 2013
Netbeans
Trello
Dia
Microsoft Azure
Utviklingsmetode
For at vi skal kunne være mest mulig effektive har vi besluttet å benytte en smidig metode, som for
eksempel scrum, til dette prosjektet. Vi vil bruke Trello som en scrum-tavle. Her vil vi sette opp
hovedpunkter, og underpunkter for prosjektet. Disse vil bli fordelt mellom medlemmene av
gruppen. Ettersom vi har gruppemedlemmer som har heltidsjobb ved siden av studiene vil det bli en
utfordring å koordinere arbeidet, derfor vil Trello-tavlen være til stor hjelp.
Vi planlegger å holde gruppemøter med alle tilstede minst en gang i uken, så lenge dette lar seg
gjøre. Vi skal også ha møte med veileder en gang i uken.
Før vi setter i gang med selve utviklingsprosessen vil vi sette opp en kravspesifikasjon, som
inneholder blant annet funksjonelle og ikke-funksjonelle krav, utfra hva vi ser på som nødvendig og
gjennomførbart. Vi kommer til å sette sammen en prioritert liste med brukerhistorier, som vi vil ha
som utgangspunkt. Så må vi finne en metode for å anslå hvor lang tid det vil ta og utvikle
komponentene. Med for eksempel "planning poker".
Vi vil definere sprinter ut i fra denne kravspesifikasjonen, og fordele disse etter hvor hver og en av
oss har sine erfaringer og kompetanse. Nye punkter kan også komme til å bli definert underveis i
prosjektet.
Vi har kommet fram til at analyse vil bli svært viktig, ettersom det er naturlig at vi kommer til å måtte
forsvare valgene vi har tatt. Vi kommer derfor til å gjøre gode vurderinger rundt alle valgene vi tar,
slik at vi på best mulig måte skal kunne begrunne disse.
Virkninger for oppdragsgiver
For oppdragsgiver vil vår løsning være intuitiv og enkel å redigere for ytterligere bruk. Fra kundens
perspektiv vil det være oversiktlig å bestille matretter, samt at restauranten vil få beskjed om at en
bestilling har tatt plass så fort kunden har skrevet inn all nødvendig informasjon. Kunden skal også
kunne lage en bruker og ta i bruk en innloggingsfunksjon som lagrer tidligere bestillinger slik at
brukeren ikke må skrive inn all informasjon hver gang man bestiller mat.
Det skal være mulighet for oppdragsgiver å manipulere oppsettet av forsiden, uten at han eller hun
må endre noe ved hjelp av programmering.
Dette vil si at menyer og lignende kan plasseres fritt frem der hvor oppdragsgiver ønsker. Dette vil gi
en simpel plattform som kan være svært brukervennlig.
Konklusjon
Etter vårt første møte med intern veileder fikk vi avklart noen spørsmål vi hadde vedrørende
størrelsen på oppgaven. Vi føler nå at vi har et grunnlag å jobbe utfra.