Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
HOVEDPROSJEKT
HOVEDPROSJEKTETS TITTEL
Matsans – matsiden for matintoleranse
DATO
29.mai 2009
ANTALL SIDER / BILAG
167/5
PROSJEKTDELTAKERE
Yin Deng (s111314)
INTERN VEILEDER
Ulf Uttersrud
OPPDRAGSGIVER
Matsans
KONTAKTPERSON
Ellen-Cecilie Evju
SAMMENDRAG
Oppgaven har gått ut på å lage en
brukervennlig kokebok på web tilrettelagt for
brukere med matintoleranse. Resultatet er
matsiden og nettstedet http://matsans.moo.no.
Matsans er utviklet ved hjelp av Microsoft ASP.NET, C#, HTML, CSS og SQL. Visual
Studio 2008 ble brukt som utviklingsverktøy, mens Microsoft SQL Server 2005 ble brukt
som databaseverktøy.
Dette hovedprosjektet har blitt gjennomført av en enkeltmannsgruppe. Noe som har vært en
stor utfordring i seg selv. Til tross for gruppens størrelse, er det blitt utrettet svært mye arbeid
i prosjektet. Gruppen selv er meget godt fornøyd med både innsats og resultat.
3 STIKKORD
Kokebok
Matintoleranse
ASP.NET
Studieprogram: Dataingeniør Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo
Besøksadresse: Holbergs plass, Oslo
PROSJEKT NR.
2009 - 27
TILGJENGELIGHET
Åpen
Telefon: 22 45 32 00
Telefaks: 22 45 32 05
Forord
Matsans er utført som et hovedprosjekt av gruppe 09-27 ved Høgskolen i Oslo, avdeling for ingeniørutdanningen, datalinjen. Denne prosjektrapporten inneholder all dokumentasjon som er produsert gjennom prosjektperioden. Kildekoden til prosjektet finner du på prosjekthjemmesiden: http://matsansen.moo.no eller http://matsans.wordpress.com. Siden med kildekoden er passordbeskyttet. Passordet er: m4ts4n5 Gruppen håper at prosjektarbeidet vil falle i smak hos leseren. God fornøyelse!
Innholdsliste
I. Prosessdokumentasjon II. Kravspesifikasjon
III. Produktdokumentasjon IV. Testdokumentasjon V. Brukermanual
1
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
2
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
3
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
Forord
Dette dokumentet beskriver arbeidsprosessen til et hovedprosjekt som fullføres våren 2009
ved Høgskolen i Oslo, avdeling for ingeniørutdanning - datalinjen. Dokumentet beskriver
hvilke forhold gruppa har arbeidet under, hvilke arbeidsmåter som ble valgt, hvilke
rammebetingelser som ble satt, hvilke verktøy som er blitt benyttet, hvilke utfordringer
gruppen har møtt, hvordan utfordringene ble møtt og hvilke løsninger gruppen kom fram til.
Med få ord handler dokumentet om gruppens arbeidskontekst.
Prosessdokumentasjonen er beregnet for sensor, veileder, oppdragsgiver og for andre som
er interesserte i å vite mer om prosjektets gang og gruppens erfaringer.
Det kan være nyttig å se dokumentet i sammenheng med kravspesifikasjonen, da den er
blitt hyppig brukt i prosjektarbeidet.
Ideen bak Matsans la vekt på å kunne jobbe med spennende teknologier på en måte som
var til hjelp for andre mennesker. En verdibasert innstilling som bygger kompetanse og
bidrar til et bedre samfunn. Dette virker litt svevende, men det er her skrevet for å pirre
leserens interesse for å lese videre. Gruppen er fornøyd med resultatet.
Gruppen ønsker å rette en stor takk til alle som har hjulpet og støttet gruppen gjennom
prosjektets levetid. Spesielt takk til:
Ulf Uttersrud, faglig veileder gjennom hovedprosjektet.
Ellen-Cecilie Evju, kontaktperson for Høgskolen i Oslo.
Gjermund Gartmann, kjæreste som har støttet og korrekturlest.
Oslo, 28.mai 2009
___________________
Yin Deng
4
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
Innholdsfortegnelse
1. Innledning ....................................................................................................................................... 5
1.1 Om bedriften ................................................................................................................................. 5
1.2 Dagens situasjon ........................................................................................................................... 5
1.3 Mål ................................................................................................................................................ 5
1.4 Rammebetingelser ........................................................................................................................ 6
1.5 Begrensninger ............................................................................................................................... 6
1.6 Gruppen ........................................................................................................................................ 6
2. Planlegging og metode.................................................................................................................... 7
2.1 Hvordan prosjektarbeidet ble planlagt ......................................................................................... 7
2.2 Hvordan planleggingen fungerte i prosessen ............................................................................... 7
2.3 Verktøy .......................................................................................................................................... 8
2.4 Introduksjon til ASP.NET miljøet ................................................................................................... 9
2.5 Arbeidsmetode ............................................................................................................................. 9
2.6 Tilbakemelding ............................................................................................................................ 10
3. Om utviklingsprosessen ................................................................................................................ 11
3.1 Utviklingsfaser ............................................................................................................................. 11
3.2 Oppbygging og funksjon i programmet ...................................................................................... 14
3.3 Problemer og utfordringer .......................................................................................................... 14
4. Kravspesifikasjonen og dens rolle ................................................................................................. 15
4.1 Generelt ...................................................................................................................................... 15
4.2 Endringer fra første versjon ........................................................................................................ 15
4.3 Kravspesifikasjonens rolle under design og implementering ..................................................... 15
4.4 Samsvar mellom kravspesifikasjonen og sluttproduktet ............................................................ 15
5. Siste ord ........................................................................................................................................ 16
5.1 Eget utbytte ................................................................................................................................ 16
5.2 Oppsummering og konklusjon .................................................................................................... 16
5.3 Hva kunne bli gjort annerledes? ................................................................................................. 16
5.4 Produktet i fremtiden, bruk og nytte .......................................................................................... 17
5.5 Oppdragsgiver svar på produktet ............................................................................................... 17
5.6 Skal det snart tas i bruk/settes i produksjon? ............................................................................. 17
5.7 Skal prosjektet tjene andre sitt utgangspunkt for videre arbeid? .............................................. 17
6. Referanseliste ............................................................................................................................... 19
5
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
1. Innledning
1.1 Om bedriften
Matsans er et prosjekt som er ledet av prosjektgruppen. Gruppen har ingen oppdragsgiver,
og anser derfor potensielle brukere som oppdragsgiveren. Prosjektet retter derfor fokus
mot hyppig brukerkontakt for å styre prosjektets utvikling i riktig retning. Et fremtidig mål
for bedriften er å bli et offentlig organ for matintoleranse.
Per dags dato finnes det ikke et offentlig organ for matintoleranse. Dette vil Matsans bli ved å samle tilgjengelig og relevant informasjon om matintoleranse, samt skape et nettsamfunn og kokebok som kan forenkle hverdagen for mennesker med matintoleranse. Visjonen til Matsans er:
Gleden og drivkraften bak vår utvikling er mennesket.
1.2 Dagens situasjon
Mat er hos noen assosiert med glede, sansebruk og positive opplevelser. Andre forbinder det med rutinepreg, kjedsomhet og negative opplevelser. En bevisstgjøring om hvordan man enkelt kan lage god mat, kan for noen snu de negative matopplevelsene til det positive. Mennesker med matintoleranse og matallergi opplever ofte begrensninger i utvalget, og trenger en tjeneste som forenkler tilgangen til matoppskrifter som ikke interagerer med deres matintoleranse. I dag finnes det også få og lite fokuserte samlingssteder med oppskrifter og relevant informasjon for mennesker med matintoleranse. Nettopp dette vil Matsans forandre på og tilby mennesker med matintoleranse den samme muligheten til å oppleve gode matopplevelser i hverdagen, som mennesker uten matintoleranse. Matsans vil tilby (1) gode matoppskrifter tilpasset brukernes matintoleranse, (2) et nettsamfunn, samt (3) fungere som en informasjonsportal om matintoleranse med hensikt i å gi bedre innsikt og forenkle hverdagen for mennesker med matintoleranse.
1.3 Mål
Målet med hovedprosjektet er å utvikle en nettbasert kokebok som tar hensyn til folk med
matintoleranse, samt å utvikle et nettsamfunn og bli en fungerende informasjonskanal for
matintoleranse.
Prosjektets målgruppe er alle som har tilgang til internett. I første omgang siktes det mot de
med matintoleranse, mens i andre omgang skal nettsiden bli likestilt eller bedre enn andre
fungerende matsider på internett. Over et lengre perspektiv vil det bli rettet økte krav til
brukervennlighet1, tilgjengelighet2 og universell utforming3.
1 http://www.jus.uio.no/ansatte/web/webredaksjonen/referater/2006/presentasjon-baarli-
120606/littomwebjus.ppt (27.05.09) 2 http://biblioteknett.no/dtb/webtilgjengelighet.html (27.05.09)
3 http://www.oppland.no/PageFiles/13708/AudMarieHauge.pdf
6
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
Det henvises til kravspesifikasjonen for mer utfyllende informasjon om krav og mål.
1.4 Rammebetingelser
Gruppen stod fritt frem til å velge hvilken som helst teknologi så fremt løsningen
imøtekommer målene til prosjektet. Teknologien som ble valgt var Microsofts ASP.NET 2.0,
med bruk av Visual Studio 2005 som utviklingsverktøy. Dette ble valgt siden ASP.NET er en
av de mest aktuelle teknologiene for denne typen prosjekter, samt at utviklere med
kunnskap innen dette feltet er veldig ettertraktet på jobbmarkedet.
1.5 Begrensninger
Matsans har ikke kapasitet til å sette opp en egen permanent server for nettstedet, og må
derfor finne en alternativ løsning for å få Matsans på nett. Foreløpig ligger Matsans på en
privat datamaskin som fungerer som server. Men denne serveren er kun midlertidig oppe
når nettstedet er under utvikling og ellers ved andre behov. Uansett, så er Matsans å finne
på http://matsans.moo.no når serveren er oppe.
1.6 Gruppen
Gruppen består av kun én person. Grunnen til at gruppen
kun består av én person skyldes lange sykdomsperioder med
nedsatt arbeidsevne. Men sykdom stopper ikke viljestyrken
til å gjennomføre dette hovedprosjektet. Derfor ble denne
gruppen likevel dannet.
Gruppen har gode erfaringer fra samarbeid i tidligere fag,
blant annet i Systemutvikling. Gruppen kommuniserer også
meget godt internt og arbeider synkronisert.
Figur 1: Gruppemedlem Yin Deng
7
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
2. Planlegging og metode
2.1 Hvordan prosjektarbeidet ble planlagt
Etter at gruppesammensetningen hadde funnet sted, var det på tide å finne et passende og
interessant prosjekt til gruppen. Prosjektet måtte være motiverende for gruppen og
samtidig relevant i arbeidslivet i dag.
I første omgang fant gruppen et hovedprosjekt som handlet om å lage en nettbasert
kokebok for sunne oppskrifter. Men etter en del tankearbeidet konkluderte gruppen med at
det ville kreve et høyt kunnskapsnivå om ernæring og kosthold for at resultatet av
prosjektet skulle oppfattes som troverdig for brukeren. Alternativet var å ha regelmessig
kontakt med en kostholds- og ernæringsekspert eller lege, noe som heller ikke var aktuelt
for gruppen grunnet de utgifter det måtte medføre. For øvrig var heller ikke fokuset i
oppgaven appellerende da det er nok andre nettsider rundt om med fokus på å være sunn
og slank. Men gruppen likte temaet for oppgaven, om å lage en matside. Derfor idemyldret
gruppen videre på dette for å lage en tvist på mat-temaet.
Denne tvisten endte med ideen om å lage en nettbasert kokebok for mennesker med
matintoleranse. Det skulle bli interessant for gruppen å sette seg inn i matintoleranse og det
var ikke like kunnskapskrevende som den forrige oppgaven. Dermed var det bare å sette i
gang prosjektet: Matsans – matsiden for matintoleranse.
Da prosjektet ble valgt, bestemte gruppen seg for å være grundige i planleggingsfasen.
Dette gjaldt spesielt kravspesifikasjonen, fordi en god kravspesifikasjon kan spare gruppen
for mye tid, ergrelser og ekstra jobb underveis i prosjektets levetid. Gjennom en solid
kravspesifikasjon ble grunnlaget dannet for en prosjektutviklingsprosess uten de store
nedturene. Slik at gruppen kunne få mer tid til å nå målene satt i kravspesifikasjonen og ha
fokus på å følge opp denne optimalt. Kravspesifikasjonen fungerte som en rettesnor under
hele utviklingsprosessen.
Arbeidsplan og fremdriftsplan ble også laget for å sette arbeidsoppgavene i et relativt
sannsynlig tidsperspektiv. Selv om gruppen ikke fikk noen tidsfrister av verken
oppdragsgiver eller veileder, ble det satt delmål og milepæler for arbeidet. Dette fordi
gruppen ønsket å se fremgang og resultater, i stedet for å la prosjektet drive seg utover over
det uendelige uten mål og mening.
2.2 Hvordan planleggingen fungerte i prosessen
I praksis hadde gruppen på forhånd beregnet god tid til planleggingsfasen. Men det tok mer
tid enn beregnet fordi hele prosjektet skulle lages fra blanke ark. Det betyr blant annet at
gruppen ikke hadde noen forkunnskaper om teknologien ASP.NET. Dermed ble det vanskelig
å vurdere hva gruppen måtte sette seg inn i underveis og hvor mye tid dette ville ta. Å sette
seg inn i en ny teknologi krevde mer fomling og tid enn gruppen forutså. Det at gruppen var
8
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
såpass liten slo heller ikke positivt ut på læringskurven, da det med flere rundt bordet ville
være mulig å dele kunnskaper.
Innad i gruppen var det stor enighet i arbeidsmåte, krav og ønsker. Men det var vanskelig å
diskutere seg frem til nye vinkler til prosjektet etter det første utkastet. Dette skyldtes at
gruppen kun bestod av én person. En løsning på dette enmannsproblemet ble å foreta korte
og uformelle spørreundersøkelser hos potensielle brukere, for å få raske tilbakemeldinger
som igjen kunne brukes videre i ideskapingsprosessen. Det ble altså opprettet en form for
diskusjon med potensielle brukerne allerede fra en tidlig fase i prosjektets levetid, for å
styre og kvalitetssikre at prosjektet beveget seg i riktig retning. Denne datainnsamlingen ga
nye perspektiver og nytt materiale som prosjektet kunne drives videre av.
Et stort og uventet problem i planleggingsfasen var å innse egne begrensninger for å
begrense omfanget av prosjektet, slik at det blir innenfor rimelighetens rammer. Det er ikke
realistisk at en enkeltmannsgruppe kan gjennomføre et prosjekt med omfanget til en større
gruppe. Det er fristende å sette seg store og djerve mål og heller ikke galt i følge Økonomi og
ledelse, men det blir desto større fallhøyde den dagen karakteren skal settes. Store og djerve
mål tilhører et lengre tidsrom, mens på et halvt år er det viktig å innse sine begrensninger
tidligst mulig i prosjektfasen. Det hører med til teksten at når gruppen selv innså
begrensningene, så løsnet arbeidet betraktelig.
Selv om planleggingsfasen tok lengre tid enn beregnet, påvirket det lite for resten av
arbeidet som gjenstod. En godt planlagt kravspesifikasjon slo positivt ut, og lettet arbeidet
for resten av prosessen.
2.3 Verktøy
Følgende verktøy ble brukt underveis i prosjektet:
Firefox – nettleser
Microsoft Internet Explorer – nettleser
.NET Framework 2.0 – rammeverket som driver ASP.NET
.NET Framework Software Development Kit (SDK) – verktøy for å kjøre ASP.NET
Microsoft SQL Server 2005 – database
Microsoft SQL Server Management Studio Express – verktøy for databasen
Microsoft Visual Studio 2008 – utviklingsverktøy for teknologien ASP.NET
Microsoft Office Word – for dokumentasjon
Microsoft Office Excel – for skjemaer
Microsoft Office Visio – for datamodeller
Microsoft Windows XP – operativsystem
Adobe Photoshop – for design
9
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
2.4 Introduksjon til ASP.NET miljøet
Gruppen hadde ingen tidligere erfaringer eller kunnskaper om ASP.NET. Derfor måtte
gruppen lære dette fra bunnen av under utviklingen av Matsans.
Det første gruppen måtte lære var bruken av de tre logiske lagene som vanligvis bygger opp
tradisjonelle distribuerte webapplikasjoner. Trelagsarkitekturen består av følgende lag:
Presentasjonslaget
Webapplikasjonssidene, brukergrensesnitt
Forretningslogikklaget
Objektorientert programmering, code-behind
Databaselaget
Databasen, lagrede prosedyrer og DB-grensesnitt
Presentasjonslaget er tilnærmet brukergrensesnittet, det vil si det laget som brukerne
interagerer med. Her fikk gruppen frisket opp kunnskaper om HTML og CSS, og lærte bruken
av ASP.NET kontrollere.
Forretningslogikklaget er hjernen bak trelagsarkitekturen. I dette laget blir interaksjonen
mellom program og bruker, hendelser i brukergrensesnittet og forespørsler programmert.
Gruppen lærte seg programmeringsspråket C# for å programmere dette laget i code-behind
sidene til ASP.NET-sidene.
Databaselaget rommer databasen til prosjektet. Her lærte gruppen å bruke
databaseteknologier som Microsoft SQL Server 2005 og SQL, standardspråket som utfører
operasjoner opp mot databasen.
Matsans ble for det meste programmert i Visual Studio 2008, et utviklingsverktøy som ga en
god og smidig introduksjon til ASP.NET-miljøet. I Visual Studio 2008 blir .NET-rammeverket
presentert oversiktlig og tilgjengelig. Mens C# programmeringen ble lettere å lære på grunn
av IntelliSense4 som verktøyet tilbyr. IntelliSense er automatisk forslagsvisning av
kodealternativer.
2.5 Arbeidsmetode
Som prosessmodell valgte gruppen å følge DSDM som står for Dynamic Systems
Development Method5, og er en prosessmodell basert på prinsippet om iterativ og
inkrementell utvikling.
Livsløpet på et DSDM prosjekt har 5 faser:
4 http://en.wikipedia.org/wiki/IntelliSense (28.05.09)
5
http://www.ifi.uzh.ch/rerg/fileadmin/downloads/teaching/seminars/seminar_ws0304/14_Voigt_DSMD_Ausarbeitung.pdf
10
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
Figur 2: Utviklingsfasene i DSDM – tre pizzaer og en ost. Kilde: dpm.as
Mulighetsstudie (feasibility study):
En overordnet vurdering av ønsket funksjonalitet og løsningsmuligheter, samt grove
kostnads- og ressursestimater. Mulighetsstudiet varer normalt sett noen få uker.
Forretningsstudie (Business study):
Analyse av virksomheten og grunnlaget for videreføring av prosjektet. Overordnede
krav og modeller fastsettes. Forretningsstudiet varer normalt sett en måned.
Funksjonell iterasjonsmodell (Functional modell iteration):
Fokusere på å skape de forretningsmessige aspektene ved løsningen, dvs. å bygge på
overordnede krav til funksjonalitet og informasjonskrav. Her snakker vi om å lage et
system som stemmer overens med den funksjonaliteten som er påkrevd.
Design & bygg iterasjon (Design and build iteration):
Fokusere på å sikre at systemet tilfredsstiller den standard som kreves for at
systemet kan tas i bruk av sluttbrukerne.
Implementering (implementation):
Implementeringen omfatter overgangen fra utviklingsmiljøet til et operasjonelt
miljø.
Modellen beskriver overordnede prinsipper og inneholder en del fastsettelser av krav.
Bortsett fra dette, ga modellen et fritt spillerom overfor hvordan utviklingsarbeidet skulle
drives.
2.6 Tilbakemelding
Siden gruppen var sin egen sjef og ikke hadde noen oppdragsgiver, oppsøkte gruppen heller
kontakt med potensielle brukere av nettstedet for tilbakemeldinger. Gruppen fant ut at det
å vurdere brukerne som en oppdragsgiver er en god ide, da fornøyde brukere kan regnes
som et godt resultat. Denne brukerkontakten ble gjort regelmessig i snitt hver tredje uke,
hvor det ble gjort enkle og uformelle undersøkelser opp mot ulike brukergrupper.
Tilbakemeldingene har hele tiden gitt nye ledetråder overfor hvordan prosjektet kan
videreutvikles og forbedres.
11
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
3. Om utviklingsprosessen
3.1 Utviklingsfaser
Under utviklingen av Matsans har gruppen gjennomgått flere faser. Fasene følger mer eller
mindre etter DSDM prosessmodellen:
- Innledende arbeid
- Forprosjektfasen
- Planleggingsfasen
- Lærefasen
- Implementasjonsfasen
- Dokumentasjonsfasen
3.1.1 Innledende arbeid
Gruppen ble dannet og gjorde seg klar for å starte hovedprosjektet:
- Prosjekthjemmeside (http://matsansen.moo.no eller http://matsans.wordpress.com)
Prosjektets hjemmeside ble satt opp klar til disposisjon. Den ble satt opp på en gratis
ekstern server fordi gruppen ikke hadde tilgang på skolens server.
- Prosjektdagbok
En dagbok ble satt opp på prosjekthjemmesiden for å notere gangen i arbeidet.
Dagboken var satt opp i form av en blogg (wordpress6), fordi det var den enkleste og
mest effektive måten å skrive nye dagbokinnlegg på som gruppen var kjent med.
- Veileder
Gruppen fikk tildelt en veileder og opprettet straks et samarbeid med denne
personen. Tildelt veileder for prosjektet ble Ulf Uttersrud.
3.1.2 Forprosjektfasen
I forprosjektfasen ble det vurdert hva og hvordan prosjektarbeidet skulle inndeles i faser, og
hvor lang tid det skulle settes av til hver fase.
- Prosjektskisse
Informasjon om arbeidsgiver, prosjektoppgave og gruppemedlemmet ble klargjort.
- Arbeidsplan
Arbeidsplanen viste hvilke forskjellige faser prosjektet skulle gå gjennom.
- Framdriftsplan
Med bakgrunn for arbeidsplanen, viste framdriftsplanen tidsmål for hver fase.
- Forprosjektrapport
Mål for prosjektet, rammebetingelser, alternativer, valg og løsninger ble redegjort.
6 http://wordpress.org/ (27.05.09)
12
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
3.1.3 Planleggingsfasen
Planleggingsfasen bestod av mye arbeid med kravspesifikasjonen.
- Kravspesifikasjon
En svært detaljert førsteutgave av en kravspesifikasjon ble utviklet av gruppen før
noe som helst annet arbeid ble satt i gang. Det var først da gruppen kunne se for seg
hva prosjektet skulle bestå av og at programmeringsarbeidet kunne settes i gang.
3.1.4 Lærefasen
Ettersom ingen i gruppen hadde noen erfaringer med ASP.NET, ble det nødvendig med en
innlæringsperiode for denne teknologien. I denne perioden lærte gruppen om hva ASP.NET-
teknologien innebærer, installering av de nødvendige komponentene som måtte til for å
kjøre ASP.NET, og å bruke utviklingsverktøyet Visual Studio 2008. Da den første ”Hello
World” ASP.NET-siden var oppe, kan man si at gruppen var kommet i gang med
innlæringsperioden.
Videre tok gruppen et grunnkurs om ASP.NET i form av en videoserie på 14 deler7, som er
blitt lagt ut på Microsoft sine ASP.NET-sider. På denne måten fikk gruppen en
grunnleggende innføring og et godt utgangspunkt for videre læring.
Men før gruppen fikk med seg det grunnleggende innen ASP.NET fikk gruppen seg en
lærepenge. I starten søkte gruppen etter et læreprogram som skulle vise hvordan en kunne
lage nettstedet steg for steg. Som en slags spesifikk snarvei til å sette opp nettstedet. I
stedet ble det sløst en god del tid på å fomle etter et læreprogram som verken var tilpasset
ønskene for nettstedet eller særlig lærerik. For å få god kunnskap og stabile produkter som
tilfredsstiller kravspesifikasjonen og brukeren, må en alltid kjenne teknologien fra bunnen
av. Deretter kan man begynne å bygge produktet stein for stein. Uten grunnmuren vil alt
rase sammen før eller senere. Grunnmuren er absolutt nødvendig for å bygge den flotteste
bygning, produkt eller lærdom.
Underveis i utviklingen av prosjektet støtte gruppen stadig på nye utfordringer innen
ASP.NET-teknologien som gruppen måtte lære om. Det ble lært om alt fra bruken av
ASP.NET sine kontrollere, til å lære seg å programmere nye løsninger med C#.
Programmeringsspråket C# var også helt nytt for gruppen. Men heldigvis ligner C# svært
mye på programmeringsspråket Java som gruppen hadde lært seg i tidligere fag ved
høgskolen, noe som førte til at læringskurven til C# ble forholdsvis brå og enkel.
Lærdommen kom i form av internett, bøker og venner.
3.1.5 Implementasjonsfasen
Funksjonaliteten ble allerede spesifisert under planleggingsfasen. Men for å programmere
et nettsted trengte gruppen å undersøke hvordan man kan utvikle et brukervennlig
grensesnitts. Dette ble utviklet ved at gruppen designet flere modeller av nettstedet på
7 http://www.asp.net/learn/videos/ (28.05.09)
13
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
papir. Deretter ble papirutgavene vurdert av forskjellige brukergrupper og veileder for å
finne en utgave som kom positivt ut med hensyn til brukernes behov og ønsker. Da dette ble
avgjort, var det bare å sette i gang med å programmere funksjonaliteten bak hver side av
nettstedet.
Programmeringen foregikk med hjelp av teknologiene HTML, CSS og C#. Mesteparten av
programmeringen foregikk på C# for ASP.NET. Det var også der de fleste utfordringene
dukket opp. Hver utfordring kunne ta fra en dag til flere uker å fikse. Tilgangen på
hjelpemidler varierte da kompetente venner ikke alltid var tilgjengelige, internett løste ikke
alltid problemet og tilbakemeldingene på diverse nettforumer ble opplevd som
utilstrekkelige.
Databasen ble utviklet etter hvert som det ble behov for nye tabeller, slik at ingen tabell ble
opprettet uten et behov som eksisterte på forhånd. Hver tabell ble grundig gjennomtenkt
før de ble opprettet siden det er vanskelig å gjøre endringer på en tabell i en database i
ettertid.
3.1.6 Dokumentasjonsfasen
Styringsdokumentene ble skrevet underveis i prosjektet samtidig som de ble utviklet.
Styringsdokumentene bestod av prosjektskisse, prosjektdagbok, forprosjektrapport,
arbeids- og fremdriftsplan, og kravspesifikasjon. Etter at mesteparten av prosjektet ble
ferdig utviklet, startet arbeidet med å ferdigstille sluttdokumentasjonen.
Sluttdokumentasjonen består av kravspesifikasjon, prosessdokumentasjon,
produktdokumentasjon, testdokumentasjon, brukerdokumentasjon og muntlig presentasjon
av prosjektet.
På grunn av mangel på oppdragsgiver ble det vanskelig å fastsette hvem som egentlig var
gruppens oppdragsgiver, hvilke tekniske spesifikasjoner og hvilke funksjonelle krav som
egentlig ble satt. Dette skal i realiteten utarbeides sammen med oppdragsgiver. Derfor ble
en ekstra del av prosjektarbeidet å utarbeide funksjonelle krav og rammer uten kontakt
med oppdragsgiver. Men som nevnt tidligere fant gruppen ut av at gruppens nærmeste
oppdragsgiver er de potensielle brukerne av sluttproduktet. Derfor måtte denne
dokumentasjonen utarbeides sammen med brukeren, noe som ledet til regelmessig
brukerkontakt for diskusjon. Hadde gruppen hatt en fast oppdragsgiver ville denne
informasjonen blitt servert på en mer forutsigbar og mindre krevende måte. Men for
gruppens del ga det selvtillit og nye erfaringer å måtte løse problemene på egenhånd.
Samtidig er det viktig å erfare hvor essensiell brukeren er under utviklingsprosessen for å
oppnå et produkt som vil bli tatt i bruk. Det kan anses som en form for verdibasert utvikling,
hvor brukerens verdier står i sentrum.
14
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
3.2 Oppbygging og funksjon i programmet
Det ble valgt å implementere trelagsarkitekturen (beskrevet i pkt. 4.4), som består av:
Presentasjonslaget
Webapplikasjonssidene, brukergrensesnitt
Forretningslogikklaget
Objektorientert programmering, code-behind
Databaselaget
Databasen, lagrede prosedyrer og DB-grensesnitt
For mer detaljert beskrivelse av oppbygging og funksjoner henvises det til
produktdokumentasjonen.
3.3 Problemer og utfordringer
3.3.1 Testserver
Før utviklingen av Matsans kunne starte, måtte utviklingsmiljøet settes opp. Her lå første
utfordring som var å finne en server til å kjøre selve ASP.NET-plattformen. For denne
oppgaven ble det vurdert å sette opp enten en ISS-server eller en Cassini-server på
gruppemedlemmets datamaskin. Men gruppen fant ut at det var unødvendig å sette opp en
egen web-server, da utviklingsverktøyet Visual Studio 2005 har dette integrert. Denne web-
serveren var nok for å kunne teste og kjøre prosjektet inntil videre.
3.3.2 Oppdeling av arbeidsoppgaver
Da kravspesifikasjonen nærmet seg slutten, fikk gruppen et bedre overblikk over arbeidet
som måtte utføres. Men selv med et godt overblikk over arbeidet som måtte utføres, var
det vanskelig å angripe oppgavene. Selv om arbeidet pågikk så gikk det hele tregt og ble
opplevd som lite tilfredsstillende for gruppen. Og det var problematisk å forstå hvorfor
utviklingen ikke gikk framover. Etter hvert ble det forstått at oppgavene var for store å
jobbe med og arbeidet måtte stykkes ned i mindre fragmenter, slik at oppgavene ble mindre
omfattende og enklere å definere. Først da begynte arbeidet å gå etter planen.
3.3.3 Backup
En god huskeregel er å alltid ta backup av det man ikke ønsker å miste. Denne huskeregelen
kom i form av en lærepenge da det oppstod serverproblemer for prosjektsiden. Noe som
førte til at blant annet dagboken over en mindre periode gikk tapt. Heldigvis skjedde det
ingen hardwareproblemer som kunne ført til et større tap av viktig arbeid. Men gruppen
lærte av feilene og begynte å ta mer regelmessig backup, som ble lagret på forskjellige
fysiske lokasjoner. Det er fordel å være føre var med backup-rutinene når materiale med
høy viktighet kan gå tapt.
15
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
4. Kravspesifikasjonen og dens rolle
4.1 Generelt
Kravspesifikasjonen ble et nøye planlagt dokument og verktøy som tok utgangspunkt i
gruppens og brukernes (les: oppdragsgiverens) ønsker og ideer til produkt. Dette produktet
gikk først og fremst ut på å skape en nettbasert kokebok som tar hensyn til matintoleranse.
4.2 Endringer fra første versjon
Under hele prosjektets levetid var kravspesifikasjonen under utvikling og påvirkning av de
ulike prosjektfasene og brukerne. I startfasen ble det funnet ut om de fleste grunnleggende
og nødvendige funksjonelle kravene til produktet. Underveis i prosjektet omtrent
proporsjonalt med gruppens kunnskap om ASP.NET-teknologien, fremsto det også nye ideer
rundt kravspesifikasjonen. Gruppens forståelse av teknologien økte, noe som ga gruppens
medlem et bredere perspektiv og evnen til å se flere muligheter enn før. Andre matsider på
internett ble studert og til sammen ga denne økte kunnskapen på ulike områder en
oppsving for utviklingsprosessen. Riktig nok har noen av punktene havnet under punktet
”Utvidelse” i kravspesifikasjonen, men det å kunne se muligheter framfor begrensninger
medfører inspirasjon og motivasjon til gruppen.
4.3 Kravspesifikasjonens rolle under design og implementering
Kravspesifikasjonen har hele tiden spilt en stor rolle for utviklingen av produktet. Gruppen
har brukt kravspesifikasjonen som oversikt og sjekkliste overfor funksjonalitet som skulle bli
implementert. Men en kravspesifikasjon gir sjelden svar på alt. For eksempel oppbyggingen
av funksjonene ble funnet ut underveis mens gruppen lærte om teknologien.
Kravspesifikasjonen tar sikte på å være spesifikk, men den er sjelden spesifikk nok. Når man
sitter der og programmerer dukker det alltid opp mindre tvilstilfeller overfor hvordan man
tror brukeren ønsker å oppleve funksjonaliteten. Det kan være alt fra hvor fokuset skal være
når man har trykket på en knapp til hvordan brukeren ønsker å få tilbakemeldinger.
4.4 Samsvar mellom kravspesifikasjonen og sluttproduktet
Kravspesifikasjonen samsvarer godt med sluttproduktet, hvor gruppen klarte å
implementere alle de grunnleggende funksjonene som det ble gjort krav på.
16
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
5. Siste ord
5.1 Eget utbytte
Hovedprosjektet har vært svært lærerikt. For denne gruppen som består av kun én person,
lærte gruppen spesielt mye om å jobbe selvstendig og ansvarsfullt. På godt og vondt ble det
utviklet mye selvdisiplin. Det nytter ikke å sluntre unna eller skylde på at man har noen
dårlige dager, for her i gården er det ingen andre som vil fylle hullet dersom man prøver å
snike seg unna.
I stedet for å innta én arbeidsrolle, lærte gruppemedlemmet om alt i hele hovedprosjektet.
Det krever full oversikt og deltakelse på alle punkter i prosjektet. Dette er gull verdt når
erfaringene er gjort og prosjektet fullført, men innen den tid er det å være en
enkeltmannsgruppe en ganske ensom arbeidssituasjon.
Å lære seg teknologien ASP.NET innebærer kompetanse som gruppen vil ha stor glede av å
ta med seg videre. Det er en svært relevant teknologi med tanke på dagens arbeidsmarked.
Samtidig så er det en interessant teknologi å lære seg.
Det å lære seg en helt ny teknologi for et prosjekt utvikler også evnen for å tilpasse seg nye
arbeidsmiljøer. Neste gang blir det ikke like tøft, da ofte mye av funksjonaliteten og
virkemåten gjentar seg i forskjellige programmeringsspråk.
5.2 Oppsummering og konklusjon
En lærdom gruppen gjorde var at god planlegging ikke alltid er alfa og omega. Mangler
gruppen erfaring med det de skal gjøre, kan selv den beste planlegger feile. Så en konklusjon
ut av de erfaringene som ble høstet er at de forskjellige prosessene i prosjektets gang må
planlegges løst, mens milepælene må holdes fast på. Dermed blir det mest betydningsfulle
arbeidet man kan gjøre i forkant av et prosjekt, å sette opp hvilke milepæler prosjektet
består av på bakgrunn av den erfaringen gruppemedlemmene innehar ved prosjektets start.
5.3 Hva kunne bli gjort annerledes?
Selv om det ble mye utbytte av å jobbe alene på en gruppe, ville det vært bedre med flere
mennesker. Fordelene er mange, og det motsatte ble opplevd: å ha tilgang på andre
perspektiver, bedre arbeidsflyt ved å ha mulighet til å fortelle om sine problemer
umiddelbart istedenfor å la arbeidet stoppe opp inntil noen har svart på et forum, mer
diskusjon og idemyldring, inspirasjon og motivasjon. Økt kapasitet og mulighet til å
gjennomføre en oppgave med større omfang. Generelt sett er mennesket en positiv ressurs
som vil være verdifull å ha med seg ”på laget” i de aller fleste sammenhenger.
Arbeidsmengden ble egentlig for omfattende til den begrensede tiden som gruppen fikk på
dette prosjektet. Dette er fordi gruppen prøvde å jobbe og fullføre et prosjektarbeid for en
17
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
gruppe på normalt fire personer. Dette er igjen noe gruppen har lært mye av, men
karaktermessig kan det trekke i begge retninger.
5.4 Produktet i fremtiden, bruk og nytte
Matsans skal være en nettbasert kokebok med oppskrifter tilrettelagt for mennesker med
matintoleranse. Derfor vil videre utvikling av nettstedet være preget av å tilrettelegge bedre
og se hvilke behov som fremkommer underveis i prosessen. For øyeblikket er det et behov
for de intolerante å ha tilgang på matoppskrifter, men når dette behovet mettes vil
behovene endres. Nettstedet vil la seg styre av brukernes endring av behov og er dermed
avhengig av regelmessig kontakt fra brukerne. Brukerstudier bør derfor i fremtiden
prioriteres høyt.
Allerede nå er Matsans på vei til å bli brukerstyrt. Brukerne kan legge til og kommentere på
oppskrifter. Det er også laget et forum for at brukerne skal kunne utveksle erfaringer og
oppnå kontakt med andre i samme situasjon. Fremtidig arbeid bør legge fokus på økt
brukerstyring og sosial navigasjon8 for å synliggjøre brukernes handlinger/bevegelser.
5.5 Oppdragsgiver svar på produktet
Brukere og potensielle brukere av produktet blir i dette prosjektet sett på som
oppdragsgiveren. Tilbakemeldinger fra brukerne med matintoleranse tilsier at de savner en
lettvint måte å finne fram til oppskrifter tilpasset deres matintoleranse. Det kommer også
fram at når Matsans blir tilgjengelig på nett, så har flere sagt at de ønsker å bruke
produktet. Det er et savn og behov som vil bli oppfylt for flere potensielle brukere når
Matsans sine tjenester blir tilgjengelige.
5.6 Skal det snart tas i bruk/settes i produksjon?
Eneste Matsans trenger for å tilgjengeliggjøre nettstedet for fullt på nett er en stabil server
og et domene.
5.7 Skal prosjektet tjene andre sitt utgangspunkt for videre arbeid?
Videre arbeid for Matsans handler om å sette fokus på å integrere seg i brukernes daglige
rutiner. Dette innebærer i første omgang tre områder: brukervennlighet, tilgjengelighet, og
å motivere brukeren til videre bruk av nettstedet.
Kravspesifikasjonen etterlot noen punkter som raskt vil føre til økt brukervennlighet, f.eks.
det å kunne lage utskriftvennlige sider og å kunne endre størrelsesforhold i ingrediensene
basert på hvor mange porsjoner man ønsker. Bedre tilgjengelighet kan oppnås med RSS og
muligheten til å få levert oppskriften på mobil, samt vil muligheten til å tipse andre om
oppskrifter være med på at enkelte oppskrifter oppnår en høyere oppslutning. Det siste
området som handler om å motivere brukeren til videre bruk av nettstedet, er en egenskap
8 http://www.jbi.hio.no/bibin/KoG31/Brukerskapt_web.pdf
18
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
som preger brukerstyrte nettsamfunn. Utgangspunktet til Matsans for å oppnå dette kan
være blant annet å rangere oppskrifter etter hvor ofte de har blitt tipset om til venner, lage
en topp-liste over de brukerne som har publisert oppskrifter som har blitt tipset om flest
ganger, lage en oversikt over de oppskriftene som har blitt sist publisert slik at brukeren må
sjekke jevnlig, la brukeren kunne skape en profil som kan fremstå som interessant for andre
brukere, legge opp for at brukere skal enkelt kunne knytte kontakt med andre brukere, osv.
Videre arbeid for nettstedet handler som leser sikkert har forstått mer om ideologier enn
detaljer. Samtlige av de tre nevnte områdene har potensial til å gi brukeren en bedre
opplevelse, og det er det som er avgjørende for at et brukerstyrt nettsted skal utvikle seg
videre.
19
PROSESSDOKUMENTASJON Matsans - matsiden for matintoleranse
6. Referanseliste
Torvatn, Ann-Mari (2007). Dokumentasjonsstandard. http://www.iu.hio.no/~ulfu/hovedprosjekt/dokumenter/dokumentasjonsstandard.pdf
http://student.iu.hio.no/hovedprosjekter/2004/data/04/docs/prosessrapport.pdf
http://student.iu.hio.no/hovedprosjekter/2006/data/28/linker/prosess.htm [25.03.2009] http://student.iu.hio.no/hovedprosjekter/2005/data/31/00_www/prosessrapport.php
[23.03.2009]
2
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
3
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
Forord
Kravspesifikasjon beskriver de krav som oppdragsgiver/bruker har til systemet som skal utvikles. Dette uttrykkes i et system med symbolikk som er felles for både oppdragsgiveren og utvikleren. Denne beskriver også krav til funksjonalitet og rammebetingelser. Hovedkravene om funksjonalitet er gitt av oppdragsgiver, mens hvordan noe spesifikt og best mulig skal løses, er utredet av prosjektgruppen gjennom et samarbeid med veileder og oppdragsgiver. Dette dokumentet fungerer som en rettesnor for utviklerne gjennom hele prosjektet. Dokumentet fungerer også som en kontrakt mellom oppdragsgiver og prosjektgruppen.
Figur 1, kilde: flickr.com
4
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
Innholdsfortegnelse
1. Innledning ....................................................................................................................................... 5
1.1 Om prosjektet ............................................................................................................................... 5
1.2 Om bedriften ................................................................................................................................. 5
1.3 Bakgrunn for prosjektet ................................................................................................................ 5
2. Systemkrav ...................................................................................................................................... 6
2.1 Funksjonskrav ............................................................................................................................... 6
2.2 Tekniske krav ............................................................................................................................... 10
3. Rammekrav i systemet .................................................................................................................. 11
3.1 Tilgjengelighet ............................................................................................................................. 11
3.2 Sikring mot tap eller ødeleggelse av data ................................................................................... 11
3.3 Sikring mot tyveri eller misbruk av data ..................................................................................... 12
3.4 Kapasitet ..................................................................................................................................... 12
3.5 Fremtidig utvikling av systemet .................................................................................................. 12
3.6 Bruker og brukervennlighet ........................................................................................................ 12
4. Logisk datamodell ......................................................................................................................... 13
5. Utvidelse ....................................................................................................................................... 14
5.1 Funksjonskrav ............................................................................................................................. 14
5.2 Tekniske krav ............................................................................................................................... 15
6. Krav til dokumentasjon ................................................................................................................. 16
6.1 Dokumentasjon ........................................................................................................................... 16
6.2 Krav til kode ................................................................................................................................ 16
7. Dataordbok ................................................................................................................................... 17
8. Referanseliste ............................................................................................................................... 20
5
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
1. Innledning
1.1 Om prosjektet
Prosjektet skal gjennomføres som hovedprosjekt ved ingeniørutdanningen på Høgskolen i Oslo. Oppgaven består av å utvikle en brukervennlig kokebok på web tilrettelagt for brukere med matintoleranse. Systemet vil bli utviklet i plattformen ASP.NET med tilhørende verktøy avhengig av hva som blir aktuelt underveis i prosjektet. Gruppens prosjektside ligger på http://matsansen.moo.no eller http://matsans.wordpress.com. Prosjektets sluttprodukt ligger på http://matsans.moo.no.
1.2 Om bedriften
Matsans er et prosjekt bestående av en enkeltmannsgruppe fra Høgskolen i Oslo. Forestilt fremtidsmål for prosjektets utvikling er å være et offentlig organ for matintoleranse. Per dags dato finnes det ingen offentlig organ for matintoleranse. Dette satser Matsans på å bli ved å samle tilgjengelig informasjon om matintoleranse, samt skape et nettsamfunn og kokebok med funksjonalitet som kan forenkle hverdagen for mennesker med matintoleranse. Visjonen til Matsans er:
Gleden og drivkraften bak vår utvikling er mennesket.
1.3 Bakgrunn for prosjektet
Mat er hos noen assosiert med glede, sansebruk og positive opplevelser. Andre forbinder det med rutinepreg, kjedsomhet og negative opplevelser. En bevisstgjøring om hvordan man enkelt kan lage god mat, kan for noen snu de negative matopplevelsene til det positive. Mennesker med matintoleranse og matallergi opplever ofte begrensninger i utvalget, og trenger en tjeneste som forenkler tilgangen til matoppskrifter som ikke interagerer med deres matintoleranse. I dag finnes det også få og lite fokuserte samlingssteder med oppskrifter og relevant informasjon for mennesker med matintoleranse. Nettopp dette vil Matsans forandre på og tilby mennesker med matintoleranse den samme muligheten til å oppleve gode matopplevelser i hverdagen, som mennesker uten matintoleranse. Matsans vil tilby (1) gode matoppskrifter tilpasset brukernes matintoleranse, (2) et nettsamfunn, samt (3) fungere som en informasjonsportal om matintoleranse med hensikt i å gi bedre innsikt og forenkle hverdagen for mennesker med matintoleranse.
6
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
2. Systemkrav
2.1 Funksjonskrav
Funksjonskrav beskriver de funksjonelle kravene oppdragsgiver har, som gir utvikler anledning til å velge løsninger innenfor en definert sikkerhetsramme.
2.1.1 Brukerroller
Figur 2, kilde: drupalnorge.no
Brukerroller brukes til å justere sikkerheten og administreringen av nettstedet. En rolle beskriver en gruppe av brukere med bestemte privilegier definert under tillatelser. Systemet har hovedsakelig tre brukerroller som beskrives i de neste delkapitlene.
2.1.1.1 Bruker
Bruker er en besøkende person som har fått tilgang til nettstedet via internett.
2.1.1.2 Medlem
Medlem er en bruker som har opprettet et medlemskap til nettstedet for å få ekstra privilegier som en vanlig bruker ikke har. Privilegiene innebærer blant annet tilgang til mer innhold og funksjonalitet.
2.1.1.3 Administrasjon
Administrasjon er en administrator eller moderator av nettstedet. Denne brukerrollen utfører administrative oppgaver på nettstedet, og er som regel en driftsansvarlig eller ansatt person.
7
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
2.1.2 Krav til oppskrifter
Det finnes to typer oppskrifter:
o Matsans oppskrift, som er oppskrifter sendt inn av administrasjonen.
o ”Folkets oppskrifter”, som er skrevet og sendt inn av en bruker.
Innsendte oppskrifter har et sett med krav som det utdypes om videre i teksten.
2.1.2.1 Matsans oppskrift informasjon
Hver Matsans oppskrift skal være oppført med id (autogenerert), bilde, tittel, beskrivelse, tid, vanskelighetsgrad, antall enheter, enhetstype, ingredienser, fremgangsmåte og kilde.
2.1.2.2 ”Folkets” oppskrift informasjon
Hver brukersendt oppskrift skal ha id (autogenerert), tittel, beskrivelse, tid, vanskelighetsgrad, antall enheter, enhetstype, ingredienser, fremgangsmåte, og innsendernavn. Bilde er ikke påkrevd.
2.1.2.3 Tilleggsinformasjon til hver oppskrift
Hver oppskrift skal i tillegg bli oppført med følgende kriterier for å støtte oppunder funksjonaliteten på nettstedet:
- Anledning (middag, tilbehør, dessert, drikke og bakst) - Matintoleranse (melk, egg, fisk, skalldyr, nøtter, belgfrukt, glutenholdige
kornslag og sitrus)
2.1.2.4 Kommentarer
Hver oppskrift kan kommenteres av medlem eller administrasjon. Kommentarene vil bli listet opp under hver enkelte oppskrift.
2.1.2.5 Sikkerhetskontroll
Oppskrifter må gjennom en sikkerhetskontroll og bli godkjent av administrasjonen før de blir tilgjengeliggjort på nett.
Figur 4: dietsinreview.com
Figur 3, kilde: flickr.com
8
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
2.1.3 Krav til søkemotor
Det finnes to typer søk på nettstedet:
2.1.3.1 Søk etter stikkord
Ved søk etter stikkord skriver brukeren inn det stikkordet som det ønskes å søke på. For eksempel skriver brukeren ”kjøttboller” i søkefeltet listes det opp oppskrifter som inneholder ordet ”kjøttboller”.
Brukeren kan skrive inn flere stikkord om gangen og få fram oppskrifter som inkluderer alle stikkordene. For eksempel skriver brukeren ”biff sopp” i søkefeltet, listes det opp oppskrifter som inneholder både biff og sopp. Andre måter å skrive flere stikkord om gangen er med + (plusstegn) eller , (kommategn). For eksempel ”biff + sopp” eller ”biff, sopp” vil begge gi oppskrifter som både inneholder biff og sopp.
2.1.3.2 Valgalternativ søk
Bruker kan også navigere seg frem gjennom valgalternativer til ønsket oppskrift. For eksempel velger brukeren først alternativet ”Middag” og deretter ”Kjøtt”, blir søket innsnevret til de oppskriftene som tilhører kategorien middag og inneholder kjøtt. Følgende valgalternativer finnes: Fra venstremenyen: Matintoleranse: Melk, egg, fisk, skalldyr, nøtter, belgfrukt, kornslag, og sitrus. Inkluder eller ekskluder ”Folkets oppskrifter” alternativ. Fra underkategorien:
Kategori Underkategori
Middag Kjøtt, kylling, fisk og skalldyr, vilt, vegetar, pasta og ris, suppe, grill og annet.
Tilbehør Smårett, saus, marinade, dressing, kraft, og annet.
Dessert Frukt og bær, is og sorbét, fromasj og mousse, pudding og gele, krem og saus, og annet.
Drikke Smoothie og shake, kaffe og te, drink, varm drikke, og kald drikke.
Bakst Brød, gjærbakst, småbakst, røre, kake, og annet.
Figur 4, kilde: flickr.com
9
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
2.1.4 Krav til administrativ funksjonalitet
Vanlig besøkende har tilgang til å lese oppskrifter, artikler og forum på nettstedet. De kan også søke etter oppskrifter. Mens medlemmer og administrasjon vil i tillegg ha tilgang til administrativ funksjonalitet.
2.1.4.1 Innlogging
Tilgang til administrativ funksjonalitet skjer via autentisering og autorisasjon. Autentisering skjer gjennom akkreditiver for å bevise hvem du er (brukernavn og passord). Autorisasjon blir gitt gjennom roller, hvor de ulike rollene blir tildelt et sett med privilegier.
2.1.4.2 Utlogging
Har du logget inn, skal det være mulig å logge seg ut via en knapp eller lenke.
2.1.4.3 Skrive kommentar
Medlem og administrasjon kan skrive kommentarer på alle oppskriftene.
2.1.4.4 Sende inn til ”Folkets oppskrifter”
Administrasjon og medlemmer kan sende inn oppskrifter til ”Folkets oppskrift” via et eget
skjema, forutsatt at innsender innfrir kravene til ”Folkets oppskrift”.
2.1.4.5 Sende inn til Matsans oppskrifter
Administrasjon kan sende inn oppskrifter til ”Matsans oppskrifter” via et eget skjema,
forutsatt at innsender innfrir kravene til ”Matsans oppskrift”.
2.1.4.6 Godkjenne oppskrifter
Administrasjonen skal godkjenne samtlige innsendte oppskrifter før de blir tilgjengeliggjort
på nettstedet. Først når oppskriften er godkjent, vil den bli synlig for andre brukere.
2.1.4.7 Slette oppskrifter
Administrasjonen kan slette en oppskrift til enhver tid om behov for dette skal oppstå. Som
regel skjer dette allerede ved administrasjonens godkjenning av oppskriften. Når oppskriften
ikke blir godkjent, vil den bli slettet.
2.1.4.8 Endre oppskrifter
Administrasjonen kan endre en oppskrift om det skal oppstå behov for dette. Som oftest vil
denne endringen skje allerede ved sikkerhetskontrollen når oppskriften må godkjennes av
administrasjonen for å bli publisert.
2.1.4.9 Registrere seg
En bruker kan registrere seg og bli medlem for å få tilgang til utvidet funksjonalitet og
privilegier.
10
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
2.1.5 Krav til nettsamfunn
For å skape et nettsamfunn må det kunne diskuteres i et forum. Dette forumet skal helst være programmert fra bunnen av for å tilpasses resten av nettstedet best mulig, men det kan også være forhåndsimplementert eksternt.
2.1.5.1 Lese foruminnlegg
Alle kan lese foruminnlegg, hvis ikke det på forhånd er reservert til å vises for kun visse brukerroller.
2.1.5.2 Lage nytt forumemne
Administrasjon og medlem kan lage forumemner/tråder.
2.1.5.3 Skrive forumpost
Administrasjon og medlem kan skrive forumposter i forumemnene/trådene
2.1.5.4 Foruminnlegg
Et foruminnlegg består av enten et forumemne eller en forumpost. Hvert foruminnlegg består av en autogenerert id, tekst, forfatter og dato.
2.1.6 Andre krav
2.1.6.1 Dagen rett
”Dagens rett” velges automatisk fra oppskriftsdatabasen.
2.1.6.2 Tilfeldige retter
Automatisk utvalg av tilfeldige retter til nettstedets forside hentes fra oppskriftsdatabasen.
2.2 Tekniske krav
Utviklingsverktøy: Microsoft Visual Studio 2005.
Rammeverk: Microsoft.NET Compact Framework 2.0.
Operativsystem: Windows XP.
Utviklingsplattform: ASP.NET med C#.
Databasesystem: Microsoft SQL Server.
11
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
3. Rammekrav i systemet
3.1 Tilgjengelighet
Internetts styrke er at det er universelt. Tilgjengelighet for alle er essensielt, uavhengig av funksjonshemning. – Tim Berners Lee, oppfinner av World Wide Web.1 Design og virkemåte skal følge retningslinjene for universell utforming. Universell utforming vil si fysisk utforming som gjør at nettstedet kan brukes av alle mennesker, i så stor utstrekning som mulig, uten behov for ytterligere individuell tilpassing. Nettstedet skal bli utformet med utgangspunkt i at alle kan bruke det, uavhengig av funksjonsnivå. Retningslinjene som skal tas hensyn til er fra Web Accessibility Initiative (WAI) ved World Wide Web Consortium (W3C) som er en standard for tilgjengelighet. WAI-retningslinjene er å finne på http://www.w3.org/wai.
Nettstedet vil ta hensyn til følgende hovedprinsipper tatt fra WAI:
Lyd og visuelt innhold - Inkluder alternativer til lyd og visuelt innhold. (Bildetekst)
Farger – Ikke gjør sidene avhengig av farge.
HTML og stilark – Bruk HTML-markering og stilark, og bruk dette korrekt.
Språk – Spesifiser språk og språkbruk.
Tabeller – Lag tabeller som kan transformeres stilfullt.
Flimring/blinking – Aldri flimring eller blinking med frekvenser på 4 – 59 blink i
sekundet.
Navigering – Lag sider som er maskinvareuavhengige. Bruk av både mus og tastatur.
W3C-teknologi – Bruk W3C-teknologi og følg retningslinjene.
Navigasjonsmekanismer – Ha klare navigasjonsmekanismer.
Språk – Sørg for at språket i dokumentene er tydelig og lettfattelig.
3.2 Sikring mot tap eller ødeleggelse av data
Data kan bli tapt eller ødelagt ved hendelser som virus, hacking eller ved fysisk ødeleggelse av datamaskinen.
For å sikre konfidensialitet vil prosjektet ta i bruk brukerkontoer for tilgang.
Sikkerhetskopier vil bli tatt for å sikre mot tap av data.
Datamaskiner med prosjektet skal være beskyttet med brannmur og virusbeskyttelse for sikring mot ødeleggelse av data.
1 www.helsedirektoratet.no/vp/multimedia/archive/00002/InternettForAlle-v2_o_2064a.pdf
12
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
3.3 Sikring mot tyveri eller misbruk av data
Data kan bli stjålet eller misbrukt. Dette skal bli hindret ved:
Å ta hensyn til personvern slik at data ikke blir misbrukt. For eksempel ved hjelp av kryptert data.
Autentisering. Prosjektet skal sikres gjennom autentifisering av brukerne som forsøker å få aksess, dvs. gjennom brukerkontoer med tilhørende brukernavn og passord.
3.4 Kapasitet
3.4.1 Datakapasitet
Kapasiteten på databasen blir kun begrenset av lagringskapasiteten på den enkelte maskin som prosjektet kjøres på. Databasen kommer til å få en konstant vekst når nettstedet blir offisielt, spesielt kommer tabellen Oppskrifter til å vokse.
3.4.2 Brukerkapasitet
Nettstedet skal være på en server som klarer å håndtere opptil 1000 brukere samtidig. Det vil starte i det små og forhåpentligvis vokse når flere oppdager nettstedet. For å vite hva serveren tåler, vil det være en konstant oppfølging av statistikker tilknyttet nettstedet.
3.5 Fremtidig utvikling av systemet
Prosjektet skal lages og dokumenteres på en slik måte at det senere er tilrettelagt og
klargjort for videreutvikling.
3.6 Bruker og brukervennlighet
Prosjektet skal være til bruk for alle som har internettaksess og besøker nettstedet.
Webdesignet skal oppnå en høy grad av brukbarhet når innholdet presenteres, samtidig
som det er i tråd med gruppens visuelle profil og tilfredsstiller de kravene som er satt i
forhold til tilgjengelighet.
13
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
4. Logisk datamodell
Et UML diagram vist gjennom de forskjellige brukernivåene fra prosjektet.
Figur 5: Logisk datamodell
14
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
5. Utvidelse
Prosjektet har stort potensial for videreutvikling.
5.1 Funksjonskrav
Følgende funksjonskrav presenteres som forslag til videre utvidelse av systemet.
5.1.1 Krav til oppskrifter
Bruker vil ha mulighet til å endre antall porsjoner/enheter, og se mengde på ingredienser tilpasset dette.
Hver oppskrift kan oppleves i RSS.
Hver oppskrift kan oppleves i utskriftsvennlige sider.
Bruker kan tipse venner om oppskrifter.
Medlem har mulighet til å samle oppskrifter i en egen kokebok tilknyttet medlemmets profil.
Medlem kan laste opp og oppdatere bilde på oppskrifter.
Medlem kan endre skriftstørrelsen på oppskrifter.
Medlem kan velge ”Legge ut oppskrift på profil i Facebook”.
5.1.2 Krav til søkemotor
Søk i oppskriftene basert på næringsstoffbehov.
Eksempel på næringsstoffer: Karbohydrat, protein, umettet fett, mettet fett osv.
Søk i oppskriftene basert på kostholdsgruppe.
Eksempel på kostholdsgruppe: Gravide, ammende, overvektige og fedme,
undervektige, vegetarianere, idrettsutøvere og studenter.
Eksempel på søk: En idrettsutøver ønsker seg en oppskrift tilpasset valgte kategori.
Søket vil returnere oppskrifter som har ekstra protein og lav fettprosent.
Legge til ”Søk med Matsans” i Firefox sin søkefunksjon.
Å finne alle oppskrifter som inneholder to eller flere ord som er søkt på som stikkord.
Bedre feilhåndtering ved søk.
Å søke oppskrifter sammen med valgt matintoleranse.
Å kunne sortere søkeresultater på valgte kriterier, for eksempel etter stikkord som
vises i tittel, eller basert på tid.
5.1.3 Krav til administrativ applikasjon
Medlem kan opprette og vedlikeholde sin egen matblogg.
Medlem kan tilpasse nettstedet i webparts, tema og stil som de ønsker å se når de er
innlogget.
Medlem har en egen kokebok med samlede oppskrifter fra nettstedet.
Moderator skal trykke på en ”Er du sikker på at du vil slette oppskrift?” advarsel når
de trykker på ”Slett knappen”.
Vise matintoleranse på ”Sjekk oppskrift” siden, og ikke bare på ”Endre oppskrift”
siden.
15
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
5.1.4 Krav til nettsamfunn
Medlem kan endre og slette sitt foruminnlegg.
Administrator kan endre og slette foruminnlegg.
Bruker kan søke blant foruminnlegg.
Mulighet til å sette på og av en forumtråd til toppen av forumoversikten. I
oppegående forumer per i dag kalles dette for en ”sticky tråd”2.
5.1.5 Andre krav
Motta nyhetsbrev.
Ti-på-topp liste for mest sette, best likte og mest anbefalte oppskrifter.
Tett-på-nett funksjonalitet for besøk av ernærings- og andre lignende eksperter som
kan svare på brukernes innsendte spørsmål.
5.2 Tekniske krav
Implementering av mobiltjeneste for å sende oppskrifter til mobilen.
Bruk av Microsoft Server for større databaser.
Registrering av domene http://www.matsans.no.
Lagring av Matsans på en bra server.
Figur 6, kilde: dot.state.mn.us
2 http://en.wikipedia.org/wiki/Bump_(Internet)#Sticky_threads (28.05.09)
16
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
6. Krav til dokumentasjon
6.1 Dokumentasjon
Dokumentasjon som genereres fra prosjektet og arbeidsprosessene skal mer eller mindre følge skolens dokumentasjonsstandard3. Det skal i løpet av prosjektperioden føres dagbok over hva som blir gjort, utfordringer og løsninger, det ferdige prosjektet skal dokumenteres gjennom følgende kategorier. Styringsdokumenter:
Prosjektskisse
Prosjektdagbok
Forprosjektrapport
Arbeidsplan og fremdriftsplan
Overordnet kravspesifikasjon Sluttdokumentasjon:
Prosessrapport
Produktdokumentasjon
Testrapport
Kravspesifikasjon
Brukerdokumentasjon (for ansatte og opplæring)
6.2 Krav til kode
Bruk av ASP.NET kontroller (Label, TextBox osv.), metoder og variabler, skal ha naturlige navn i forhold til den konteksten de har. For eksempel en tekstboks med input for navn må kalles ”navnTextBox”.
Kodefilene skal kommenteres i henhold til C# XML standard som det er støtte for i C# kompilatoren.
Figur 7, kilde: thecontentwrangler.com
3 http://www.iu.hio.no/~ulfu/hovedprosjekt/dokumenter/dokumentasjonsstandard.pdf
17
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
7. Dataordbok
Ressurs: http://dataleksikon.idg.no/
.NET
1) '/dått nett/ En forretningsstrategi og en utviklingsplattform fra
Microsoft bestående av et sett med programapplikasjoner,
programmeringsverktøy og ulike tjenester for å bygge det Microsoft
kaller neste generasjon XML-baserte Web-tjenester (Web Services) og andre
programvareapplikasjoner. .Net gjør det mulig for programvareutviklere å lage applikasjoner både
for Windows og Web, samt komponenter og XML-baserte Web-tjenester. Det er mulig å lage .Net-
kompatible applikasjoner i flere ulike objekt-orienterte programmeringsspråk, for eksempel C# (c
'sharp'). Se J2EE, XML, SOAP, UDDI, C#.2) Toppnivådomene (i likhet med f.eks. .no og .com), som
brukes i Internetts domenesystem (DNS -- Domain Name System).
ASP.NET
Active Server Pages-teknologi for .NET-rammeverket, og et sett med teknologier for Web-utvikling,
markedsført av Microsoft. Programmere kan bruke ASP.NET til å bygge dynamiske Web-sider, -
applikasjoner og XML-Web-tjenester.
C#
/si sharp/ Et komponent-orientert programmeringsspråk i C/C++-familien, introdusert av Microsoft
som en del av selskapets .Net-strategi, for bygging av applikasjoner som tar i bruk Web-tjenester.
CSS
Cascading Style Sheet. En standard utviklet av World Wide Web Consortitum (W3C), som ved hjelp
av såkalte stilark gjør det mulig å definere hvordan en Web-side skal se ut. Et stilark i CSS forteller
hvordan ulike elementer på Web-siden skal se ut, for eksempel skrifttyper, overskrifter, osv. Stilarket
kan tilordnes en hvilken som helst Web-side. "Cascading" betyr at det er mulig å tilordne mer enn ett
stilark til én Web-side. En stor fordel ved å bruke CSS er at Web-designeren kan endre utseendet på
et stort antall Web-sider samtidig ved å kun endre ett stilark (for eksempel endre skriftstørrelsen
eller -fargen til alle overskrifter på Web-siden). Det finnes ulike versjoner av CSS-standarden,
definert av W3C: CSS1 og CSS2. Sistnevnte bygger på CSS1, og er bakoverkompatibel med CSS1. Du
finner informasjon om CSS på www.w3c.org.
Database
1) En samling data strukturert og organisert på en slik måte at det er enkelt å hente ut de dataene
man ønsker. En database består av to elementer; poster og felter. En post kan være f.eks. all
informasjon som er registrert om en person, mens et felt kan være f.eks. telefonnummeret til
personen. Dersom en d. har flere registre (f.eks. et poststedsregister og et kunderegister) kalles den
gjerne for en relasjonsdatabase. Det er da definert visse relasjoner mellom postene i de forskjellige
registrene. Man prøver i en relasjonsdatabase å oppnå at feltverdier bare er lagret på ett sted i
databasen, noe som reduserer behovet for lagringsplass og øker hastigheten.
Figur 8, kilde: dataleksikon.idg.no
18
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
Domene
eng. domain. 1) Innen kommunikasjon, alle ressurser underlagt kontroll av ett enkelt datasystem. I
et lokalnettverk (LAN) er et d. et "undernettverk" bestående av en gruppe klienter og tjenere,
underlagt kontroll av en sikkerhetsdatabase. Oppdeling av lokalnettverk i d. øker både ytelse og
sikkerhet. 2) Innen databasebehandling, alle mulige verdier som et bestemt felt i databasen
inneholder, for alle poster i hele databasen. 3) I et hierarki, en navngitt gruppe som har kontroll over
alle grupper under seg (disse undergruppene kan igjen være d.). 4) Et navn som identifiserer en
organisasjon eller lignende på Internett. F.eks. er adressen www.pcworld.no et domenenavn hvor
"no" er det såkalte toppnivådomenet som identifiserer at Web-tjeneren befinner seg i Norge,
"pcworld" er domenet registrert av PC World Norge, mens "www" identifiserer en bestemt tjener
under pcworld-domenet. Domenenavnet er knyttet til en IP-adresse, som lokaliseres ved hjelp av en
DNS-tjener. Domenenavn gjør det lettere å huske adressene til ulike tjenester på Internett. Se
domene-navn.
HTML
Hypertext Markup Language. Navnet på språket som benyttes for å lage dokumenter på World Wide
Web. Det aller meste vi ser av Web-sider når vi surfer på Internett er laget i HTML. HTML er et
standardisert språk basert på SGML, og HTML-baserte dokumenter kan opprettes og redigeres med
en rekke ulike verktøy – alt fra en enkel teksteditor (f.eks. Notepad/WordPad i Windows) til
avanserte WYSIWYG redigeringsverktøy som f.eks. Microsoft Frontpage og Macromedia
Dreamweaver. HTML benytter "tags" som f.eks.
og
for å strukturere tekst i overskrifter, avsnitt, lister og tabeller, hypertekst-linker, osv. HTML 4.0 er i skrivende stund (2006) den siste versjonen av HTML, og støtter en rekke nye funksjoner som bl.a. tabeller og formularer, skripting, multimedia, bedre støtte for internasjonale tegnsett og visning av tekst, samt støtte for såkalte "style sheets". Sistnevnte er en svært viktig nyhet som lar Web-designeren definere et sett med stiler som beskriver en Web-sides layout, farger, skrifttyper, osv., uten å måtte kode dette manuelt for hver eneste nye Web-side som lages. Se PHP, XML, HTTP. Nettverkstjener
eng. server. Kalles også tjener, tjenestemaskin. Hovedmaskinen i et nettverk av flere datamaskiner
(klienter). Dedikerte nettverkstjenere kan utføre oppgaver på vegne av klientene, mens ikke-
dedikerte nettverkstjenere i tillegg kan fordele oppgaver mellom dem. Blant de oppgaver som
utføres av en nettverkstjener er sikkerhetskopiering, tyngre beregningsoppgaver og adgangskontroll
(til nettverket). Nettverkstjeneren er gjerne utstyrt med en kraftig CPU, og det er i dag vanlig at den
også har betydelig lagringskapasitet. Klienter kan aksessere nettverkstjeneren og hente ut, legge inn
eller endre informasjon som ligger lagret der. En nettverkstjener kan enten være en kraftig PC eller
en mellom- eller stormaskin og kan -- i større nettverk -- være koblet opp mot andre
nettverkstjenere, mellom- eller stormaskiner. Det finnes flere typer nettverkstjenere, inkludert fil- og
utskriftstjenere, applikasjonstjenere, e-posttjenere, databasetjenere og Web-tjenere.
Server
Se nettverkstjener.
19
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
Stilark
eng. style sheet. Et stilark definerer hvordan et dokument skal se ut, som for eksempel skrifttype, -
størrelse og -farge, samt layout'en til ulike deler av en side. Dette inkluderer blant annet plassering
av rammer, mellomrom, linjeavstand, osv. Betegnelsen stilark kommer fra grafisk bransje, og brukes
nå også innenfor Web-design. Se CSS.
SQL
/sikvel/ eller /ess-ku-ell/ Structured Query Language. Standard språk for å søke/hente informasjon
fra en database, gjerne lagret sentralt på en databasetjener. Den originale versjonen ble utviklet av
IBM i 1974-75, og SQL ble først introdusert kommersielt i 1979 av Oracle.
UML
Se Unified Modeling Language.
Unified Modeling Language
fork. UML. Et språk som brukes for å spesifisere, visualisere, konstruere og dokumentere
programvaresystemer. UML skal forenkle programdesignprosessen. Språket ble utviklet av Ivar
Jacobson, Grady Booch og Jim Rumbaugh hos Rational Software, og er nå en akseptert standard fra
OMG (Object Management Group).
URL
Uniform Resource Locator. Betegnelsen på måten dokumenter og andre ressurser på Internett
adresseres. F.eks. en hjemmeside på Internett adresseres på følgende måte:
Http://www.lekanger.no. Denne URLen består av prefikset http:// som betyr at adressen er til en
side på en World Wide Web-tjener, mens lekanger.no er domene-navnet til Web-tjeneren. Etter
dette kan det evt. komme katalognavn og filnavn. Andre typer URLer kan begynne på f.eks. file:// (en
fil som ligger lagret lokalt), ftp:// (FTP-tjener), osv. – avhengig av hva slags ressurs du ønsker tilgang
til.
Web-tjenester
eng. Web Services. Web-tjenester baserer seg på teknologier som bl.a. XML og SOAP, og gjør det
mulig å lage modulære programapplikasjoner som kan lokaliseres og kjøres fra hvor som helst via
Internett. En programapplikasjon kan altså via Internett koble seg opp mot en Web-tjeneste, f.eks.
en tjeneste som utfører prosessering av kredittkorttransaksjoner, gir informasjon om aksjekurser
eller flyruter, osv. Det er også mulig for Web-tjenester å "snakke med" andre Web-tjenester, og få til
sømløs integrasjon mellom programapplikasjoner internt i bedriften, eller hos kunder og eksterne
partnere. Dataene som overføres til/fra Web-tjenesten er i XML-format, og SOAP-protokollen er en
metode for overføring av dises dataene via standard Web-protokoller som TCP/IP. Funksjonene som
tilbys av en bestemt Web-tjeneste beskrives ved hjelp av Web Services Description Language
(WSDL). Lokalisering av en Web-tjeneste kan skje via UDDI -- Universal Discovery, Description and
Integration. UDDI er en slags katalogtjeneste hvor alle de ulike Web-tjenestene som er tilgjengelig er
beskrevet, inkludert hvor disse Web-tjenesten finnes. Se SOA, XML, UDDI, SOAP, WSDL, .Net og J2EE.
20
KRAVSPESIFIKASJON Matsans - matsiden for matintoleranse
8. Referanseliste
Torvatn, Ann-Mari (2007). Dokumentasjonsstandard. http://www.iu.hio.no/~ulfu/hovedprosjekt/dokumenter/dokumentasjonsstandard.pdf
http://student.iu.hio.no/hovedprosjekter/2005/data/31/00_www/kravspekk.php
[22.03.2009] http://student.iu.hio.no/hovedprosjekter/2006/data/28/linker/kravspek.htm [21.03.2009]
2
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
3
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Forord
Dette dokumentet er produktdokumentasjonen til Matsans. Den skal gi informasjon om
installasjon, drift og feilsøking. Den skal også beskrive programmets oppbygging, virkemåte
og funksjonalitet.
Produktdokumentasjonen er beregnet for de datakyndige som skal installere, konfigurere,
vedlikeholde og drifte systemet. Dokumentasjonen kan også være nyttig for dem som skal
markedsføre systemet eller drive brukerstøtte.
Dokumentets innhold vil gi mest utbytte for de leserne som har kompetanse innenfor .NET-
miljøet, men det vil også være nyttig for de med kun en generell forståelse for
datateknologi.
Figur 1, kilde: rockritic.ro
4
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Innholdsfortegnelse
1. Bakgrunn ......................................................................................................................................... 6
1.1 Beskrivelse av produktet ............................................................................................................... 6
1.2 Bakgrunn for produktet ................................................................................................................ 6
1.3 Samsvar mellom kravspesifikasjon og produkt............................................................................. 6
2. Teknologier ..................................................................................................................................... 7
2.1 Rammebetingelser ........................................................................................................................ 7
2.2 Utviklingsmiljø ............................................................................................................................... 7
2.3 Nettlesere ..................................................................................................................................... 7
2.4 Beskrivelse av teknologier ............................................................................................................ 8
2.4.1 ASP.NET .................................................................................................................................. 8
2.4.2 C# ........................................................................................................................................... 8
2.4.3 CSS .......................................................................................................................................... 8
2.4.4 HTML ...................................................................................................................................... 8
2.4.5 Microsoft SQL Server ............................................................................................................. 8
2.4.6 SQL ......................................................................................................................................... 8
3. Installasjon ...................................................................................................................................... 9
3.1 Windows XP .................................................................................................................................. 9
3.2 Installasjon av Visual Studio 2008, SQL Server og .NET Framework ............................................. 9
3.3 Installasjon av IIS og ASP.NET ....................................................................................................... 9
4. Datastrukturer og oppbygning ...................................................................................................... 11
4.1 Arkitektur .................................................................................................................................... 11
4.2 Databasen ................................................................................................................................... 11
4.2.1 ASP.NET Membership .......................................................................................................... 12
4.2.2 Bilde ..................................................................................................................................... 13
4.2.3 Forum ................................................................................................................................... 13
4.2.4 ForumEmne .......................................................................................................................... 13
4.2.5 ForumPost ............................................................................................................................ 14
4.2.6 Kategori ................................................................................................................................ 14
4.2.7 Kommentar .......................................................................................................................... 14
4.2.8 Matintoleranse ..................................................................................................................... 15
4.2.9 Oppskrifter ........................................................................................................................... 15
4.2.10 Underkategori .................................................................................................................... 16
4.3 Masterpage og ContentPageHolder ........................................................................................... 16
5
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.3.1 Masterpage.master .............................................................................................................. 16
4.4 Filstruktur innen .NET *.aspx og *.aspx.cs filer ........................................................................... 17
4.4.1 Artikler ................................................................................................................................. 17
4.4.2 Default .................................................................................................................................. 19
4.4.3 EndreOppskrift ..................................................................................................................... 21
4.4.4 Forum ................................................................................................................................... 23
4.4.5 ForumEmne .......................................................................................................................... 24
4.4.6 ForumEmneListe .................................................................................................................. 26
4.4.7 Innlogging ............................................................................................................................. 27
4.4.8 NyBruker .............................................................................................................................. 29
4.4.9 NyOppskrift .......................................................................................................................... 30
4.4.10 NyttEmne ........................................................................................................................... 32
4.4.11 NyttForum .......................................................................................................................... 33
4.4.12 Om ...................................................................................................................................... 35
4.4.13 Oppskrift ............................................................................................................................ 36
4.4.14 Oppskrifter ......................................................................................................................... 39
4.4.15 SendNyOppskrift ................................................................................................................ 43
4.4.16 SjekkOppskrift .................................................................................................................... 45
4.4.17 Soek .................................................................................................................................... 47
4.4.18 Usett ................................................................................................................................... 49
4.5 Konfigurasjonsfilen web.config ................................................................................................... 51
4.6 Mapper og deres filer.................................................................................................................. 52
4.6.1 App_Code mappen .............................................................................................................. 52
4.6.2 App_Data mappen ............................................................................................................... 52
4.6.3 App_Themes mappen og stilark .......................................................................................... 52
4.6.4 Bin mappen .......................................................................................................................... 53
4.6.5 FreeTextBox mappen ........................................................................................................... 53
4.6.6 Images mappen .................................................................................................................... 53
4.6.7 UserControl mappen ............................................................................................................ 53
4.7 Favicon.ico .................................................................................................................................. 54
5. Oppsummering ............................................................................................................................. 55
6. Referanseliste ............................................................................................................................... 56
7. Vedlegg: Eksempel på kildekode i aspx.cs fil ................................................................................ 57
7.1 Oppskrift.aspx.cs ......................................................................................................................... 57
6
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
1. Bakgrunn
1.1 Beskrivelse av produktet
Matsans er et nettsted designet i form av en kokebok med oppskrifter tilpasset mennesker med matintoleranse. Nettstedet inneholder også lenker til informasjon om matintoleranse og et forum for å utveksle erfaringer og kunnskap. På sikt ønsker Matsans å bli et offentlig organ for matintoleranse som inkluderer et brukerdrevet nettsamfunn.
1.2 Bakgrunn for produktet
Mat er hos noen assosiert med glede, sansebruk og positive opplevelser. Andre forbinder det med rutinepreg, kjedsomhet og negative opplevelser. En bevisstgjøring om hvordan man enkelt kan lage god mat, kan for noen snu de negative matopplevelsene til det positive. Mennesker med matintoleranse og matallergi opplever ofte begrensninger i utvalget, og trenger en tjeneste som forenkler tilgangen til matoppskrifter som ikke interagerer med deres matintoleranse. I dag finnes det også få og lite fokuserte samlingssteder med oppskrifter og relevant informasjon for mennesker med matintoleranse. Nettopp dette vil Matsans forandre på og tilby mennesker med matintoleranse den samme muligheten til å oppleve gode matopplevelser i hverdagen, som mennesker uten matintoleranse. Matsans vil tilby (1) gode matoppskrifter tilpasset brukernes matintoleranse, (2) et nettsamfunn, samt (3) fungere som en informasjonsportal om matintoleranse med hensikt i å gi bedre innsikt og forenkle hverdagen for mennesker med matintoleranse.
1.3 Samsvar mellom kravspesifikasjon og produkt
Produktet har blitt bygget opp med tett oppfølging av kravspesifikasjonen. Alle arbeidsoppgaver har blitt opprettet med bakgrunn i de funksjonelle kravene utarbeidet i kravspesifikasjonen. Kravspesifikasjonen har fungert som en veiviser og rettesnor for utviklingen gjennom hele produktutviklingsprosessen.
7
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
2. Teknologier
2.1 Rammebetingelser
Arbeidsgiver hadde ingen krav eller betingelser i forhold til valg av teknologi, så det ble opptil gruppen selv å avgjøre utviklingsverktøy og teknologier. Valget falt på ASP.NET. Dette skyldes at .NET virker spennende, samtidig som etterspørselen er stor i arbeidslivet. .NET gir også muligheten til å utvikle avanserte web applikasjoner enkelt og raskt siden rammeverket inneholder mange ferdige komponenter for denne typen oppgaver. Ved starten av prosjektet hadde ingen i prosjektgruppen kompetanse innen .NET-miljøet, så dette ble en ekstra utfordring.
2.2 Utviklingsmiljø
Det utviklingsverktøyet som gruppen anser som mest oppdatert og foregående for utvikling av ASP.NET, er Visual Studio 2008. Dette ble derfor prosjektets valg av utviklingsverktøy.
2.3 Nettlesere
Webapplikasjonen som utvikles bør kunne oppleves optimalt av brukeren i forskjellige nettlesere uten merkbart store forskjeller. Matsans har blitt testet i stort sett Internet Explorer (7.0.5730.13) og Firefox (3.0.6), og det er ikke registrert noen merkbare forskjeller. Derfor er de to nettleserne vurdert som gode nok til å kunne brukes opp mot nettstedet. Nettleserne kan lastes ned og installeres fra følgende lenker: Nettleser Logo Hjemmeside
Firefox
Figur 3, kilde: meowns.com
http://firefox.no/
Internet Explorer
Figur 4, kilde: pcremix.com
http://www.microsoft.com/windows/products/winfamily/ie/default.mspx
Figur 2, kilde: capitalistech.com
8
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
2.4 Beskrivelse av teknologier
Her beskrives teknologiene som er benyttet ved utvikling av Matsans.
2.4.1 ASP.NET
ASP.NET er et rammeverk for web-applikasjoner utviklet av Microsoft for å gi programmerere muligheten til å bygge dynamiske web-sider.
2.4.2 C#
C# er et programmeringsspråk som passer bra med ASP.NET for å utvikle websider. C# er en blanding mellom C++ og JAVA. Et alternativ var programmeringsspråk Visual Basic, men C# ble valgt. Dette skyldes at C# ligner mye på Java, som er det språket gruppen kjenner til best fra før av og medfører en kortere læringskurve.
2.4.3 CSS
Cascading Style Sheet eller stilark er en fil som programmereren styrer utseendet og designet til websiden. Stilarket gjør koden mer strukturert og oversiktlig når man kan separere koden bak design og funksjonalitet.
2.4.4 HTML
HyperText Markup Language er et markeringsspråk som benyttes for å lage webdokumenter/nettsider. HTML benyttes for å strukturere informasjon på internett; man angir tekst som overskrift, avsnitt, lister og så videre. HTML er en internasjonal standard og spesifikasjonene blir opprettholdt av The World Wide Web Consortium (W3C).
2.4.5 Microsoft SQL Server
Microsoft SQL Server er et
relasjonsdatabaseadministrasjonssystem utviklet av
Microsoft. Spørrespråket som benyttes er Transact-SQL, en
implementasjon av ANSI/ISO standarden Structured Query
Language, som benyttes av både Microsoft og Sybase.
2.4.6 SQL
Structured Query Language er et språk som benyttes til å formulere og kjøre operasjoner
opp mot relasjonsdatabaser. De fleste av dagens databasesystemer tilbyr SQL som
kontrollgrensesnitt.
Figur 5, kilde: alspaconsulting.com
9
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
3. Installasjon
For å kjøre prosjektet med tanke på videreutvikling, trenger du å installere Visual Studio 2008 og SQL Server. For å tilgjengeliggjøre prosjektet på internett, trenger du å installere en webserver, som for eksempel IIS. For å lese .aspx filer på internett, trenger du å installere ASP.NET og .NET Framework. Programmene og teknologien må kjøres på et Microsoft Windows operativsystem, eksempelvis Windows XP.
3.1 Windows XP
Windows XP ble valgt av flere grunner. For det første er det tilgjengelig gratis fra msdn gjennom skolens avtale med Microsoft. Prosjektet benytter seg av Microsoft teknologi, noe som utelukker bruk av Linux eller Unix. Et alternativ til Windows XP er Windows Server, men Windows XP ble valgt grunnet gruppens erfaringer og preferanser.
3.2 Installasjon av Visual Studio 2008, SQL Server og .NET Framework
Disse tre enhetene ligger under samme installasjons-CD til Visual Studio 2008. SQL Server vil bli installert automatisk sammen med Visual Studio 2008. .NET Framework bør også installeres når alt blir installert.
3.3 Installasjon av IIS og ASP.NET
Internet Information Services (IIS) er Microsoft sin egen webserver som følger med
Windows XP.
For å installere IIS, putter du i Windows XP installasjon CD. Deretter åpner du Control Panel -
> Add or Remove Programs -> Add/remove Windows Components. Kryss av i boksen ved
siden av Internet Information Services (IIS) og klikk på ”Next” for å starte installeringen.
Sjekk at serveren er oppe og kjører ved å skrive inn http://localhost i adresselinjen på din
nettleser. Hvis ikke serveren er oppe må du gå til Start menu -> All programs ->
Administrative Tools -> Internet Information Services. Velg datanavn -> Web Sites -> Default
Web Site. Klikk på ”Default Web Site” og deretter ”Play”-knappen for å kjøre serveren.
ASP.NET må installeres separat etter at IIS er blitt installert. Dette gjøres ved følgende:
Gå til stedet hvor du har installert .NET Framework,
’C:\Windows\Microsoft.NET\Framework\v1.1.4322’ eller lignende.
Åpne MSDOS Command Prompts (Start Menu -> Start -> Run og skriv inn ’cmd’).
Skriv: ’%windir%\Microsoft.NET\Framework\vxxxxxx\aspnet_regiis.exe –i’ hvor vxxxxx er din
versjon, som du finner når du går til ’C:\Windows\Microsoft.NET\Framework\’.
Åpne Run fra Start menu og skriv inn: ’regsvr32
%windir%\Microsoft.NET\Framework\vxxxxxx\aspnet_isapi.dll’.
Figur 6, kilde: techslant.com
10
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Nå skal du kunne se .aspx sider i web mappen ved å gå til http://localhost. Eller om du har
åpnet portnummeret til web-serveren på ruteren i nettverket kan du alternativt skrive inn
’http://<din IP-adresse>:<portnummer>’. Eksempelvis var Matsans sin adresse
http://80.203.26.128:8080/Matsans.
11
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4. Datastrukturer og oppbygning
4.1 Arkitektur
Figur 7: Dataarkitektur
Her ser du den typiske dataflyt-arkitekturen til en web applikasjon. Prosjektet Matsans er
bestående av én database del og én server del. Databasedelen beskrives i neste avsnitt,
mens serverdelen består av aspx-filer tilhørende prosjektet.
4.2 Databasen
Matsans sin database består av 20 tabeller. Hvorav 11 tabeller tilhører ASP.NET
Membership og 9 tabeller er egengenererte.
Figur 8: Egengenererte tabeller
12
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Figur 9: ASP.NET Membership tabeller
4.2.1 ASP.NET Membership
ASP.NET 2.0 har inkludert et eget system for medlemskap. Dette kan implementeres til
enhver ASP.NET 2.0 web-side som har en database bak seg. Den kontrollerer ikke bare
innlogging, men tilbyr også en rollebasert autentisering med profiler. Dette gjør
implementeringen enklere da kritiske og tidkrevende komponenter er kodet på forhånd og
klart til å tas i bruk. Dette innloggingsystemet benyttes i Matsans, hvorav ASP.NET
Membership består av 11 tabeller.
13
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.2.2 Bilde
Tabellen Bilde inneholder en autogenerert primærnøkkel som heter BildeID. Denne tabellen
lagrer URL-en til et bilde som tilhører hver oppskrift. En oppskrift kan ha flere bilder.
Eksempel på BildeURL er: ’LA397 lam i wok 0306.jpg’.
4.2.3 Forum
Tabellen Forum inneholder en autogenerert primærnøkkel som heter ForumID. Denne
tabellen vises på forsiden av forumet. Eksempel på forumnavn og beskrivelse er:
”Oppskrifter – Del, søk og diskuter oppskrifter.” Dette er også kjent som en forumkategori.
4.2.4 ForumEmne
Tabellen ForumEmne inneholder en autogenerert primærnøkkel som heter EmneID. Denne
tabellen viser emnene til et forum. Et forum kan ha flere emner. Eksempel på forumemne,
tittel og tekst er: ”Dagens oppskrift må prøves!” og ”I dag er det gulrotsuppe”. Dette er også
kjent som en forumtråd.
14
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.2.5 ForumPost
Tabellen ForumPost inneholder en autogenerert primærnøkkel som heter PostID. Denne
tabellen viser postene i et emne/tråd. Et emne kan ha flere poster. Eksempel på tekst i en
forumpost er: ”Dagens oppskrift er svinefilet teriyaki”.
4.2.6 Kategori
Tabellen Kategori inneholder en autogenerert primærnøkkel som heter KategoriID. Denne
tabellen lister opp oppskriftskategoriene. Eksempel på kategori er: ”Middag”.
4.2.7 Kommentar
Tabellen Kommentar inneholder en autogenerert primærnøkkel som heter KommentarID.
Denne tabellen lagrer kommentarene som blir skrevet av medlemmer under hver oppskrift.
For eksempel: ”Denne oppskriften er god med litt brunost”.
15
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.2.8 Matintoleranse
Tabellen Matintoleranse inneholder en autogenerert primærnøkkel som heter
MatintoleranseID. Denne tabellen registrerer om en oppskrift inneholder visse
matintoleransegrupper. For eksempel en oppskrift inneholder melk, egg eller korn.
4.2.9 Oppskrifter
Tabellen Oppskrifter inneholder en autogenerert primærnøkkel som heter OppskriftID.
Denne tabellen lagrer informasjon som tilhører oppskriften. Et eksempel på en oppskrift du
kan finne på Matsans er ”Ølbakt kylling” med beskrivelse av ingredienser, fremgangsmåte
og annen informasjon om oppskriften.
16
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.2.10 Underkategori
Tabellen Underkategori inneholder en autogenerert primærnøkkel som heter
UnderkategoriID. Denne tabellen lister opp underkategoriene til hver kategori. Det kan være
flere underkategorier under hver kategori. Et eksempel på underkategori er ”Kylling”, som
er en underkategori av kategorien ”Middag”.
4.3 Masterpage og ContentPageHolder
ASP.NET miljøet består av mye ferdiglagd funksjonalitet som forenkler byggingen av en
webapplikasjon. En av disse er en såkalt masterpage.
Masterpage-funksjonaliteten gjør det mulig å definere en felles struktur og grensesnitt med
elementer for siden din, som for eksempel tittel, navigasjon og bunnlinje. Deretter fungerer
masterpage som en mal for forskjellig innhold som kan plasseres inn i de forskjellige delene i
masterpage-layouten, enten det er tekstbiter eller aspx web form sider med unikt innhold.
4.3.1 Masterpage.master
Figur 10: Masterpage.master og dets ContentPlaceHolders.
17
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Matsans sin masterpage-fil heter Masterpage.master og består av tre reserverte deler i
layouten, hvilket betyr tre ContentPlaceHolders. Disse heter leftContent, rightContent og
sideContent. Masterpage-layouten er brukt som mal til alle aspx-sidene for å oppnå et
konsistent nettsted..
4.4 Filstruktur innen .NET *.aspx og *.aspx.cs filer
Som nevnt er de fleste ASP.NET webapplikasjonene bygget opp av trelagsarkitekturen
bestående av:
- Presentasjonslaget – Brukergrensesnitt og htmldesign i form av *.aspx filer.
- Forretningslogikklaget – Objektorientert programmering i code-behind, *.aspx.cs
filer.
- Databaselaget – Databasen.
Enhver side i en .NET-webapplikasjon består altså av to filer. En .aspx-fil, og en .aspx.cs-fil.
Aspx-filene inneholder html, javascript og aspx-kontrollere. Aspx.cs-filene inneholder selve
programmeringsdelen, det vil si all koden. I mitt tilfelle er koden skrevet i C#, men jeg kunne
også valgt Visual Basic.
Videre vil det følge en beskrivelse av hver fil fra nettstedet Matsans, samt ytterligere
kommentarer for det materialet fra filene som regnes som spesielt betydningsfull eller
vanskelig å forstå.
4.4.1 Artikler
Artikler.aspx og Artikler.aspx.cs
Figur 11: Artikler.aspx
18
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Funksjonalitet
Siden Artikler lister opp en lenkesamling med informasjon om:
- Matintoleranse og matallergi.
- Utdypende faktainformasjon om matvareinnhold.
Klasser og funksjoner
Klasse:
- public partial class Artikler : System.Web.UI.Page
Funksjoner:
- protected void Page_Load(object sender, EventArgs e)
Hvordan det fungerer
Artikler.aspx inneholder <asp:HyperLink>-lenker til forskjellige URL-adresser som beskriver
matintoleranse, matallergi og matvareinnholdslister. Når en lenke blir trykket på, vil URL-
adressen bli åpnet i en ny fane i nettleseren.
Framtidige punkter
I et fremtidig arbeid bør det utvikles funksjonalitet som registrerer bruken av denne
informasjonssamlingen. Det kan også være aktuelt å utføre spørreundersøkelser hos
brukerne for å vurdere hva som er positivt og negativt, slik at det positive kan bygges videre
på og det negative kan tenkes nytt rundt.
19
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.4.2 Default
Default.aspx og Default.aspx.cs
Figur 12: Default.aspx
Funksjonalitet
Default-siden er startsiden for Matsans og blir dermed det første du ser når du besøker
nettstedet. Derfor er det lagt ned mye arbeid i designet, slik at brukeren kan få et godt
førsteinntrykk. Her finner du:
- Dagens oppskrift vist øverst på siden
- Tilfeldige oppskrifter vist like under dagens oppskrift.
20
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Klasser og funksjoner
Klasser:
- public partial class Default: System.Web.UI.Page
Funksjoner:
- protected void Page_Load(object sender, EventArgs e)
o Initialiserer de andre funksjonene.
- private void setImages()
o Laster og setter opp bildene til menyen.
- private void buildDagens()
o Bygger opp, henter og klargjør dagens oppskrift fra databasen.
- private void buildDataList()
o Bygger opp, henter og klargjør tilfeldige oppskrifter fra databasen.
Hvordan det fungerer
Default.aspx siden har en DataList (dlDagens) som viser dagens oppskrift. Den er bygget
opp, tilkoblet til databasen og innhenter data som tittel, beskrivelse, bildeurl og lignende fra
funksjonen buildDagens() som ligger i Default.aspx. Det eksisterer også en til DataList
(dlOppskrifter) som ligger i Default.aspx siden som viser tilfeldige oppskrifter på denne
siden. Hver gang Default/startsiden blir bygd vil det bli fremvist nye tilfeldige oppskrifter.
I Default.aspx.cs blir dagens oppskrift autogenerert i buildDagens(). Det blir opprettet en
forbindelse med databasen, og en tilfeldig oppskrift blir hentet basert på dagens dato i en
sql-spørring. Deretter blir informasjon om oppskriften sendt til dlDagens (DataList) i
Default.aspx. Dette skjer også for dlOppskrifter (DataList), men forskjellen er sql-spørringen
henter inn tilfeldige oppskrifter hver gang.
Fremtidige punkter
Dagens oppskrift henter nå ut en tilfeldig oppskrift basert på dagens dato fra databasen
gjennom en sql-spørring. Den må i fremtiden hente oppskrift begrenset til kun godkjente
oppskrifter.
21
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.4.3 EndreOppskrift
EndreOppskrift.aspx og EndreOppskrift.aspx.cs
EndreOppskrift2.aspx og EndreOppskrift2.aspx.cs
Figur 13: EndreOppskrift.aspx
Funksjonalitet
På denne siden er det mulig for administratoren eller moderatoren å endre oppskrifter.
Denne funksjonaliteten er bra for å rette opp i feilinformasjon og skrivefeil.
Klasser og funksjoner
Klasser:
- public partial class EndreOppskrift : System.Web.UI.Page
Funksjoner:
- protected void Page_Load(object sender, EventArgs e)
o Initialisering av funksjoner.
- private void buildDataList()
o Bygger opp, henter og videresender gjeldende oppskrift til DataList.
- protected void btnEndre_Click(object sender, EventArgs e)
22
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
o Oppdaterer database med ny informasjon fra skjema.
- private string makeSqlOppskrifter()
o Henter ny informasjon om oppskrift fra DataList.
- private string makeSqlMatintoleranse()
o Henter ny matintoleranseinformasjon fra DataList.
- protected void btnTilbake_Click(object sender, EventArgs e)
o Sender brukeren tilbake til det stedet hvor brukeren var før denne siden ble
entret.
Hvordan det fungerer
EndreOppskrift.aspx er det samme som EndreOppskrift2.aspx.
EndreOppskrift.aspx.cs er omtrent det samme som EndreOppskrift2.aspx.cs.
Forskjellen er at tilbakeknappen på EndreOppskrift.aspx.cs sender deg tilbake til
SjekkOppskrift.aspx mens EndreOppskrift2.aspx.cs sender deg tilbake til Oppskrift.aspx.
I EndreOppskrift.aspx er det bygget opp en DataList (dlOppskrift) laget av komponenter som
TextBox, CheckBox og DropDownList, som sammen genererer et skjema. Til skjemaet blir
det lastet inn gjeldende oppskriftsinformasjon med bakgrunn i den oppskriftID-en som URL-
en inneholder. Denne oppskriftID-en sendes til EndreOppskrift.aspx.cs som returnerer
tilhørende oppskriftsinformasjon fra databasen.
Det finnes også to knapper i EndreOppskrift.aspx. Når ”Tilbake”-knappen blir trykket, vil
leseren bli sendt tilbake til hvor leseren kom fra. Når ”Oppdater”-knappen blir trykket, vil
databasen oppdateres med oppskriftsinformasjon fra de feltene som er endret. OppskriftID
blir sendt med som en identifikasjon for hvilken oppskrift det gjelder, som da oppdateres i
databasen.
Når EndreOppskrift.aspx.cs loades blir det først sjekket opp mot din brukerstatus, da man
må være moderator for å få aksess til denne siden. Dette utføres i funksjonen Page_Load().
Hvis du ikke er moderator, får du ikke aksess til denne siden og blir sendt til hovedsiden.
Skjemaet i DataListen på EndreOppskrift.aspx blir fylt opp med informasjon som er hentet
fra buildDataList() i EndreOppskrift.aspx.cs. Her blir det først opprettet en forbindelse til
databasen. Deretter blir oppskriftsinformasjon tilsvarende oppskriftID-en som ligger i URL-
en hentet fra databasen med sql-spørringer. Deretter blir denne informasjonen sendt inn og
fyller opp skjemaet i DataListen.
Når ”Endre”-knappen blir benyttet kjøres funksjonen btnEndre_Click(). Da blir det først
opprettet en forbindelse opp mot databasen. Oppskrift- og matintoleranseinformasjon blir
hentet gjennom makeSqlOppskrifter() og makeSqlMatintoleranse() fra skjemaet. Samtidig
blir det generert en sql-spørring som oppdaterer databasen med den nye informasjonen.
Denne setningen blir utført og oppdaterer databasen før forbindelsen blir stengt.
23
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.4.4 Forum
Forum.aspx og Forum.aspx.cs
Figur 14: Forum.aspx
Funksjonalitet
Når du trykker på ”Nettsamfunn” i menyen åpnes forumet. Her kan medlemmer diskutere
fritt om emnene:
- Mat og matlaging
- Oppskrifter
- Matintoleranse
- Annet
Klasser og funksjoner
Klasser:
- public partial class Forum : System.Web.UI.Page
Funksjoner:
- public void Page_Load(object sender, EventArgs e)
24
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Hvordan det fungerer
På Forum.aspx finnes komponenten LoginView øverst til høyre på siden. Den vil gi brukeren
muligheten til å logge inn, slik at det blir mulig for bruker å blant annet poste på forumet.
Når brukeren logger seg inn vil det her bli fremvist en velkomstmelding.
Selve forumet består av en GridView-komponent som henter foruminformasjon fra
databasen gjennom en SqlDataSource (ForumDataSource). SqlDataSource oppretter en
forbindelse til databasen og henter aktuell informasjon fra Forum-tabellen og sender det
videre til GridView, som presenterer informasjonen overfor brukeren.
4.4.5 ForumEmne
ForumEmne.aspx og ForumEmne.aspx.cs
Figur 15: ForumEmne.aspx
Funksjonalitet
Når et medlem har postet et nytt emne i forumet, vil denne siden vise posten deres til det
nye emnet. Når et medlem skriver et emne eller en post vil denne siden bli vist med trådens
eksisterende poster ovenfor svarfeltet.
25
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Klasser og funksjoner
Klasser:
- public partial class ForumEmne : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
o Autentisering.
- protected void btnSend_Click( object sender, EventArgs e)
o Sender inn en ny post til det emnet som brukeren velger å svare på.
Hvordan det fungerer
Øverst i ForumEmne.aspx er det er DataList (DataList1) knyttet til en SqlDataSource
(ForumDataSource), som viser en lenkeliste til hvor i forumet brukeren befinner seg. Dette
er en form for navigeringsfunksjonalitet som ofte blir kalt for breadcrumbs1. For eksempel:
Forum > Oppskrifter. Dette muliggjøres av at URL-adressen sender med den gjeldende
forumID-en. Videre benytter SqlDataSource seg av denne forumID-en gjennom en
QueryString, som oppretter en forbindelse mot databasen, deretter finner forumnavn til
gjeldende QueryString-informasjon, og sender dette til slutt til DataListen.
Under breadcrumbs funksjonaliteten finner du første post til forumemnet/tråden i en
GridView (GridView1). Denne GridView-en er knyttet til en DataSource
(ForumEmneDataSource) som oppretter en forbindelse mot databasen, henter informasjon
fra tabellen ForumEmne, og videresender informasjonen tilbake til GridView som tar seg av
presentasjonen av dette.
Under første post på det nye emnet, finner du enda en GridView (GridView2). Denne
GridView-en er knyttet til en DataSource (ForumPostDataSource) som oppretter en
forbindelse mot databasen, henter informasjon fra tabellen ForumPost, og videresender
informasjonen tilbake til GridView, som også her tar seg av presentasjonen. De postene som
eventuelt befinner seg under første post, er svarposter til den første posten.
Dersom du ikke er logget inn, vil en Label spørre deg om å logge inn for å poste. Dersom
man er logget inn, vil man i stedet ha tilgang til en ”Send”-knapp og en FreeTextBox. Denne
FreeTextBox-en er et tekstredigeringsverktøy som lar deg skrive inn tekst med ekstra
tekstredigeringsmuligheter, eksempelvis: datostempling, oppretting av lenke, endre på
størrelse og tykkelse på tekst, osv. Trykker du på ”Send”-knappen vil det du har skrevet inn i
FreeTextBoxen bli lagt inn som en ny post i emnet/tråden.
I funksjonen Page_Load() i ForumEmne.aspx.cs blir det først av alt sjekket om du er logget
inn. Dersom du ikke er logget inn vil du få beskjed om å logge inn, for å kunne svare på og
1 http://en.wikipedia.org/wiki/Breadcrumb_(navigation) (28.05.09)
26
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
skrive poster. Dersom du er logget inn, vil du ha muligheten til å svare på emnet gjennom en
FreeTextBox og en ”Send”-knapp.
Denne ”Send”-knappen er knyttet til funksjonen btnSend_Click(). Trykker du på denne
knappen vil det bli opprettet en forbindelse opp mot databasen, det som ble skrevet inn i
FreeTextBox-en vil da bli sendt inn sammen med annen påkrevd autogenerert post-
informasjon til databasen, samt oppdatere ForumEmne.aspx siden med den nye
informasjonen.
4.4.6 ForumEmneListe
ForumEmneListe.aspx og ForumEmneListe.aspx.cs
Figur 16: ForumEmneListe.aspx
Funksjonalitet
Denne siden viser oversikt over forumemnene/trådene i en kategori. Det kan være mange
emner under hver kategori.
Klasser og funksjoner
Klasser:
- public partial class ForumEmneListe : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
- protected void btnNyttEmne_Click( object sender, EventArgs e)
o Videresender brukeren til en side hvor brukeren kan poste et nytt emne.
27
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Hvordan det fungerer
Under breadcrumbs-funksjonen er det en knapp som du klikker på hvis du vil lage et nytt
emne. Den videresender deg til NyttEmne.aspx gjennom funksjonen btnNyttEmne() i
ForumEmneListe.aspx.cs.
Nederst i ForumEmneListe.aspx er det en GridView (GridView1) som er knyttet til en
SqlDataSource (ForumDataSource). Denne oppretter en forbindelse opp mot databasen,
finner alle emner under gjeldende kategori som hentes ut på bakgrunn av feltet forumID fra
URL-adressen, og sender aktuell informasjon tilbake til GridView.
4.4.7 Innlogging
Innlogging.aspx og Innlogging.aspx.cs
Figur 17: Innlogging.aspx ikke logget inn
Figur 18: Innlogging.aspx logget inn som moderator
28
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Funksjonalitet
Dette er siden brukeren blir sendt til når brukeren blir bedt om å logge seg inn. Dette er
også siden man blir henvist til når man klikker på ”Min side”-linken i menyen, uten å være
innlogget.
Klasse og funksjoner
Klasse:
- public partial class Innlogging : System.Web.UI.Page
Funksjoner:
- protected void Page_Load(object sender, EventArgs e)
o Initialisering av funksjoner.
- private void buildCount()
o Legger sammen det totale antall oppskrifter som er til sikkerhetskontroll.
Hvordan det fungerer
Midt på Innlogging.aspx finnes det en LoginView. Hvordan den ser ut er avhengig av
innloggingsstatusen og hva slags bruker man er. Dersom man ikke er innlogget vil man få
beskjed om at man ikke er logget inn sammen med innloggingsfunksjonaliteten (en Login-
boks). Man logger seg inn ved å skrive inn brukernavn og passord. Dersom man ikke har
konto, medfølger det en link hvor nye brukere kan registrere seg. Når innloggingen er
gjennomført vil man bli hilset med brukernavnet i LoginView.
Til venstre finnes det en til LoginView. Dersom man er innlogget, vil man se dette
LoginView-et forskjellig avhengig av brukerens tildelte rolle og tilgangsnivå. Et vanlig
medlem vil kunne se en lenke til å sende inn oppskrifter til ”Folkets oppskrift”. Dersom du er
moderator eller administrator, vil du i tillegg se en lenke til å sende inn oppskrifter til
Matsans oppskrifter, og en lenke til oppskrifter som er til godkjenning i sikkerhetskontrollen.
Bak sikkerhetskontroll-lenken finnes det en teller som er laget i funksjonen buildCount() i
Innlogging.aspx.cs. Her blir det først laget en forbindelse opp mot databasen. Så vil sql-
spørringen returnere antallet for hvor mange oppskrifter som venter på kontroll, for så å
avslutte forbindelsen med databasen. Tellerinformasjonen vil bli sendt til tildelt plass i
LoginView i Innlogging.aspx.cs.
Fremtidige punkter
Denne profilsiden er det brukeren får fram når det trykkes på lenken ”Min side” i menyen.
Et utviklingspotensial for denne profilsiden er å få fram mer informasjon om brukeren og
brukerens aktiviteter. Det må her skapes funksjonalitet som interesserer både brukeren som
eier profilen og andre tilfeldige brukere.
29
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Det ville være spennende å gi brukerne muligheten til å ha en egen personlig kokebok
bestående av en samling med favorittoppskrifter. Det bør også kunne være mulig for
brukere å abonnere på andre sine favorittlister, noe som vil være aktuelt når man finner
andre med samme preferanser og matintoleranse.
4.4.8 NyBruker
NyBruker.aspx og NyBruker.aspx.cs
Figur 19: NyBruker.aspx
Funksjonalitet
Her kan brukeren registrere seg for å bli medlem på nettstedet.
Klasser og funksjoner
Klasser:
- public partial class NyBruker : System.Web.UI.Page
Funksjoner:
- protected void Page_Load ( object sender, EventArgs e)
Hvordan det fungerer
På NyBruker.aspx benyttes det en komponent som heter CreateUserWizard. Brukeren vil
her fylle ut informasjon for å registrere seg som et medlem. Når brukeren trykker på
knappen ”Opprett bruker”, så vil brukeren automatisk bli medlem i det implementerte
ASP.NET Membership-systemet via dette skjemaet. ASP.NET Membership har et ferdig sett
med tabeller som er forhåndsimplementert og benyttet i Matsans sin database for å holde
orden på informasjon om medlemmene.
30
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Dersom brukeren fyller inn ugyldig informasjon, for eksempel et brukernavn som er opptatt
eller en ugyldig e-post adresse, vil brukeren få beskjed om dette.
4.4.9 NyOppskrift
NyOppskrift.aspx og NyOppskrift.aspx.cs
Figur 20: NyOppskrift.aspx
31
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Funksjonalitet
På denne siden kan administrasjonen sende inn nye oppskrifter til Matsans.
Klasser og funksjoner
Klasser:
- public partial class NyOppskrift : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
o Autentisering.
- protected void btnSend_Click( object sender, EventArgs e)
o Bildesjekk og send inn skjemainformasjon til databasen.
- private void buildConnection()
o Send inn skjemainformasjon til databasen.
- protected void resetField( object sender, EventArgs e)
- public void resetField()
o Nullstille skjema.
Hvordan det fungerer
NyOppskrift.aspx er et skjema laget for å fylle inn informasjon om nye oppskrifter man
ønsker å laste opp til Matsans. Dette skjemaet består for det meste av TextBox- og
DropDownList-komponenter. I tillegg er det benyttet FileUpload-funksjonalitet for å tilby
brukeren muligheten til å laste opp et bilde tilhørende oppskriften. Det finnes to knapper på
dette skjemaet: ”Tøm skjema” og ”Send inn”. ”Tøm skjema”-knappen nullstiller alle feltene i
skjemaet. Mens ”Send inn”-knappen sender inn det man har skrevet i feltene, til databasen.
Etter at en ny oppskrift er sendt inn, vil det bli gitt en bekreftelse om dette i en Label som er
på toppen av skjemaet.
Når NyOppskrift.aspx.cs åpnes, er den første funksjonen som kjøres Page_Load(). Denne
funksjonen sjekker om det er en moderator som er innlogget, da det kun er moderatorer
som skal ha tilgang til funksjonaliteten på denne siden. Dersom dette ikke er tilfellet vil
brukeren bli videresendt til startsiden.
Når brukeren trykker på ”Send inn” knappen kjøres funksjonen btnSend_Click(). Her blir det
sjekket om det er en fil i FileUpload, som matcher kriteriene til en bildefil. Hvis det ikke er en
bildefil, vil brukeren bli informert om dette og får muligheten til å prøve på nytt. Kravene er
at det enten må være en gyldig bildefil eller ingen fil i det hele tatt. Hvis de to kravene er
oppfylt, blir neste steg å starte buildConnection(). Det vil da bli opprettet en forbindelse mot
databasen, skjemainformasjonen vil bli sendt gjennom en sql-spørring som tilsvarer dette,
før forbindelsen blir lukket. Hvis det ikke var en bildefil som ble sendt med i skjemaet, vil det
automatisk bli tilegnet et defaultbilde, Default.jpg, som har en egen bildeurl i databasen.
32
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Når brukeren trykker på ”Tøm skjema”-knappen kjøres resetField()-funksjonen. Da vil alle
punkter i skjemaet nullstille seg.
4.4.10 NyttEmne
NyttEmne.aspx og NyttEmne.aspx.cs
Figur 21: NyttEmne.aspx
Funksjonalitet
På denne siden kan medlemmer opprette nye emner i forumet. På denne siden kan
medlemmet fylle inn tittel og innhold i posten som starter det nye emnet.
Klasser og funksjoner
Klasser:
- public partial class NyttEmne : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
o Autentisering.
33
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
- protected void btnSend_Click( object sender, EventArgs e)
o Sender inn det nye emnet til forumet.
Hvordan det fungerer
I NyttEmne.aspx er det en Textbox for tittel og en FreeTextBox for å skrive innhold i posten,
som begge tilhører det nye forumemnet. Når medlem er ferdig med å fylle inn disse feltene,
vil innholdet bli sendt ved å trykke på ”Send”-knappen. Hvis ikke medlem ønsker å sende
likevel, er alternativet å trykke på ”Tilbake”-knappen.
Når denne siden blir åpnet kjøres funksjonen Page_Load() i NyttEmne.aspx.cs. Der blir det
sjekket om brukeren er innlogget fra før. Hvis det er tilfelle vil brukeren få tilgang på siden.
Hvis ikke brukeren er innlogget vil brukeren bli henvist til å logge seg inn via
Innlogging.aspx-siden.
Når ”Send”-knappen blir brukt kjøres funksjonen btnSend_Click(). Videre vil medlemmet
autentiseres, og det vil bli opprettet en forbindelse opp mot databasen. Innholdet som
medlemmet har fylt inn i skjemaet blir sendt til databasen sammen med medlemmets
identitet. Deretter vil forbindelsen opp mot databasen bli avsluttet. Til slutt vil medlemmet
bli sendt til siden som inneholder det nye emnet. Når ”Tilbake”-knappen benyttes vil
btnTilbake_Click()-funksjonen kjøres, og brukeren vil bli sendt til den adressen som bruker
kom fra før denne siden ble entret.
4.4.11 NyttForum
NyttForum.aspx og NyttForum.aspx.cs
Figur 22: NyttForum.aspx
34
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Funksjonalitet
Moderator eller administrator kan legge til en ny forumkategori på denne siden.
Vanlig bruker eller medlem vil ikke ha tilgang på denne siden.
Klasse og funksjoner
Klasse:
- public partial class NyttForum : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
o Autentisering.
- protected void btnLeggTil_Click( object sender, EventArgs e)
o Legg til ny forum data i databasen.
- protected void btnTilbake_Click( object sender, EventArgs e)
o Sender bruker tilbake til hvor bruker kom fra.
Hvordan det fungerer
På NyttForum.aspx er det en Label helt øverst som sier i fra når du har lagt til en ny
forumkategori. Under finner du TextBox til å fylle inn det nye forumkategorinavnet og
beskrivelse. Helt nederst er det to knapper: ”Tilbake” og ”Legg til”. ”Tilbake”-knappen
sender brukeren tilbake til sist besøkte side, mens ”Legg til”-knappen legger den nye
forumkategorien til i databasen.
Når NyttForum.aspx.cs åpnes er det første som skjer at Page_Load()funksjonen sjekker om
brukeren er en moderator, noe som kreves for å få tilgang til denne siden. Hvis ikke
brukeren har tilgang til denne siden, vil brukeren bli sendt tilbake til startsiden. Knappen
”Legg til” kjører funksjonen btnLeggTil_Click(). Det opprettes en forbindelse opp mot
databasen, dataen i tilhørende skjema vil bli sendt til databasen før forbindelsen blir
avsluttet. Brukeren vil deretter få beskjed i Label om at en ny kategori har blitt opprettet i
forumet.
Knappen ”Tilbake” kjører funksjonen btnTilbake_Click() som sender brukeren tilbake til
siden hvor bruker kom fra før denne siden ble entret.
35
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.4.12 Om
Om.aspx og Om.aspx.cs
Funksjonalitet
Denne siden informerer brukeren om Matsans.
Matsans har utvalgt følgende informasjonskategorier og informasjonskanaler som brukerne
vil være tjent med:
- Kunnskap og informasjon angående matintoleranse og matallergi.
- Nyheter og artikler.
- Samfunn for brukerne.
- Forandring for fremtiden.
- Kokebok for matintoleranse.
Figur 23: Om.aspx
Klasse og funksjoner
Klasse:
- public partial class Om : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
36
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Hvordan det fungerer
Når brukeren kommer til Om.aspx siden ved å trykke på ”Om Matsans” i menyen, vil
brukeren her bli informert om hensikten bak Matsans og hva nettstedet ønsker å formidle.
Fremtidige punkter
I nærmeste fremtid bør det opprettes en side med informasjon om de som står bak og
arbeider hos Matsans. Denne siden inneholder profilbilder, kontaktinformasjon og litt
historisk tekst knyttet til hver ansatt.
En hensikt er å skape en mer personlig relasjon til brukerne. De skal kunne se hvem vi er, og
de skal ha mulighet til direkte kontakt med oss. Informasjon om hvordan brukerne opplever
nettstedet er vårt viktigste utviklingspotensial, og derfor er det viktig å gi muligheten til
direktekontakt.
I tillegg til denne direktekontakten skal det opprettes et kontaktskjema som brukeren kan ta
i bruk når spørsmålet ikke er rettet mot en person ansatt hos Matsans. En hensikt med dette
skjemaet er også å senke terskelen for å ta kontakt med Matsans, da en mindre personlig
henvendelse har lavere inngangsterskel. Flere typer kontaktformer integrerer flere typer
brukere.
Kontaktskjemaet og profilsiden for de ansatte hos Matsans kan bli lenket til gjennom
venstre kolonne på siden ”Om Matsans”.
4.4.13 Oppskrift
Oppskrift.aspx og Oppskrift.aspx.cs
Figur 24: Oppskrift.aspx
37
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Funksjonalitet
Denne siden fremviser brukerens valgte oppskrift.
Klasse og funksjoner
Klasse:
- public partial class Oppskrift : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
o Initialisering av funksjoner.
- private void setImages()
o Setter opp bildene i menyen.
- private void buildDataList()
o Bygger DataList til oppskrift.
- protected void btnSend_Click( object sender, EventArgs e)
o Sender inn data fra kommentarskjema til database.
- private void buildKommentar()
o Henter kommentarer til gjeldende oppskrift.
- private void buildKnapp()
o Bygger knapper med lenker til visning (kun for moderator).
- protected void lbEndre_Click( object sender, EventArgs e)
o Henviser moderator til en side for å endre oppskrift.
- protected void dlKommentar_DeleteCommand( object source, *
DataListCommandEventArgs e)
o Gir moderator og administrator muligheten til å slette kommentarer
tilhørende oppskriften.
Hvordan det fungerer
I venstre kolonne på Oppskrift.aspx er det en meny. Denne er bygget opp av bilder med
lenker som forandrer seg når bildet blir trykket på eller får musepekeren over seg. Selve
funksjonen som forandrer på bildene når musepekeren er over heter setImages() og koden
ligger i Oppskrift.aspx.cs.
Oppskriften på Oppskrift.aspx består av en DataList (dlOppskrift). Under oppskriften er det
en DataList (dlKommentar) som viser kommentarer til gjeldende oppskrift. Helt nederst er
det en LoginView som ber deg om å logge inn for å kommentere, dersom du ikke er logget
inn. Er du derimot innlogget vil du i stedet se en TextBox tilrettelagt for å skrive
kommentarer og en ”Send”-knapp til å sende inn kommentaren din til gjeldende
oppskriftside. I høyre kolonne er det en Label som gir moderator eller administrator en
38
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
lenke til å endre oppskriften på denne siden. Er du ikke moderator eller administrator, vil du
heller ikke se denne lenken i Label.
I funksjonen Page_Load() i Oppskrift.aspx.cs blir en god del av funksjonene intialisert.
Oppskrift sin DataList blir bygget i funksjonen buildDataList. En forbindelse med databasen
blir opprettet. I URL-en finnes det en QueryString for gjeldende oppskrift. En QueryString
med oppskriftID blir matchet opp i databasen for å finne riktig oppskrift. Informasjonen til
gjeldende oppskrift blir hentet ut av databasen og videresendt til DataListen.
Kommentaren sin tilhørende DataList blir hentet og bygget opp gjennom funksjonen
buildKommentar(). Det blir først opprettet en forbindelse til databasen. Kommentarer
tilhørende den aktuelle oppskriften blir hentet fra databasen gjennom en QueryString som
har blitt postet gjennom URL-en. Kommentarene blir sendt som en DataList til den aktuelle
oppskriftsiden.
Når medlem skal sende inn kommentar gjennom skjemaet, vil først funksjonen
btnSend_Click() kjøres når brukeren trykker på”Send”-knappen. En forbindelse med
databasen vil bli opprettet. Deretter vil medlemmets identitet bli funnet. Innholdet i
skjemaet og medlemmets identitet vil bli sendt til databasen før forbindelsen avsluttes.
Medlemmet vil se kommentaren sin når den aktuelle oppskrifts-siden oppdateres.
I funksjonen buildKnapp() vil det først bli sjekket om brukeren er en moderator. Dersom
brukeren er en moderator vil brukeren få tilgang til to knapper. En til å slette kommentarer,
og en til å endre oppskriften. For å bygge opp ”Slett kommentar”-knappen, blir det først
sjekket hvor mange kommentarer det finnes.
Når moderator trykker på lenken ”Endre Oppskrift” kjøres funksjonen lbEndre_Click(), som
sender moderator videre til en side hvor det er mulig å endre på oppskrifter.
Når moderator trykker på ”Slett kommentar” for å slette en kommentar, vil kommentaren
bli slettet gjennom funksjonen dlKommentar_DeleteCommand(). Gjeldende kommentarID
vil bli funnet. En forbindelse til databasen vil bli opprettet for å slette gjeldende kommentar,
før forbindelsen vil bli lukket. Siden vil da bli oppdatert og den slettede kommentaren er
ikke lenger tilgjengelig.
39
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.4.14 Oppskrifter
Oppskrifter.aspx og Oppskrifter.aspx.cs
Figur 25: Oppskrifter.aspx
Funksjonalitet
Denne siden viser oversikt over oppskriftene delt opp i forskjellige kategorier,
underkategorier, matintoleranse, oppskrifter lastet opp av Matsans og oppskrifter lastet
opp av brukerne (Folkets oppskrifter).
Klasse og funksjoner
Klasse:
- public partial class oppskrifter : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
o Initialisering.
- protected void setImageButton()
40
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
o Setter opp menybildene.
- protected void imgBtnMiddag_Click( object sender, ImageClickEventArgs e)
o Setter opp riktig URL når ”Middag”-knappen benyttes.
- protected void imgBtnTilbehør_Click( object sender, ImageClickEventArgs e)
o Setter opp riktig URL når ”Tilbehør”-knappen benyttes.
- protected void imgBtnDessert_Click( object sender, ImageClickEventArgs e)
o Setter opp riktig URL når ”Dessert”-knappen benyttes.
- protected void imgBtnDrikke_Click( object sender, ImageClickEventArgs e)
o Setter opp riktig URL når ”Drikke”-knappen benyttes.
- protected void imgBtnBakst_Click( object sender, ImageClickEventArgs e)
o Setter opp riktig URL når ”Bakst”-knappen benyttes.
- protected void imgBtnMelk_Click( object sender,
System.Web.UI.ImageClickEventArgs e)
o Setter opp riktig URL når ”Melk”-knappen benyttes.
- protected void imgBtnEgg_Click( object sender, System.Web.UI.ImageClickEventArgs
e)
o Setter opp riktig URL når ”Egg”-knappen benyttes.
- protected void imgBtnFisk_Click( object sender, System.Web.UI.ImageClickEventArgs
e)
o Setter opp riktig URL når ”Fisk”-knappen benyttes.
- protected void imgBtnSkalldyr_Click( object sender,
System.Web.UI.ImageClickEventArgs e)
o Setter opp riktig url når ”Skalldyr”-knappen benyttes.
- protected void imgBtnNøtter_Click( object sender,
System.Web.UI.ImageClickEventArgs e)
o Setter opp riktig URL når ”Nøtter”-knappen.
- protected void imgBtnBelgfrukt_Click( object sender,
System.Web.UI.ImageClickEventArgs e)
o Setter opp riktig URL når ”Belgfrukt”-knappen benyttes.
- protected void imgBtnKornslag_Click( object sender,
System.Web.UI.ImageClickEventArgs e)
o Setter opp riktig URL når ”Kornslag”-knappen benyttes.
- protected void imgBtnSitrus_Click( object sender,
System.Web.UI.ImageClickEventArgs e)
o Setter opp riktig URL når ”Sitrus”-knappen benyttes.
- protected void imgBtnFolkets_Click( object sender, ImageClickEventArgs e)
o Setter opp riktig URL når ”Folkets oppskrifter”-knappen benyttes.
- public string addRemoveLink( string aLink)
o Setter opp aLink QueryString på riktig posisjon i URL-en.
- public string addRemoveLink2( string bLink)
o Setter opp bLink QueryString på riktig posisjon i URL-en.
41
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
- public string addRemoveLink3( string cLink)
o Setter opp cLink QueryString på riktig posisjon i URL-en.
- private void bindDataList()
o Henter og bygger opp en DataList med oppskrifter, med tilhørende sidetall.
- private void doPaging()
o Lager listen med sidetall (en sidetall teller).
- protected void dlPaging_ItemCommand( object source, DataListCommandEventArgs
e)
- protected void lnkbtnPrevious_Click( object sender, EventArgs e)
- protected void lnkbtnNext_Click( object sender, EventArgs e)
- protected void dlPaging_ItemDataBound( object sender, DataListItemEventArgs e)
- public string makeSql()
o Bygger opp sql-spørringer til oppskriftenes DataList.
- private void setUnderkategori()
o Setter opp underkategorier avhengig av kategorivalg.
Hvordan det fungerer
På venstre side av Oppskrifter.aspx er det en meny med valgalternativer. Denne er satt opp
av mange ImageButton over hverandre. Samtlige ImageButton er satt opp av funksjonen
setImageButton() i Oppskrifter.aspx.cs. Her blir det også satt opp slik at knappen endres
avhengig om musepekeren er over eller ei. I URL-en blir det sjekket et ImageButton allerede
er valgt, slik at knappen fremvises riktig. Dette er fordi en knapp som allerede er valgt, skal
presenteres annerledes enn en knapp som ikke er valgt.
Når bruker velger et valgalternativ i menyen, blir dette valget presentert annerledes i
menyen og lagt inn i URL-en. For eksempel hvis bruker velger kategori valget ”Middag”, vil
funksjonen imgBtnMiddag_Click() bli gjeldende og putte en QueryString ”kategori=Middag” i
URL-en. For å putte kategorien som førstgjeldende QueryString i URL-adressen, bruker
funksjonen imgBtnMiddag_Click () funksjonen addRemoveLink2(). Her blir det sjekket i URL-
en hva som er førstkommende QueryString og hvilke andre QueryString-er som følger
deretter. I dette eksempelet valgte brukeren kategorien ”Middag”. I addRemoveLink2() vil
”Middag”-kategorien bli satt som første QueryString enten hvis det ikke er valgt en kategori
fra før, eller i stedet for en valgt kategori, og de følgende QueryString vil bli puttet på riktig
plass bak ”kategori=Middag” i URL-en. For eksempel kan en URL inneholde ”Middag” fra før
av og være bygd opp slik:
’…/Oppskrifter.aspx?kategori=Middag&matintoleranse=egg&underkategori=Sjømat’
Deretter velger bruker en ny kategori ”Tilbehør”, og adresselinjen vil da bli slik:
’…/Oppskrifter.aspx?kategori=Tilbehør&matintoleranse=egg’
ved hjelp av funksjonen imgBtnTilbehør() som bruker funksjonen addRemoveLink2() for å
bygge opp URL-en med riktig rekkefølge av QueryString.
42
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Når bruker velger en matintoleranse, vil dette valget legges i URL-en og følge med som en
del av adresselinjen uavhengig av andre valg som utføres (for eksempel valg av kategori eller
flere intoleranser). Hvis bruker velger for eksempel matintoleranse ”Egg”, vil det stå i URL-
en at matintoleranse ”Egg” er valgt, selv om brukeren senere velger å endre på kategorivalg
(for eksempel endre kategorivalg fra ”Middag” til ”Tilbehør”). Når en ImageButton benyttes
kjøres funksjonen imgBtnEgg_Click(), som videre benytter seg av funksjonen
addRemoveLink() til å putte ”matintoleranse=egg” i URL-en. Hvis matintoleranse ”Egg”
allerede er valgt og dette valget gjøres på ny, vil kategorien fjernes fra URL-en. Dette skjer
ved bruk av de samme funksjonene som når man legger til en kategori i URL-en.
Valgalternativet ”Folkets oppskrifter” benytter seg også av funksjonen addRemoveLink(). I
addRemoveLink() blir det sjekket om valget allerede ligger URL-en. Hvis den finnes, vil den
bli fjernet. Hvis den ikke finnes i URL-en, vil valget bli lagt til. Valget vil være i URL-en helt til
valget blir valgt bort av brukeren selv.
I Oppskrifter.aspx er det mange Labels som representerer underkategorier på toppen av
midterste område. Underkategoriene genereres automatisk avhengig av kategorivalg.
Underkategoriene til en kategori vil bli satt opp i de nevnte Labels, og dette gjøres av
funksjonen setUnderkategori() i Oppskrifter.aspx.cs. For eksempel hvis kategorien ”Middag”
er valgt, vises dette i URL-en. I setUnderkategori() blir kategori sjekket opp via en
QueryString. Finner den ”kategori = Middag”, vil funksjonen sette opp tilhørende
underkategorier som Label med tilhørende lenker som videre er bygd opp av funksjonen
addRemoveLink3(). I addRemoveLink3() blir det sjekket om det finnes en underkategori i
URL-en fra før. Hvis det finnes, vil denne underkategorien bli erstattet med det nye
underkategorivalget. Hvis det ikke finnes en underkategori fra før av, vil underkategorivalget
bli lagt til i URL-en. Funksjonen vil returnere en ferdiglaget URL med riktig QueryString satt
sammen av brukerens valg, slik som de andre addRemoveLink-funksjonene.
Selve oversikten av oppskrifter består av en DataList (dlOppskrifter) i Oppskrifter.aspx.
Denne er bygget opp og hentet fra bindDataList() i Oppskrifter.aspx.cs. Her blir det først
hentet og bygget en sql-spørring gjennom funksjonen makeSql(), som består av en
QueryString bygd opp av tilgjengelig informasjon med bakgrunn i de menyvalgene brukeren
har utført. En forbindelse til databasen blir opprettet, og sql-spørringen blir sendt for å
innhente tilsvarende informasjon som en DataList. Denne DataList er også tilpasset en
sidetall-viser som er bygget opp gjennom funksjonene CurrentPage(), doPaging(),
dlPaging_ItemCommand(), lnkbtnPrevious_Click(), lnkbtnNext_Click() og
dlPaging_ItemDataBound().
43
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.4.15 SendNyOppskrift
SendNyOppskrift.aspx og SendNyOppskrift.aspx.cs
Figur 26: SendNyOppskrift.aspx
Funksjonalitet
Gjennom denne siden kan brukeren sende inn nye oppskrifter. Siden oppskriften kommer
fra en bruker, vil den havne i databasen ved navnet ”Folkets oppskrifter”. For å kunne bruke
denne funksjonaliteten må brukeren være er et registrert medlem.
44
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Klasse og funksjoner
Klasse:
- public partial class SendNyOppskrift : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
o Autentisering.
- protected void btnSend_Click( object sender, EventArgs e)
o Sjekker om innhold i skjemaet er gyldig før dataene blir sendt til databasen.
- private void buildConnection()
o Sender innhold i skjema og relevant medlemsinformasjon til databasen.
- protected void resetField( object sender, EventArgs e)
- public void resetField()
o Nullstiller skjema.
Hvordan det fungerer
SendNyOppskrift.aspx er formet som et skjema for å fylle inn informasjon om nye
oppskrifter. Dette skjemaet består for det meste av TextBox og DropDownList. I tillegg er
det tatt i bruk funksjonaliteten FileUpload for å laste opp bilde tilhørende oppskriften. Det
finnes to knapper på dette skjemaet: ”Tøm skjema” og ”Send inn”. Når ”Tøm skjema”-
knappen benyttes vil hele skjemaet nullstille seg. Når ”Send inn”-knappen benyttes vil det
som er skrevet i skjemaet bli sendt inn til databasen. Etter at brukeren har sendt inn en ny
oppskrift, vil det bli gitt beskjed om dette i en Label som er på toppen av skjemaet. Dersom
innsendingen ikke var vellykket, vil dette også bli gitt beskjed om i Label på toppen av
skjemaet.
I SendNyOppskrift.aspx.cs er den første funksjon som kjøres Page_Load(). Denne sjekker om
det er et pålogget medlem som prøver å se denne siden. Dersom brukeren ikke er et
innlogget medlem, vil brukeren heller ikke få tilgang.
Når brukeren trykker på ”Send inn”-knappen kjøres funksjonen btnSend_Click(). Her blir det
sjekket hvis det er en fil i FileUpload og om dette er en bildefil. Hvis det ikke er en bildefil, vil
brukeren få beskjed om dette og bli oppfordret til å prøve igjen. Kravene er at det enten skal
være en bildefil eller ingen fil i det hele tatt, og om disse kravene oppfylles, blir neste steg å
opprette en kobling mot databasen gjennom funksjonen buildConnection(). Det vil da
opprettes en forbindelse opp mot databasen, deretter vil innhold fra skjema og
medlemmets id og navn bli samlet og sendt til databasen gjennom en sql-spørring. Deretter
vil databaseforbindelsen blir lukket. Til slutt vil brukeren få beskjed i Label om at oppskriften
er innsendt. Hvis det ikke ble vedlagt noen bildefil, vil bildefil-adressen i databasen bli
automatisk satt til et defaultbilde (Default.jpg).
45
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Når brukeren trykker på ”Tøm skjema”-knappen kjøres funksjonen resetField(). Da vil alle
feltene i skjemaet nullstille seg.
4.4.16 SjekkOppskrift
SjekkOppskrift.aspx og SjekkOppskrift.aspx.cs
Figur 27: SjekkOppskrift.aspx
Funksjonalitet
Denne siden viser oppskriften når den er blitt valgt i sikkerhetskontrollen. Her blir hver
enkelt oppskrift vurdert for godkjenning. Det er fordelaktig å kunne godkjenne oppskrifter
46
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
før publisering slik at enkle skrivefeil og dårlig formatering kan rettes opp. Denne
godkjenningen kan kun utføres av en administrator eller moderator.
Klasse og funksjoner
Klasse:
- public partial class SjekkOppskrift : System.Web.UI.Page
Funksjoner
- protected void Page_Load( object sender, EventArgs e)
o Autentisering og initialisering.
- private void buildDataList()
o Bygger opp DataList.
- protected void btnGodkjent_Click( object sender, EventArgs e)
o Godkjenner oppskrift.
- protected void btnSlett_Click( object sender, EventArgs e)
o Sletter oppskrift.
- protected void btnEndre_Click( object sender, EventArgs e)
o Videresender bruker til siden for å endre oppskrift.
- protected void btnTilbake_Click( object sender, EventArgs e)
o Sender bruker tilbake til der bruker kom fra.
Hvordan det fungerer
I SjekkOppskrift.aspx er det en DataList(dlOppskrift) som viser oppskriften som er blitt valgt
fra sikkerhetskontrollen. Denne DataList består av bilde, tekst og Label. Nedenfor DataList er
det knapper hvor bruker kan velge mellom ”Tilbake”, ”Endre”, ”Slett” og ”Godkjenn”.
I SjekkOppskrift.aspx.cs blir det først sjekket om brukeren er en moderator for å få aksess til
denne siden gjennom funksjonen Page_Load(). Hvis ikke blir brukeren nektet tilgang og
sendt tilbake til startsiden.
DataListen blir bygget opp gjennom funksjonen buildDataList(). Her blir det opprettet en
forbindelse mot databasen. En QueryString forteller hvilken oppskrift det gjelder slik at sql-
spørringen kan innhente riktig oppskrift fra databasen, før forbindelsen til slutt blir lukket.
Når en bruker trykker på ”Godkjenn”-knappen kjøres funksjonen btnGodkjent_Click(). Det
blir her opprettet en forbindelse opp mot databasen. QueryString forteller om hvilken
oppskrift det gjelder slik at sql-spørringen kan bygges opp til å godkjenne riktig oppskrift fra
databasen, før databaseforbindelsen blir lukket. Når den aktuelle oppskriften er godkjent, vil
bruker bli sendt til oversikten over oppskrifter som fortsatt ligger til godkjenning i
sikkerhetskontrollen.
47
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Når en bruker trykker på ”Slett”-knappen kjøres funksjonen btnSlett_Click(). Det blir så
opprettet en forbindelse opp mot databasen. QueryString forteller om hvilken oppskrift det
gjelder, slik at sql-spørringen kan bygges opp til å slette riktig oppskrift og tilhørende data
fra databasen, før forbindelsen blir lukket. Til slutt vil bruker bli sendt til oversikten over
oppskrifter som fortsatt ligger til godkjenning i sikkerhetskontrollen.
Når en bruker trykker på ”Endre”-knappen kjøres funksjonen btnEndre_Click(). Her vil
bruker bli videresendt til siden for å endre oppskriften sammen med en QueryString som
forteller om hvilken oppskrift det gjelder.
Når en bruker trykker på ”Tilbake”-knappen kjøres funksjonen btnTilbake_Click(). Her vil
bruker bli sendt tilbake til der hvor bruker kom fra, som i dette tilfellet er den siden med
oversikt over oppskrifter som fortsatt ligger til godkjenning i sikkerhetskontrollen.
4.4.17 Soek
Soek.aspx og Soek.aspx.cs
Figur 28: Soek.aspx
Funksjonalitet
Denne siden presenterer søkeresultatene når en bruker har benyttet søkefunksjonen øverst
på siden.
48
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Klasse og funksjoner
Klasse:
- public partial class Soek : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
o Initialisering.
- private void bindDataList()
o Bygger opp DataList med søkeresultater.
- private void doPaging()
- protected void dlPaging_ItemCommand( object source, DataListCommandEventArgs
e)
- protected void lnkbtnPrevious_Click( object sender, EventArgs e)
- protected void lnkbtnNext_Click( object sender, EventArgs e)
- protected void dlPaging_ItemDataBound( object sender, DataListItemEventArgs e)
- private string getSql()
o Bygger sql-spørring.
Hvordan det fungerer
I Soek.aspx er det en DataList (dlSoek) som viser listen over oppskrifter søket returnerte.
Denne resultatsiden er også knyttet til en sideteller under DataList bestående av to knapper.
Med ”LinkButton”-knappen kan brukeren bla fram og tilbake i listen, mens de andre
knappene består av sidetall som er bygd opp med utgangspunkt i DataList (dlSoek) sin
lengde. dlSoek er en liste med søketreff hvor hvert treff består av bilde, Label og tekst. For å
komme fram til denne siden har bruker søkt med stikkord i søkefunksjonen øverst i
Masterpage-layouten.
I Soek.aspx.cs blir DataList initialisert i funksjonen Page_Load().
DataList blir bygget gjennom funksjonen bindDataList(). Det blir opprettet en forbindelse
opp mot databasen. I QueryString blir det spesifisert hvilke stikkord det er blitt søkt på, slik
at de kan matche og finne riktig søkeresultater fra databasen med en sql-spørring laget med
funksjonen getSql(), før forbindelsen blir lukket. Samtidig er DataList bygget opp mot en
sidetall-funksjon gjennom funksjonene dlPaging_ItemCommand(), lnkbtnPrevious_Click(),
lnkbtnNext_Click() og dlPaging_ItemDataBound(). I getSql() er det tilrettelagt for flere enn
ett søkeord som er vedlagt. Søkeordene kan skilles enten med mellomrom, ”+”-tegn eller ”,”
mellom seg. For eksempel ”kjøttboller + saus” eller ”kjøttboller saus” eller ”kjøttboller,
saus”.
49
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Fremtidige punkter
Stikkordsøkemotoren er ikke knyttet opp mot valgt matintoleranse, noe som burde
implementeres snarest. Søkeren skal kunne søke på stikkordet sitt først og deretter velge
matintoleranse.
4.4.18 Usett
Usett.aspx og Usett.aspx.cs
Figur 29: Usett.aspx
50
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
Funksjonalitet
Denne siden viser oversikt over oppskrifter som venter i sikkerhetskontrollen. Disse
oppskriftene er blitt sendt inn og venter på en vurdering for å bli godkjent. Herfra kan
moderator eller administrator velge ut hvilken oppskrift som skal vurderes videre for
godkjenning, endring eller sletting.
Klasse og funksjoner
Klasse:
- public partial class Usett : System.Web.UI.Page
Funksjoner:
- protected void Page_Load( object sender, EventArgs e)
o Autentisering.
- private void buildDataList()
o Bygger opp DataList med en liste over oppskrifter til sikkerhetskontrollen.
- public int CurrentPage()
- private void doPaging()
- protected void dlPaging_ItemCommand( object source, DataListCommandEventArgs
e)
- protected void lnkbtnPrevious_Click( object sender, EventArgs e)
- protected void lnkbtnNext_Click( object sender, EventArgs e)
- protected void dlPaging_ItemDataBound( object sender, DataListItemEventArgs e)
Hvordan det fungerer
I Usett.aspx bygges det opp en DataList (dlOppskrifter) som viser oversikt over oppskrifter
som venter i sikkerhetskontrollen. Denne listen består av bilde, Label og lenke. Nederst på
siden er det en sidetallviser satt sammen av av to LinkButton og en DataList.
Sidetallvisningen er knyttet opp mot følgende funksjoner i Usett.aspx.cs:CurrentPage(),
doPaging(), dlPaging_ItemCommand(), lnkbtnPrevious_Click(), lnkbtnNext_Click() og
dlPaging_ItemDataBound().
I funksjonen Page_Load() i Usett.aspx.cs blir det sjekket om brukeren er moderator. Hvis
dette ikke er tilfelle vil ikke bruker få tilgang til denne siden, og bli returnert til startsiden.
Oversikten over oppskrifter til godkjenning ligger i en DataList, som blir bygget opp gjennom
funksjonen buildDataList(). Først blir det opprettet en forbindelse opp mot databasen.
Videre innhenter sql-spørringen de oppskriftene som er ikke godkjente, før
databaseforbindelsen blir avsluttet.
51
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.5 Konfigurasjonsfilen web.config
web.config
Funksjonalitet
Web.config er en fil som inneholder sentrale innstillinger og konfigurasjoner som er felles
for hele ASP.NET web-applikasjonen.
Hvordan det fungerer
Web.config filen er et XML dokument som definerer konfigurasjonsinformasjonen til en
web-applikasjon. Web.config-filen inneholder informasjon som kontrollerer modullasting,
sikkerhetskonfigurasjon, sesjontilstander, applikasjonsspråk og kompileringsinnstillinger.
Web.config-filen kan også inneholde applikasjons-spesifikke variabler som for eksempel en
variabel som benyttes ved oppkobling mot en database (connectionstring).
I Matsans sitt tilfelle ble denne filen benyttet til å inneholde globale statiske variabler. For
eksempel forenklet det databaseoppkoblingen ved å legge inn en egen oppkobling i
web.config:
<connectionStrings>
<add name="MatConnectionString" connectionString="Data
Source=(local)\SqlExpress;Initial Catalog=Matos;Integrated
Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
Så kan det hentes ut igjen i alle dokumentene med:
string matsansConnectionString = ConfigurationManager.ConnectionStrings[
"MatConnectionString"].ConnectionString;
På samme måte er det enkelt å endre på statiske e-post adresser, SMTP-server og
innstillinger for databaseoppkoblingen.
Den store fordelen er altså at endring i konfigurasjonen kan gjøres i én sentral fil, i stedet for
i hver enkelt fil. Tidsbesparingen kan bli svært stor og det medbringer også bedre oversikt
for utviklerne.
52
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.6 Mapper og deres filer
I Matsans finnes det både ASP.NET-mapper og egne mapper. Noe struktur er satt på
forhånd for å kompilere koden, mens noe struktur er opp til brukeren. Følgende punkter
forklarer mappene og deres filer.
Figur 30: Matsans sine mapper
4.6.1 App_Code mappen
Funksjonalitet
App_Code er en ASP.NET-mappe som inneholder alle frittstående/hjelpe .cs/.vb filer, og de
blir kompilert automatisk når som helst noe blir forandret i filene. Alle klasser i denne
mappen blir automatisk henvist til resten av applikasjonen.
4.6.2 App_Data mappen
Funksjonalitet
App_Code er en ASP.NET-mappe som lar deg bruke en filbasert database. Mappen kan
inneholde SQL Server, Access, XML, Excel filer og hvilken som helst annen filbasert
datalagringsfil.
4.6.3 App_Themes mappen og stilark
App_Themes mappen, Theme1 mappen og Chocolate.css stilarket
Funksjonalitet
ASP_Themes er en ASP.NET mappe som inneholder filer til å endre utseendet på web-
applikasjonen/siden. Det kan være tema i både Skin (.skin)-filer og stilark (.css).
Hvordan det fungerer
I vår App_Themes mappe har vi laget en Theme1 mappe som inneholder stilarket
Chocolate.css.
53
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
CSS står for Cascading Style Sheets, som er et stil-språk som definerer layouten for et
tilhørende HTML-dokumentent. For eksempel dekker CSS: font, farge, marginer, linjer,
høyde, bredde, bakgrunnsbilder, avanserte posisjoner og mye mer.
Matsans sin Masterpage er linket til Chocolate.css. Derfra er stilen definert i Masterpage,
som igjen definerer malen på layouten.
4.6.4 Bin mappen
Funksjonalitet
Bin er en ASP.NET-mappe som kan inneholde kompilerte filer (.dll) for egenkomponerte
ASP.NET-kontrollere, -komponenter og annen kode som man ønsker å ha automatisk
henvisning til i din ASP.NET web-applikasjon.
4.6.5 FreeTextBox mappen
Funksjonalitet
FreeTextBox-mappen inneholder filene til ASP.NET sitt tekstredigeringsverktøy ved navnet
FreeTextBox.
4.6.6 Images mappen
Images-mappen, Annet-mappen, Artikler-mappen, Layout-mappen, Oppskrifter-mappen og
Folkets oppskrifter-mappen, samt tilhørende filer (i stort sett .jpg).
Funksjonalitet
Images inneholder bildene tilhørende oppskrifter i databasen og Matsans sin layout.
4.6.7 UserControl mappen
UserControl mappen og Header.ascx
Funksjonalitet
I UserControl-mappen blir det lagret user control-filer (.ascx) som er kun laget for Matsans.
54
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
4.7 Favicon.ico
Figur 31: Favicon foran URL og på fane.
Funksjonalitet
En favicon (favourites icon), også kjent som webside ikon, snarvei ikon, url ikon og
bokmerke ikon, er et 16x16 pixel firkantet ikon som assosieres med en webside. Ofte står
dette ikonet foran URL-en i adresselinjen til nettleseren. Ikonet vil også stå først i en fane
foran navnet til websiden.
Hvordan det fungerer
Matsans sin favicon.ico ligger i roten av katalogen og er knyttet opp mot MasterPage med
følgende linje i <head> seksjonen:
<link rel="shortcut icon" href="favicon.ico" />
55
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
5. Oppsummering
De foregående kapitlene har gitt leseren innsikt for prosjektets bakgrunn og teknologiske
valg underveis. Videre får leseren en introduksjon overfor hvordan prosjektet er bygget opp
av de valgte teknologiene. Innholdet er skrevet for å gi de som skal drifte nettstedet videre
(1) en interesse for å bringe ideen om matintoleranse videre og (2) et forenklet syn på
teknologien med bakgrunn i de teknologiske innføringene leseren får gjennom dette
dokumentet.
56
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
6. Referanseliste
Torvatn, Ann-Mari (2007). Dokumentasjonsstandard. http://www.iu.hio.no/~ulfu/hovedprosjekt/dokumenter/dokumentasjonsstandard.pdf
http://forums.asp.net/t/1026147.aspx [25.05.2009]
http://student.iu.hio.no/hovedprosjekter/2004/data/04/docs/produktrapport.pdf
http://student.iu.hio.no/hovedprosjekter/2006/data/28/linker/produkt.htm [20.03.2009]
http://student.iu.hio.no/hovedprosjekter/2005/data/31/00_www/produktdok.php [21.03.2009]
http://student.iu.hio.no/hovedprosjekter/2008/data/16/dokumenter/Produktdokumentasjon.pdf
57
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
7. Vedlegg: Eksempel på kildekode i aspx.cs fil
Dette er et eksempel på kildekoden i en aspx.cs fil. Resten av kildekoden finner du på
prosjekthjemmesiden (http://matsansen.moo.no eller http://matsans.wordpress.com).
7.1 Oppskrift.aspx.cs
public partial class Oppskrift : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
setImages();
buildDataList();
buildKommentar();
buildKnapp();
}
private void setImages()
{
// Set imageurl
imgBtnMiddag.Attributes.Add("onmouseover",
"this.src='./Images/Layout/alto_middag.jpg'");
imgBtnMiddag.Attributes.Add("onmouseout",
"this.src='./Images/Layout/bw_middag.jpg'");
imgBtnTilbehør.Attributes.Add("onmouseover",
"this.src='./Images/Layout/alto_tilbehør.jpg'");
imgBtnTilbehør.Attributes.Add("onmouseout",
"this.src='./Images/Layout/bw_tilbehør.jpg'");
imgBtnDessert.Attributes.Add("onmouseover",
"this.src='./Images/Layout/alto_dessert.jpg'");
imgBtnDessert.Attributes.Add("onmouseout",
"this.src='./Images/Layout/bw_dessert.jpg'");
imgBtnDrikke.Attributes.Add("onmouseover",
"this.src='./Images/Layout/alto_drikke.jpg'");
imgBtnDrikke.Attributes.Add("onmouseout",
"this.src='./Images/Layout/bw_drikke.jpg'");
imgBtnBakst.Attributes.Add("onmouseover",
"this.src='./Images/Layout/alto_bakst.jpg'");
imgBtnBakst.Attributes.Add("onmouseout",
"this.src='./Images/Layout/bw_bakst.jpg'");
}
private void buildDataList()
{
// Define connectionstring
string myConnection = ConfigurationManager.ConnectionStrings[
"MatConnectionString"].ConnectionString;
string oppid = Request.QueryString["oppid"];
// Define sql command
string sqlopp1 = "SELECT Oppskrifter.OppskriftID,
Oppskrifter.Tittel, Oppskrifter.Beskrivelse, Oppskrifter.Porsjoner, " +
"Oppskrifter.Enhet, Oppskrifter.Ingredienser,
Oppskrifter.Fremgangsmåte, Oppskrifter.Vanskelighetsgrad, Oppskrifter.Tid,
" +
"Oppskrifter.Sunn, Oppskrifter.Kilde, Bilde.BildeURL FROM
Oppskrifter, Bilde " +
"WHERE Oppskrifter.OppskriftID = '" + oppid + "' " +
58
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
"AND Oppskrifter.OppskriftID = Bilde.OppskriftID " ;
// Instantiate connection string and command in SqlDataAdapter
myAdapter
SqlDataAdapter myAdapter = new SqlDataAdapter(sqlopp1,
myConnection);
// Create and fill a DataSet
DataSet ds = new DataSet();
myAdapter.Fill(ds);
// Bind the datalist to the dataset
dlOppskrift.DataSource = ds;
dlOppskrift.DataBind();
}
protected void btnSend_Click(object sender, EventArgs e)
{
// Define data objects
SqlConnection conn;
SqlCommand comm;
// Open the connection
string connectionString = ConfigurationManager.ConnectionStrings[
"MatConnectionString"].ConnectionString;
// Initialize connection
conn = new SqlConnection(connectionString);
// Create command
comm = new SqlCommand("INSERT INTO Kommentar ( OppskriftID,
Kommentar, UserID, Username, Dato) " +
"VALUES (@OppskriftID, @Kommentar, @UserID, @Username, @Dato)",
conn);
// Get UserID of current user of ASP.NET membership
MembershipUser member = Membership.GetUser();
string oppid = Request.QueryString["oppid"];
TextBox txtKommentar =
(TextBox)LoginView1.FindControl("txtKommentar");
// Add command parameters
comm.Parameters.Add("@OppskriftID",
System.Data.SqlDbType.NVarChar);
comm.Parameters["@OppskriftID"].Value = oppid;
comm.Parameters.Add("@Kommentar", System.Data.SqlDbType.NVarChar);
comm.Parameters["@Kommentar"].Value = txtKommentar.Text;
comm.Parameters.Add("@UserID", System.Data.SqlDbType.NVarChar);
comm.Parameters["@UserID"].Value =
member.ProviderUserKey.ToString();
comm.Parameters.Add("@Username", System.Data.SqlDbType.NVarChar);
comm.Parameters["@Username"].Value = member.UserName.ToString();
comm.Parameters.Add("@Dato", System.Data.SqlDbType.DateTime);
comm.Parameters["@Dato"].Value = DateTime.Now;
// Open the connection
59
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
conn.Open();
// Execute the command
comm.ExecuteNonQuery();
// Close the connection
conn.Close();
string url = Request.Url.ToString();
Response.Redirect(url);
}
private void buildKommentar()
{
string connectionString = ConfigurationManager.ConnectionStrings[
"MatConnectionString"].ConnectionString;
SqlConnection myConnection = new SqlConnection(connectionString);
string oppid = Request.QueryString["oppid"];
string sql = "SELECT OppskriftID, KommentarID, Kommentar, UserID,
Username, Dato " +
"FROM Kommentar WHERE OppskriftID = '" + oppid + "' ORDER BY
Dato ASC";
SqlDataAdapter myAdapter = new SqlDataAdapter(sql, myConnection);
// Create and fill a DataSet
DataSet ds = new DataSet();
myAdapter.Fill(ds);
// Bind the datalist to the dataset
dlKommentar.DataSource = ds;
dlKommentar.DataBind();
}
private void buildKnapp()
{
if (User.IsInRole("moderator"))
{
int count = dlKommentar.Items.Count;
for (int i = 0; i < count; i++)
{
LinkButton lbSlett =
(LinkButton)dlKommentar.Controls[i].FindControl("lbSlett");
lbSlett.Text = "Slett kommentar";
}
lbEndre.Text = "Endre oppskrift";
}
}
protected void lbEndre_Click(object sender, EventArgs e)
{
string oppid = Request.QueryString["oppid"];
Response.Redirect("EndreOppskrift2.aspx?oppid=" + oppid);
}
protected void dlKommentar_DeleteCommand(object source,
DataListCommandEventArgs e)
{
60
PRODUKTDOKUMENTASJON Matsans - matsiden for matintoleranse
int komid =
Convert.ToInt32(dlKommentar.DataKeys[e.Item.ItemIndex]);
// Define data objects
SqlConnection conn;
SqlCommand comm;
// Open the connection
string connectionString = ConfigurationManager.ConnectionStrings[
"MatConnectionString"].ConnectionString;
// Initialize connection
conn = new SqlConnection(connectionString);
// Create command
comm = new SqlCommand("DELETE FROM Kommentar WHERE KommentarID = '"
+ komid + "'", conn);
// Open the connection
conn.Open();
// Execute the command
comm.ExecuteNonQuery();
// Close the connection
conn.Close();
string url = Request.Url.ToString();
Response.Redirect(url);
}
}
2
TESTRAPPORT Matsans - matsiden for matintoleranse
3
TESTRAPPORT Matsans - matsiden for matintoleranse
Forord
Dette dokumentet er testrapporten til Matsans. Den beskriver hva som er blitt testet og
hvilke resultater det medførte.
Testing ble utført både under utvikling og etter ferdigstilling av produktet. Iterativ testing
med tilbakemeldinger har vært en betydelig del av utviklingsprosessen for å kunne gjøre
stadig forbedringer og styre utviklingen. Testresultatene viser først og fremst hva som kan
forbedres, men det tilfører også utviklingen nye perspektiver. Mange mangler er allerede
fikset av gruppen, men nye dukker opp og det er fortsatt en del som gjenstår grunnet
gruppens begrensede tids- og arbeidsressurser.
Testrapporten beskriver to typer tester som er blitt utført: funksjonstest og brukertest.
Funksjonstest er en systematisk test for å feilteste programkodens funksjonalitet. Mens en
brukertest er en form for brukbarhetstesting utført av frivillige testpersoner.
Figur 1, kilde: thedailygreen.com
4
TESTRAPPORT Matsans - matsiden for matintoleranse
Innholdsfortegnelse
1. Funksjonstest ................................................................................................................................. 5
1.1 Logg Inn ......................................................................................................................................... 5
1.2 Linker ............................................................................................................................................. 5
1.3 Registrering ................................................................................................................................... 6
1.4 Logg ut ........................................................................................................................................... 6
1.5 Startsiden ...................................................................................................................................... 6
1.6 Stikkord søk ................................................................................................................................... 6
1.7 Navigasjonssystemet .................................................................................................................... 7
1.8 Innsendingsskjemaer .................................................................................................................... 7
1.9 Kommentar ................................................................................................................................... 8
1.10 Endre oppskrift............................................................................................................................ 8
1.11 Sikkerhetskontrollen ................................................................................................................... 9
1.12 Telleren ....................................................................................................................................... 9
1.13 Nettsamfunn ............................................................................................................................... 9
2. Brukertest ..................................................................................................................................... 10
2.1 Testresultater til brukertest av Matsans ..................................................................................... 11
2.2 Vedlegg: Brukertest av Matsans ................................................................................................. 13
3. Referanseliste ............................................................................................................................... 18
5
TESTRAPPORT Matsans - matsiden for matintoleranse
1. Funksjonstest
Funksjonstesten er blitt utviklet med kjennskap til programmeringskoden for å teste de
forskjellige funksjonene i produktet systematisk. Testen er utført av gruppen selv.
1.1 Logg Inn
Funksjon Formål Kommentar
Logge inn. At logg inn fungerte optimalt. OK.
Logge inn med ugyldig brukernavn/passord.
At det blir foretatt en sjekk på bruker opp mot databasen.
OK. Feilmelding ble vist.
Logge inn som administrator.
At brukerrollen administrator fungerer riktig.
OK. Forhåndsbestemte rettigheter kun for administrator blir vist.
Logge inn som moderator.
At brukerrollen moderator fungerer riktig.
OK. Forhåndsbestemte rettigheter kun for moderator blir vist.
Logge inn som medlem. At brukerrollen medlem fungerer riktig.
OK. Forhåndsbestemte rettigheter kun for medlem blir vist.
1.2 Linker
Funksjon Formål Kommentar
Trykke på logoen ”Matsans” helt øverst.
At linken fører til ”Hjem” OK. ”Hjem” siden ble vist.
Trykke på linken ”Hjem” i menyen.
At linken fører til ”Hjem” OK. ”Hjem” siden ble vist.
Trykke på linken ”Artikler” i menyen.
At linken fører til ”Artikler” OK. ”Artikler” siden ble vist.
Trykke på linken ”Nettsamfunn” i menyen.
At linken fører til ”Nettsamfunn” OK. ”Nettsamfunn” siden ble vist.
Trykke på linken ”Om Matsans” i menyen.
At linken fører til ”Om Matsans” OK. ”Om Matsans” siden ble vist.
Trykke på linken ”Min side” i menyen.
At linken fører til ”Min side” OK. ”Min side” siden ble vist.
Trykke på linken ”Vis mer” på en oppskrift.
At linken fører riktig oppskrift. OK.
Trykke på bildet av en oppskrift.
At linken fører til riktig oppskrift. OK.
Trykke på linken ”her” for å gå til registreringssiden.
At linken fører til registreringssiden.
OK. Registreringssiden ble vist.
Trykke på linker under Min side.
At linkene fører til riktige sider. OK.
6
TESTRAPPORT Matsans - matsiden for matintoleranse
1.3 Registrering
Funksjon Formål Kommentar
Registrere ny bruker. At bruker blir registrert. OK.
Registrer bruker med brukernavn som er tatt.
At brukerinformasjonen blir sjekket opp mot databasen.
OK. Beskjed ble gitt.
Registrer bruker med to forskjellige passord.
At det blir sjekket om passord samsvarer med hverandre.
OK. Beskjed ble gitt.
Registrer bruker med manglede informasjon.
At det blir sjekket om informasjon mangler.
OK. * ble vist for manglende informasjon.
Registrer bruker med gyldig e-post.
At det blir sjekket om e-posten er gyldig.
Nei, all tekst kan bli registrert. Anbefaler å sjekke e-postens gyldighet i fremtiden.
1.4 Logg ut
Funksjon Formål Kommentar
Logg ut At bruker blir logget helt ut av systemet.
OK.
1.5 Startsiden
Funksjon Formål Kommentar
Oppdatere siden. At tilfeldige oppskrifter blir oppdatert.
OK.
Dagens oppskrift. At dagens oppskrift viser en ny oppskrift hver dag.
Ja, hver dag vil det bli vist en ny oppskrift. Men hvis nye oppskrifter blir lagt inn, vil dagens oppskrift bli endret.
1.6 Stikkord søk
Funksjon Formål Kommentar
Søk med ett stikkord. At stikkordet blir funnet i databasen
OK. Søkte etter sitron og fikk oppskrifter med sitron.
7
TESTRAPPORT Matsans - matsiden for matintoleranse
Søk med flere stikkord. At flere stikkord blir funnet i databasen.
Ja, søkte etter sitron og mel og fikk oppskrifter med sitron eller mel. Men det var ikke mulig å søke etter oppskrifter som inneholdt både sitron og mel. Søkte både med + tegn og med mellomrom mellom stikkordene og det gikk bra.
Søk med tomt felt. At ingenting blir funnet. Nei, alt blir derimot funnet. Alle oppskrifter som har et mellomrom.
Trykke på søk knappen uten å skrive noe
At ingenting blir funnet. Ja, ingenting blir funnet på setningen ”Søk på oppskrifter og artikler”, som står i søkefeltet fra før av.
1.7 Navigasjonssystemet
Funksjon Formål Kommentar
Trykk på alle kategoriene (Middag, Tilbehør, Dessert, Drikke, Bakst).
At databasen henter frem alle oppskrifter i tilhørende kategori.
OK.
Trykk på alle underkategoriene.
At databasen henter frem alle oppskrifter i tilhørende underkategori.
OK.
Velge en eller flere matintoleranse(r).
At databasen henter frem oppskrifter uten valgt(e) matintoleranse(r).
OK.
Velge ”Folkets oppskrifter” At databasen også henter oppskrifter fra Folkets oppskrifter.
Ja, men i en oppskrift skrevet av folket, blir det ikke vist innsenderens navn i kilde, enda innsenderens navn er lagret i databasen.
1.8 Innsendingsskjemaer
Funksjon Formål Kommentar
Sende inn oppskrifter via skjema til Matsans.
At ny oppskriftinformasjon blir lagret i databasen.
OK.
Sende inn til Folkets oppskrifter via skjema.
At ny oppskriftinformasjon blir lagret i databasen.
OK.
Trykke på Tøm skjema. At skjema blir nullstilt. OK.
8
TESTRAPPORT Matsans - matsiden for matintoleranse
Laste opp en ikke-bildefil gjennom skjemaet.
At ugyldig bildefil skal gi feilmelding.
OK. Får beskjed om dette.
Ikke opplastet bildefil ved innsending av oppskrift.
At en standard bildefil vil bli brukt i stedet for at bildevinduet skal stå tomt.
OK. En standard bildefil blir brukt i stedet for å stå tomt.
1.9 Kommentar
Funksjon Formål Kommentar
Legge inn en kommentar. At databasen registrer en ny kommentar.
OK.
Slette en kommentar. At databasen sletter valgte kommentar.
OK.
1.10 Endre oppskrift
Funksjon Formål Kommentar
Endre tittel. At tittel blir endret. OK.
Endre beskrivelse. At beskrivelse blir endret. OK.
Endre tid. At tid blir endret. OK.
Endre vanskelighetsgrad. At vanskelighetsgrad blir endret.
OK.
Endre ingredienser. At ingredienser blir endret. OK.
Endre antall porsjoner. At antall porsjoner blir endret.
OK.
Endre enhet. At enhet blir endret. OK.
Endre sunnhet. At sunnhet blir endret. Ja, denne funksjonen er registrert, men er ikke synlig på oppskriften som blir vist til brukere enda.
Endre kategori. At kategori blir endret. Nei, den er foreløpig fastsatt på grunn av en funksjon hvor underkategori er avhengig av kategori.
Endre underkategori. At underkategori blir endret. OK.
Endre matintoleranse. At matintoleranse blir endret.
OK.
Endre bilde At nytt bilde blir lastet opp og tilgjengeliggjort i oppskriften.
Nei. Denne funksjonen er ikke utviklet enda.
9
TESTRAPPORT Matsans - matsiden for matintoleranse
1.11 Sikkerhetskontrollen
Funksjon Formål Kommentar
Trykke Tilbake knappen. At leseren blir ført tilbake. OK, leseren ble ført tilbake til oversiktssiden i sikkerhetskontrollen.
Trykke på Endre knappen. At leseren blir ført til Endre siden.
OK.
Trykke på Slett knappen. At oppskriften blir slettet fra databasen.
OK.
Trykke på Godkjenn knappen.
At oppskriften blir godkjent i databasen.
OK.
Trykke på linken ”Sjekk oppskrift”.
At linken fører til oppskriften.
OK.
Trykke på bildet av en oppskrift.
At bildelinken fører til valgt oppskrift.
OK.
1.12 Telleren
Funksjon Formål Kommentar
Trykke på et sidetall. At gjeldende side blir vist. OK.
Trykke på Forrige knappen At forrige side blir vist. OK.
Trykke på Neste knappen. At neste siden blir vist. OK.
1.13 Nettsamfunn
Funksjon Formål Kommentar
Trykke på lenker (forum, emne, lenkeliste).
At lenken går til riktig sted. OK.
Skrive nytt emne. At nytt emne blir skrevet uten problemer og lagret i databasen.
OK.
Svare på emne. At svaret blir registrert og ny post dukker opp i emnet.
OK, men emnelisten blir ikke oppdatert. Bør få emnet med sist aktivitet på toppen av emnelisten.
10
TESTRAPPORT Matsans - matsiden for matintoleranse
2. Brukertest
I en brukertest utfører målgrupper forhåndsskrevne oppgaver relatert med brukbarheten til
nettstedet. Brukerne bringer inn et annerledes perspektiv enn utviklerne og fremstår
dermed som en stor ressurs i utviklingsprosessen. Resultatet kan gi essensiell kunnskap om
målgruppene og brukes til å forbedre nettstedet, som fører til mer fornøyde brukere.
Brukertesting kan være med på å skape ideer tidlig i utviklingsfasen, men kan også være
med på å effektivt avdekke problemområder og andre svakheter i løpet av hele
utviklingssyklusen.
Dette kapittelet inneholder forarbeid og testresultater fra brukertesten som ble
gjennomført. Brukertesten følger som vedlegg.
Figur 2: En brukerstudie hvor testpersonen prater ut sine tanker til testansvarlig. Kilde: iallenkelhet.no
11
TESTRAPPORT Matsans - matsiden for matintoleranse
2.1 Testresultater til brukertest av Matsans
Spørsmålene til brukertesten ble utviklet med hensyn til å teste ut nettstedets kvalitet,
brukervennlighet og tilgjengelighet.
Brukertesten er tredelt. I den første delen blir vi kjent med testpersonenes bakgrunn og
deres forventninger til en matside for matintoleranse. I den andre delen får testpersonen
utdelt oppgaver som skal gjennomføres på nettstedet. I den tredje og siste delen blir det
gjort en evaluering av brukertesten og det bes om andre inntrykk de fra nettstedet ønsker å
gi uttrykk for, som ikke har blitt belyst andre steder i testen.
2.1.1 Del 1: Målgruppe og forventninger
Målgruppen til Matsans består av mennesker i alle aldre, fortrinnsvis med matintoleranse.
Testpersonene hadde ulike bakgrunner og dataferdighetsnivå. Det ble funnet ut at
gjennomsnittspersonen av de som deltok i testen bruker seks timer per døgn på
datamaskinen, inkludert arbeidstid. Minimumsbruken av datamaskinen består av å bruke
Word eller lignende, mens minimumsbruken av internett består av å bruke Google sin
søkefunksjon.
Innhold som er forventet å finne på en matside for matintoleranse er:
Informasjon, råd og veiledning til de som er matintolerante.
Oppskrifter uten de ingrediensene som vedkommende er allergisk/intolerant for.
2.1.2 Del 2: Testoppgaver og brukervennlighet
Ved å gjøre oppgaver på nettstedet ble testpersonene kjent med Matsans. Samtidig gir
dette et inntrykk av hvordan brukervennligheten er på nettstedet.
Gjennomsnittspersonen fant det lett å bruke stikkordssøkefunksjonen til å finne oppskrifter.
Det er forståelig å velge matintoleranse i venstremenyen, men noen hadde litt problemer
med å forstå hvordan man fjernet en valgt matintoleranse. Det største problemområdet var
riktignok å oppdage underkategori–menyen, da det ikke var alle som fant den.
Det var ingen problemer med å registrere seg som medlem. Kommentarfunksjonen på
oppskrifter gikk også problemfritt. Ellers var det litt småproblemer med å forstå hvordan et
forum fungerte.
Gjennomsnittstiden på utførelsen av oppgavene var 16 minutter.
2.1.3 Del 3: Evaluering og inntrykk
Testpersonene syntes brukertesten var morsom og informativ. En deltaker kom med et tips
til den neste brukertesten om å bruke mindre spørsmål som krever tekst som svar. Det ble
også foreslått å forhåndsdefinere svar som var mulig å skalere fra eksempelvis 1 til 10. Dette
ville være raskere for testdeltakeren å svare på, og det blir enklere å måle resultatene for
Matsans.
12
TESTRAPPORT Matsans - matsiden for matintoleranse
Noe kritikk er rettet mot manglende forklaring til matintoleransemenyen. At et klikk velger
matintoleranse, mens det neste klikket velger bort matintoleransen. Navigasjonsmenyen må
også ”huske” hvor på siden brukeren befinner seg etter et klikk. Akkurat nå blir brukeren
kastet tilbake til toppen av siden hver gang et valgt blir gjort på navigasjonsmenyen.
Rosen går til ideen bak nettstedet. Det er en nytenkende matside for matintolerante på
internett. Designet er ”rent og pent”. Ingenting å klage på der. Navigasjonsmenyen som
bruker elimineringsmetoden for matintoleranse får også positiv mottagelse.
En av testdeltakerne savner en form for selvtest opp mot sine egne matintoleranser, som en
slags matintoleransesjekk for de besøkende. Mange mennesker som opplever kroppslige
problemer vet ikke klar over at de har en matintoleranse, da de bare har ”vondt i magen”.
Helhetsinntrykket til Matsans er: ”Superfin, fine bilder og lovende ide bak nettstedet”.
2.1.4 Konklusjon
Nettstedet Matsans er basert på en nytenkende, omtenksom og lovende idé Designet og
layout ble veldig godt mottatt. Navigasjonsmenyen er bra.
Likevel er det nok å jobbe videre med. Blant annet de problemområdene som kom fram som
en naturlig følge av brukertesten:
Synliggjør underkategorimenyen.
En matintoleransesjekk for å finne ut om besøkende har matintoleranse eller ei.
En forklaring til navigasjonsmenyen.
Huske brukerens fokus på siden etter at bruker trykker på et ikon i
navigasjonsmenyen.
13
TESTRAPPORT Matsans - matsiden for matintoleranse
2.2 Vedlegg: Brukertest av Matsans
Velkommen til brukertest.
Denne testen tester nettstedet, ikke deg. Ingenting du gjør er feil. Vi er interessert i å høre
hva du synes, ikke vær redd for å gi verken kritikk eller ros. Det oppfordres til å tenke høylytt
om testen utføres med en observatør tilstede.
Testen består av noen innledende spørsmål. Så vil vi be deg om å utføre en del konkrete
oppgaver. Til slutt ønsker vi å høre litt generelt om hva du synes om nettstedet og testen.
Testresultatene kommer til å bli oppsummert i en kort rapport, hvor du selvfølgelig er
anonym.
Estimert tidsbruk for denne testen er 10-30 minutter, avhengig av dine dataferdigheter.
Lykke til!
Hilsen,
14
TESTRAPPORT Matsans - matsiden for matintoleranse
Innledende spørsmål
1) Noter starttidspunktet for testen:
2) Hva driver du med til daglig?
[ ] Student – linje/hovedfag:
[ ] Fast arbeid - yrkesposisjon:
[ ] Uten arbeid
3) Alder:
4) Kjønn:
[ ] Mann [ ] Kvinne
5) Hvor mange timer i snitt bruker du foran datamaskinen per døgn?
[ ] 0-2 [ ] 2-4 [ ] 4-6 [ ] 6 og mer
6) Hvilke pleier du å gjøre på datamaskinen?
[ ] Programmering [ ] Hjemmesidebygging [ ] PC bygging [ ] Word eller lignende
[ ] Internett [ ] Design [ ] Spille
[ ] Annet, spesifiser:
7) Hva pleier du å bruke internett til?
[ ] Nyheter [ ] Nedlastninger [ ] Finne opplysninger [ ] MSN eller lignende
[ ] Chat [ ] Nettsurfing [ ] Spille [ ] Handle [ ] Forum [ ] Finne oppskrifter [ ] E-post
[ ] Annet, spesifiser:
8) Hva slags innhold forventer du å finne på en matside for matintoleranse?
15
TESTRAPPORT Matsans - matsiden for matintoleranse
Testoppgaver
Start datamaskinen.
Åpne en nettleser og gå til http://matsans.moo.no.
9) Noter starttidspunktet for testoppgavene:
Oppskrift
10) Du ønsker å lage deg en frisk smoothie etter en treningsøkt. Finn en
smoothieoppskrift. (Smoothie er en tyktflytende og forfriskende drikk som er laget
av most, hel frukt eller bær, isbiter og eventuelt litt yoghurt.
Hva heter oppskriften du fant?
Hvordan fant du oppskriften?
11) Er Bringerbærfryd en smoothieoppskrift?
Hvordan fant du ut det?
12) Du ønsker å lage en saus, og du har matintoleranse i melk og sitrus. Finn en saus
oppskrift tilpasset dine behov.
Hva heter oppskriften du fant?
13) Du ønsker å lage en ris rett, og du har matintoleranse i egg og sitrus. Finn en ris rett
oppskrift tilpasset dine behov.
Hva heter oppskriften du fant?
14) Hva er den tredje suppe oppskriften du finner når du har matintoleranse i belgfrukt?
15) Finn en oppskrift med kjøttkaker.
Hva heter oppskriften du fant, og hvordan fant du oppskriften?
16
TESTRAPPORT Matsans - matsiden for matintoleranse
Medlem
16) Registrer deg som ny medlem.
Hvordan gikk det?
17) Kommenter på oppskriften Surkål Du kan skrive det du vil eller si: ”Surkål er surt.”
Hvordan gikk det?
18) Svar på emnet som heter Brukertest som ligger under kategorien Annet i forumet på
nettsamfunnet.
Hvordan gikk det?
19) Noter slutttidspunktet for testoppgavene:
17
TESTRAPPORT Matsans - matsiden for matintoleranse
Debrief
20) Hvordan synes du brukertesten var?
21) Hva synes du om siden?
22) Er det noe som kunne vært gjort annerledes?
23) Hva er bra?
24) Hva er ikke fullt så bra og hvor betydelig er det?
25) Er det noe du savner?
26) Noe annet du vil si?
27) Noter slutttidspunktet for testen:
18
TESTRAPPORT Matsans - matsiden for matintoleranse
3. Referanseliste
Torvatn, Ann-Mari (2007). Dokumentasjonsstandard. http://www.iu.hio.no/~ulfu/hovedprosjekt/dokumenter/dokumentasjonsstandard.pdf
http://74.125.77.132/search?q=cache:UNK0kt2rGloJ:student.iu.hio.no/hovedprosjekter/2005/data/31/00_www/testrapport.php+testrapport+hio&cd=2&hl=no&ct=clnk&gl=no&client=firefox-a [02.05.2009]
http://www.digi.no/275406/it-bransjen-roter-med-brukervennlighet [20.05.2009]
2
BRUKERMANUAL Matsans - matsiden for matintoleranse
3
BRUKERMANUAL Matsans - matsiden for matintoleranse
Forord
Dette dokumentet er brukermanualen for nettstedet Matsans. Den skal gi informasjon om
hva systemet kan gjøre – og hvordan brukeren skal gå frem for å oppnå sine mål.
Brukermanualen er beregnet på brukere av systemet som stiller med minimal IT-
kompetanse eller bedre. Det er forventet at brukeren er allerede kjent med internett som et
medium.
Brukermanualen er skrevet og delt opp etter instruksjoner for de ulike brukerrollene på
nettstedet. De tre forskjellige brukerrollene er bruker, medlem og administrasjon.
Figur 1, kilde: sxc.hu
4
BRUKERMANUAL Matsans - matsiden for matintoleranse
Innholdsfortegnelse
1. Instruksjoner for bruker ................................................................................................................. 5
1.1 Startsiden ...................................................................................................................................... 5
1.2 Se en oppskrift .............................................................................................................................. 6
1.3 Navigasjonssystemet; Velg kategori, underkategori, matintoleranse og alternativ .................... 7
1.4 Registrering ................................................................................................................................... 9
1.5 Stikkord søk ................................................................................................................................. 10
1.6 Besøke sider på nettstedet ......................................................................................................... 11
2. Instruksjoner for brukerrollen: medlem ....................................................................................... 12
2.1 Logge inn ..................................................................................................................................... 12
2.2 Kommentere oppskrift ................................................................................................................ 13
2.3 Lage nytt forumemne ................................................................................................................. 14
2.4 Sende inn oppskrift til Folkets oppskrifter .................................................................................. 15
2.5 Svare på emne............................................................................................................................. 16
3. Instruksjoner for administrasjon ................................................................................................... 17
3.1 Administrasjonssiden .................................................................................................................. 17
3.2 Sende inn oppskrift til Matsans oppskrifter. ............................................................................... 17
3.3 Sikkerhetskontrollsiden .............................................................................................................. 19
3.4 Godkjenne eller slette oppskrift ................................................................................................. 20
3.5 Endre oppskrift ............................................................................................................................ 21
3.6 Slette kommentar ....................................................................................................................... 23
4. Tilbakemeldinger .......................................................................................................................... 24
5
BRUKERMANUAL Matsans - matsiden for matintoleranse
1. Instruksjoner for bruker
Dette kapittelet er beregnet for rollen bruker og vil vise hva denne rollen har tilgang til på
Matsans. Brukerens tilgangsnivå gir leserettigheter på hele nettstedet, og alle
brukerroller(bl.a. medlem og administrator) med høyere tilgangsnivå innehar også
brukerens rettigheter.
1.1 Startsiden
Startsiden er det første brukeren ser når nettstedet besøkes. Det er flere valg brukeren kan
gjøre når denne siden besøkes.
Figur 2: Startsiden og valgmuligheter.
Logge inn.
Registrere seg for
å bli medlem.
Velg kategori for å se
utvalgte oppskrifter.
Velge å se mer av en
oppskrift fra startsiden.
Skrive inn
stikkord og søk. Besøk en side fra
menyen.
6
BRUKERMANUAL Matsans - matsiden for matintoleranse
Bruker kan klikke seg inn på følgende valgmuligheter tilgjengelige fra startsiden:
- Velge å se mer av en oppskrift fra startsiden.
- Velge kategori og se mer av oppskrifter i utvalgt kategori.
- Registrere seg for å bli medlem.
- Logge inn.
- Skrive inn stikkord og søke i søkemotoren.
- Velge å besøke en side fra menyen.
1.2 Se en oppskrift
For å velge en oppskrift må brukeren klikke på bilde eller tekst tilhørende ønsket oppskrift.
Når det er gjort vil brukeren få fram følgende side:
Figur 3: Oppskriftsiden
Se oppskrift.
Logg inn for å
kommentere.
7
BRUKERMANUAL Matsans - matsiden for matintoleranse
Hovedaktivitetene som bruker kan gjøre på oppskriftsiden er:
- Se oppskrift.
- Logge inn for å kommentere.
1.3 Navigasjonssystemet: Velg kategori, underkategori, matintoleranse og
alternativ
Menyen lar brukeren navigere seg frem til en oversikt med oppskrifter med bakgrunn i
brukerens preferanser. En bruker starter å navigere seg til oversiktssiden ved å først velge
en kategori fra startsiden.
Figur 4: Oversiktssiden med oppskrifter, og navigasjonssystemet.
Velg kategori.
Velg underkategori.
Velg matintoleranse.
Velg alternativ.
Velg en oppskrift.
8
BRUKERMANUAL Matsans - matsiden for matintoleranse
Deretter kan bruker gjøre følgende hovedvalg på oversiktssiden:
- Legge til eller velge bort flere kategorier.
- Velge underkategori av valgte kategori.
- Legge til eller velge bort matintoleranse.
- Velge alternativet ”Folkets oppskrifter”.
- Velge en oppskrift fra oversikten.
Når et valg er gjort, vil ikonets farge endres fra grått til farget.
Figur 5: Oversiktssiden hvor kategori Middag, underkategori: Annet, matintoleranse: Melk og Nøtter er valgt.
Middag, annet, melk
og nøtter er valgt.
9
BRUKERMANUAL Matsans - matsiden for matintoleranse
1.4 Registrering
En bruker kan registrere seg som et medlem av nettstedet. Registreringssiden kommer
brukeren til enten via en lenke på toppen av startsiden, eller en lenke på bunnen i menyen
på ”Min side”.
Figur 6: Registreringssiden med eksempel på utfylt skjema.
På registreringssiden må brukeren fylle inn et skjema for å bli medlem. Dersom innfyllingen
er mangelfull eller feil, vil brukeren få beskjed om dette før profilen blir opprettet.
Et sikkerhetsspørsmål er et spørsmål som kan bli stilt til brukeren for å gjenopprette et
glemt eller mistet passord. Svaret er skrevet i feltet ”Sikkerhetssvar”.
Figur 7: Registreringsside med feilmelding.
Fyll inn skjema og trykk
på Opprett bruker for å
bli medlem.
Feilmelding om opptatt
brukernavn, mangelfull
og feil informasjon.
10
BRUKERMANUAL Matsans - matsiden for matintoleranse
1.5 Stikkord søk
Bruker kan søke etter oppskrifter med stikkord gjennom søkemotoren på toppen av siden.
Når bruker har skrevet inn stikkord og trykket på ”Søk”- knappen, vil det presenteres en
resultatoversikt med treff som matcher søkekriteriene. På resultatsiden kan brukeren klikke
seg videre inn på ønsket oppskrift.
Figur 8: Søkeresultatsiden med stikkordene: gresk honning.
Søk på stikkord er ikke begrenset til kun ett stikkord. Bruker kan søke med flere stikkord om
gangen og få søkeresultater som viser begge stikkordene.
Eksempel på søk med flere stikkord er: gresk honning Eller: gresk + honning.
Figur 8 viser søkeresultatene fra eksempelet hvor det søkes på stikkordene ”gresk” eller
”honning”.
Skriv inn stikkord og trykk på søk for
å få søkeresultater med stikkord.
11
BRUKERMANUAL Matsans - matsiden for matintoleranse
1.6 Besøke sider på nettstedet
En besøkende kan se alle sider som rollen bruker har tilgang til, som er det laveste
tilgangsnivået man kan tildeles på nettstedet. Denne rollen harkun lesetilgang på utvalgte
områder. Nettstedet er bygget opp med ulike roller, og en besøkende vil bli tildelt denne
rollen.
Følgende valg i menyen kan en bruker besøke:
- Hjem (startsiden).
- Artikler.
- Nettsamfunn.
- Om Matsans.
- Min side (vil kun se innloggingssiden).
På disse sidene kan brukeren klikke seg videre inn for å se nærmere på informasjon.
Figur 9: Nettsamfunnet hvor en bruker kan klikke seg inn for å lese mer, uten å kunne delta i diskusjonen.
Klikk inn for å se på
forumemner.
Besøke sider fra menyen.
12
BRUKERMANUAL Matsans - matsiden for matintoleranse
2. Instruksjoner for brukerrollen: medlem
Dette kapittelet er beregnet for brukerrollen medlem og vil vise hva medlemmet har aksess
til å gjøre på Matsans. Et medlem har et høyere tilgangsnivå enn en bruker, og derfor tilgang
på mer funksjonalitet. En bruker blir av nettstedet sett på som et medlem etter innlogging
og autentisering.
2.1 Logge inn
For å få tilgang til medlemssidene må brukeren først logge inn. Dette gjøres enten gjennom
innloggingssiden på ”Min side” eller øverst til høyre på siden.
For å logge inn må brukeren ha opprettet en profil på forhånd, noe man gjør ved å registrere
seg på nettstedet. En innlogging skjer når brukeren fyller inn riktig brukernavn og passord.
Figur 10: Innloggingssiden med utfylt informasjon for å logge seg inn.
Figur 11: Brukeren bruker er logget inn på innloggingssiden / Min side.
Fyll inn riktig brukernavn
og passord for å logge inn.
Bruker er logget inn og blir hilst
ved brukernavn. Her heter
brukeren: bruker.
13
BRUKERMANUAL Matsans - matsiden for matintoleranse
2.2 Kommentere oppskrift
Et medlem kan først kommentere en oppskrift i innlogget tilstand. Kommentarene skrives i
kommentarboksen nederst på selve oppskriftsiden, og sendes ved å trykke på ”Send”-
knappen.
Figur 12: Kommentarboks for å fylle inn kommentar på oppskriftsiden.
Fyll inn kommentarboks med
tekst/kommentar og trykk på
send for å sende inn.
En kommentar.
14
BRUKERMANUAL Matsans - matsiden for matintoleranse
2.3 Lage nytt forumemne
Et medlem kan kun lage nye forumemner i innlogget tilstand. Dette gjøres ved å velge
forumet hvor medlemmet ønsker å skrive et nytt emne og deretter trykke på ”Nytt Emne”-
knappen.
Figur 13: Forumemnelistesiden med Nytt Emne knapp for innlogget medlem.
Deretter er det bare å skrive tekst og trykke på ”Send”-knappen for å legge til det nye
emnet, eller ”Tilbake”-knappen om man ombestemmer seg.
Figur 14: NyttEmne-siden for medlem å skrive inn ønsket tekst til nytt emne.
Trykk på Nytt Emne
knappen for å skrive nytt
emne i ønsket forum.
Skriv inn tittel.
Skriv inn tekst.
Trykk på Send knappen
for å legge til nytt emne.
Trykk på Tilbake knappen for å
ikke legge til nytt emne alikevel.
15
BRUKERMANUAL Matsans - matsiden for matintoleranse
2.4 Sende inn oppskrift til Folkets oppskrifter
Et innlogget medlem kan sende inn sin egen oppskrift ved å trykke på lenken ”Send inn
oppskrift til Folkets oppskrifter” under Min side.
Figur 15: Innloggingsside med mulighet til å sende inn Folkets oppskrift.
Her kan medlem fylle inn et skjema med informasjon om oppskriften. For å sende inn
oppskriften trykkes på ”Send”-knappen.
Figur 16: SendNyOppskrift-siden hvor medlem kan fylle inn oppskriften i et skjema.
Trykk på lenke for å sende inn
oppskrift til Folkets oppskrifter.
Fyll inn skjema
med informasjon
om medlemmets
oppskrift.
Trykk Send inn for å
sende inn oppskrift.
Trykk Tøm skjema for
å nullstille skjema.
16
BRUKERMANUAL Matsans - matsiden for matintoleranse
2.5 Svare på emne
Innlogget medlem kan svare på et emne i forumet ved først å finne frem til det aktuelle emnet, for å
så skrive i tekstboksen nederst på emnesiden.
Figur 17: Emne-siden hvor medlem kan svare på øvrige kommentarer. Svarfeltet ligger nederst på siden.
Skriv kommentar
til emnet.
Trykk Send knapp
når svaret er klart
til å sendes inn.
17
BRUKERMANUAL Matsans - matsiden for matintoleranse
3. Instruksjoner for administrasjon
Dette kapittelet er beregnet for administrasjonen, det vil si en som er enten rollen
administrator eller moderator, og inneholder informasjon om hva administrasjonen har
tilgang til å utføre på Matsans. Disse brukerrollene er forhåndsvalgt gjennom ASP.NET Web
Site Administration Tool/ ASP.NET Configuration for prosjektet Matsans gjennom
utviklingsverktøyet Visual Studio.
I tillegg til nye rettigheter har administrasjonen også tilgang på det samme som medlem og
bruker har.
3.1 Administrasjonssiden
Administrasjonen ser sine valgmuligheter fra innloggingssiden / Min side i venstre kolonne.
Følgende menyvalg er det kun administrasjonen som har tilgang på:
- Sende inn oppskrift til Matsans oppskrifter.
- Sjekke oppskrifter som venter i sikkerhetskontroll.
Figur 18: Innloggingssiden for administrasjonen.
3.2 Sende inn oppskrift til Matsans oppskrifter.
Administrasjon kan sende inn oppskrifter ved å trykke på lenken ”Send inn oppskrift til
Matsans oppskrifter” under Min side.
Send inn oppskrift til Matsans oppskrifter.
Sjekke oppskrifter som venter i sikkerhetskontroll.
18
BRUKERMANUAL Matsans - matsiden for matintoleranse
Figur 19: Send inn Matsans oppskrift gjennom skjema.
Deretter kan administrasjonen fylle inn skjemaet med opplysninger om oppskriften og
trykke på ”Send inn”-knappen for å sende oppskriften inn til Matsans oppskrifter. ”Tøm
skjema”-knappen vil nullstille skjemaet.
Fyll inn skjema med
opplysninger til ny
Matsans oppskrift.
Trykk Send inn knappen
når oppskriften er klar til
å sendes inn.
Trykk Tøm skjema
knappen for å
nullstille skjemaet.
19
BRUKERMANUAL Matsans - matsiden for matintoleranse
3.3 Sikkerhetskontrollsiden
Når administrasjonen trykker på lenken ”Sjekke oppskrifter til godkjenning” fra
innloggingssiden / Min side, kommer administrasjonen til en side som viser en oversikt over
oppskrifter som venter på å bli godkjent. Denne oversiktssiden går under navnet
sikkerhetskontrollen.
Figur 20: Sikkerhetskontrollen med oppskrifter som venter på godkjenning.
Administrasjonen kan fra denne oversiktssiden trykke seg inn på en oppskrift som det
ønskes å se nærmere på. Deretter følger valget om å godkjenne eller slette oppskrift.
Trykk på Sjekk oppskrift for å
se nærmere på en oppskrift i
sikkerhetskontrollen.
20
BRUKERMANUAL Matsans - matsiden for matintoleranse
3.4 Godkjenne eller slette oppskrift
På godkjenningssiden, når administrasjonen har valgt en oppskrift fra sikkerhetskontrollen,
kan administrasjonen velge å slette eller å godkjenne oppskriften ved å trykke på en knapp.
På denne siden kan administrasjonen også trykke seg videre til å endre oppskrift, eller gå
tilbake til oversikten i sikkerhetskontrollen.
Figur 21: Godkjenningssiden for vurdering av valgt oppskrift fra sikkerhetskontrollen.
Trykk Godkjenn
knappen for å
godkjenne oppskriften.
Trykk Tilbake knappen for
å gå tilbake til oversikten i
sikkerhetskontrollen.
Trykk Slett knappen for
å slette oppskriften.
Trykk Endre knappen
for å gå videre til Endre
oppskrift siden.
21
BRUKERMANUAL Matsans - matsiden for matintoleranse
3.5 Endre oppskrift
Administrasjonen kan komme til siden for å endre oppskrift enten gjennom ”Endre”-
knappen på godkjenningssiden i sikkerhetskontrollen eller ved å trykke på linken ”Endre
oppskrift” på oppskriftsiden.
Figur 22: Endre oppskrift gjennom oppskriftssiden.
Trykk på Endre oppskrift
for å komme til siden for
å endre oppskrift.
22
BRUKERMANUAL Matsans - matsiden for matintoleranse
På siden for å endre oppskrift kan administrasjonen forandre teksten som er inne i de fylte
feltene på den utvalgte oppskriften. For å oppdatere med ny tekst, kan administrasjonen
trykke på knappen ”Oppdater”. Hvis det ikke er noe å endre på, velges knappen ”Tilbake”
for å komme tilbake til den siden hvor administrasjonen kom fra.
Figur 23: Endre oppskrift fra denne siden ved å forandre på tekst og trykke på ”Oppdater”-knappen.
Forandre på tekst i feltene
med ny oppskriftinformasjon.
Trykk på Oppdater
knappen for å
oppdatere oppskrift. Trykk på Tilbake
knappen for å gå tilbake
til hvor du kom fra.
23
BRUKERMANUAL Matsans - matsiden for matintoleranse
3.6 Slette kommentar
I forumet kan administrasjonen slette en kommentar ved å trykke på ”Slett kommentar”-
linken tilhørende den aktuelle kommentaren.
Figur 24: Slett kommentar fra oppskriftssiden.
Trykk på Slett kommentar
for å slette kommentar.
24
BRUKERMANUAL Matsans - matsiden for matintoleranse
4. Tilbakemeldinger
Da vi har som intensjon å gjøre vårt nettsted så brukervennlig som mulig er vi takknemlige for
tilbakemeldinger. Så om dere skulle finne noe mangelfullt ved brukerveiledningen så send gjerne en
e-post om dette til [email protected].
Forøvrig ønsker vi dere lykke til med bruk av nettstedet.