System for generering av webskjemaer for Mamut ASA. Av Kjetil Hårtveit, s155501

Størrelse: px
Begynne med side:

Download "System for generering av webskjemaer for Mamut ASA. Av Kjetil Hårtveit, s155501"

Transkript

1 System for generering av webskjemaer for Mamut ASA Av Kjetil Hårtveit, s Hovedprosjekt nr Høgskolen i Oslo våren 2011

2 Prosjektrapport Mamut Webforms 2 av 8 PROSJEKT NR TILGJENGELIGHET Åpen Studieprogram: Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo Telefon: Telefaks: HOVEDPROSJEKT HOVEDPROSJEKTETS TITTEL System for generering av webskjemaer for Mamut ASA DATO ANTALL SIDER vedlegg PROSJEKTDELTAKERE Kjetil Hårtveit, s INTERN VEILEDER Alfred Bratterud OPPDRAGSGIVER Mamut ASA KONTAKTPERSON Espen Johannessen SAMMENDRAG Systemet som er utviklet brukes til å generere webskjemaer. Hensikten med systemet er å øke datakvalitet ved å fjerne manuelle rutiner, redusere svinn av leads og øke salg gjennom bedre oppfølging av leads. Systemet er utviklet med Microsoft teknologier C#/ASP.NET med MSSQL og Windows Service. 3 STIKKORD Mamut Webforms Webskjemagenerering.NET

3 Prosjektrapport Mamut Webforms 3 av 8 Innholdsfortegnelse 1. Sammendrag Forord Program CDen Demoside Prosessdokument Kravspesifikasjon Produktdokumentasjon Testdokumentasjon Brukerdokumentasjon Vedlegg

4 Prosjektrapport Mamut Webforms 4 av 8 1. Sammendrag Mamut ASA ønsket ett å få utviklet ett nytt system for å generere webskjemaer for innsamling av leads (kontaktinfo av personer som er interessert i å kjøpe ett produkt eller en tjeneste) fra kampanjeaktiviteter. Det eksisterende CMS systemet og den nåværende rutinen for registrering av leads har svakheter som både har negativ virkning på det totale salget og tilgjengelige ressurser. Det nye systemet har som mål å strømlinjeforme og automatisere leadinnsamlingen så mye som mulig og dermed løse opp flokene som er tilstede. En oppsummering av problemene med dagens løsning er: Det gjeldende CMS systemet har ingen integrering med sporingseffekter som kan gi nyttig informasjon til markedsførerne. Dette innebærer at sporingskoden må manuelt flettes inn i hvert eneste skjema. Dette er en ugunstig manuell rutine som følger med seg samtlige ulemper. Det er en besværlig prosess å opprette selve skjemaene. Det nye systemet vil ha som mål å løse problemer ved prosessen. Det største problemet derimot er at selgerne i dag er avhengig av e-postveksling for å registrere og følge leads. Leadsene går gjennom flere manuelle poster før de blir tatt opp og det er sannsynlig at de blir forkastet på veien. I dag går leads gjennom flere manuelle poster før det registreres i CRM systemet Oppsummert har systemet følgende mål: Ressursbesparelser gjennom automatisering av rutineoppgaver. Øke datakvalitet ved å fjerne manuelle rutiner. Gir bedre informasjon i forhold til hvilke prosjekter som selger. Reduserer svinn av leads. Øke salget gjennom bedre oppfølging av leads.

5 Prosjektrapport Mamut Webforms 5 av 8 I den ønskede situasjonen fjernes manuelle rutiner i flere ledd av kjeden Utfordringen i dette prosjektet var at jeg måtte jobbe alene ettersom jeg parterte med en gruppe relativt sent og fant derfor ikke andre medarbeidere. Uansett syns jeg det var en interessant oppgave hvor jeg hadde mye fleksibilitet med å forme systemet og komme med kreative løsninger. Dette ga meg motivasjon til å stå på og lyst til å lage ett godt produkt. Jeg skal ikke lyve - jeg har brukt mye tid på dette systemet og det har vært mye berg-og-dalbane i utviklingsprosessen, men alt i alt har det vært utrolig givende. Jeg har lært mye om blant annet C# språket, MVC2 og.net rammeverket, Windows Service og ikke minst hele prosessen med å lage en nettsideapplikasjon. Jeg har også lært andre nyttige teknikker slik som enhetstesting og modellering i Visio. For å nevne litt om systemets gjeldende situasjon så er det allerede på generalprøve på en ekte landingsside i ett ordentlig produksjonsmiljø. Akkurat nå ser det lovende ut. Bugs og feil begynner å bli utradert og de viktigste funksjonene fungerer som de skal. Det er alltid litt overraskende hva rart man oppdager når systemet testes i ett forskjellig miljø enn utviklingsmiljøet, så derfor er det ekstra sunt for systemet og ikke minst for kropp og sjel med en ordentlig live test. Live skjema på landingsside hos Mamut

6 Prosjektrapport Mamut Webforms 6 av 8 2. Forord Denne rapporten dekker ett hovedprosjekt for Bachelor grad studiet Anvendt Datateknologi hos Høgskolen i Oslo, våren Ettersom hovedprosjektet er ett websystem er rapporten godt dekket med skjermbilder for å gi ett godt innblikk på hvordan systemet oppleves og for å gjøre det enklere å forstå. Det er også laget modeller for å ytterligere illustrere strukturer og dataflyt der det føltes passende. Kryssreferanser med hyperlenker er hyppig brukt for å gjøre det lettere for leseren og raskt navigere seg til relevant lesestoff. Alle dokumentene er strukturert hierarkisk for å segmentere innholdet i logiske deler. Dokumentene følger også en gjennomgående design for å gi en helhetlig følelse. Kravspesifikasjonen er rimelig detaljert og inneholder mange tekniske spesifikasjoner. Grunnen til at kravspesifikasjonen er så grundig med detaljer er for å kunne kommunisere tekniske implementeringer med oppdragsgiveren. En annen grunn er at vi følger prinsippet om at hvor bedre dokumentert systemet er før implementeringsfasen, hvor mindre tid behøver man å bruke til refaktorering (endre eksisterende kode). Til syvende og sist gir en detaljert kravspesifikasjon større sjanse for at oppdragsgiveren blir tilfreds med produktet. Prosessdokumentasjonen dekker hele systemutviklingsprosessen. Den gir ett innblikk i hvordan jeg opplevde alle fasene av prosjektet, samt innblikk i utfordringer jeg støtte på og hvordan de ble løst. Produktdokumentet gir en grundig oversikt over systemet fra mange perspektiver. Man får en beskrivelse av systemet fra brukerens perspektiv i form av skjermbilder og forklaringer av nettstedet, systemets interne moduler og forsamlinger blir omtalt og til slutt database strukturen blir fremvist. Man får også lest om installasjoner og rutiner som er relevante for dataansvarlige av systemet. Testdokumentet inneholder beskrivelser og resultater av testene utført i samsvar med systemet. Brukerveiledning om systemet finnes i brukerdokumentet. Man legger kanskje merke til at det er ofte duplisert informasjon i samtlige dokumenter. Grunnen til at dette er at dokumentene skal kunne leses og forstås individuelt, ettersom ikke alle dokumenter passer til alle roller som vil bruke systemet. Brukere vil lese brukerdokumentasjonen, dataansvarlige vil lese produktdokumentasjonen også videre. Til slutt ønsker jeg å nevne noen personer som har hjulpet meg på veien. Jeg vil takke veilederen min Alfred Bratterud for å gi gode tips og fortalt meg gode historier. Jeg vil også takke Espen Johannessen og alle andre hos Mamut for å være dem de er og for å ha gitt meg oppdraget og hatt troen på at jeg kunne komme i mål med prosjektet.

7 Prosjektrapport Mamut Webforms 7 av 8 3. Program CDen Sammen med rapporten inkluderes det utviklede systemet samt annen digital informasjon med en CD. CDen består av følgende: Filene som oppgjør nettstedet. Database filer som brukes til å opprette database strukturen og data. Service programmet som brukes til automatisk eksportering. Kildekoden til hele systemet. Oppgave- og timeliste i form av excel dokument. Brukerdokumentasjon.

8 Prosjektrapport Mamut Webforms 8 av 8 4. Demoside Som sagt er systemet lagt ut live og brukes av Mamut til å samle inn leads i dette øyeblikk. Naturlig nok hadde det vært ugunstig å bruke denne instansen for demonstrering; ikke bare er det kjipt for Mamut men også for testerne som kommer til å være livredde for å trykke på noe som helst. Derfor er systemet også lagt ut på en adskilt webserver med en egen database. Her kan man herje rundt som man vil. Alt du trenger å gjøre er å besøke nettsiden xxxxx (bare tilgjengelig i papirversjonen) og følge instruksjonene der.

9 Prosessdokumentasjon Mamut Webforms 1 av 22 PROSJEKT NR Studieprogram: Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET Åpen Telefon: Telefaks: PROSESSDOKUMENT HOVEDPROSJEKTETS TITTEL System for generering av webskjemaer for Mamut ASA DATO ANTALL SIDER 22 PROSJEKTDELTAKERE Kjetil Hårtveit, s INTERN VEILEDER Alfred Bratterud OPPDRAGSGIVER Mamut ASA KONTAKTPERSON Espen Johannessen SAMMENDRAG Systemet som er utviklet brukes til å generere webskjemaer. Hensikten med systemet er å øke datakvalitet ved å fjerne manuelle rutiner, redusere svinn av leads og øke salg gjennom bedre oppfølging av leads. Systemet er utviklet med Microsoft teknologier C#/ASP.NET med MSSQL og Windows Service. 3 STIKKORD Mamut Webforms Webskjemagenerering.NET

10 Prosessdokumentasjon Mamut Webforms 2 av 22 Innholdsfortegnelse 1. Introduksjon Om dokumentet Takknemligheter Om systemet Om bedriften Opprinnelig situasjon vs. ønsket situasjon Mål med systemet Om utviklingsprosessen Utviklingsmetode Miljø Teknologier Verktøy Prosessen Begynnelsen mislykket gruppearbeid Finne ett hovedprosjekt Forprosjekt Designfasen Implementeringsfasen Det endelige systemet I forhold til kravspesifikasjonen Utfordringer på veien Revisjonskontroll feil Hardkodede strenger Dynamic Query Logging av feil Testing av statiske klasser Testing av innebygde MVC klasser Enkoding trøbbel Timer-out! Tidsforbruk og registrering av timer Timeregistreringssystem Timefordeling Kravspesifikasjonen Dens rolle Endringer Konklusjon Referanseliste Referanser Litteratur Stikkordliste... 21

11 Prosessdokumentasjon Mamut Webforms 3 av Introduksjon 1.1 Om dokumentet Dette dokumentet dekker hele systemutviklingsprosessen. Den gir ett innblikk i hvordan jeg opplevde alle fasene av prosjektet, samt innblikk i utfordringer jeg støtte på og hvordan de ble løst. Det forteller også om miljøet jeg jobbet under, utviklingsmetoden og verktøyene jeg brukte. Det forklarer også noe om kravspesifikasjonens rolle i prosjektet. 1.2 Takknemligheter Før vi går i gang vil jeg takke veilederen min Alfred Bratterud for å gi gode tips og ha fortalt meg gode historier. Jeg vil også takke Espen Johannessen og alle andre hos Mamut for å være dem de er og for å ha gitt meg oppdraget og hatt troen på at jeg kunne komme i mål med prosjektet.

12 Prosessdokumentasjon Mamut Webforms 4 av Om systemet Mamut ASA ønsket ett å få utviklet ett nytt system for å generere webskjemaer for innsamling av lead fra kampanjeaktiviteter. Det eksisterende CMS systemet og den nåværende rutinen for registrering av leads har svakheter som både har negativ virkning på det totale salget og tilgjengelige ressurser. Det nye systemet har som mål å strømlinjeforme og automatisere leadinnsamlingen så mye som mulig og dermed løse opp flokene som er tilstede. Løsningen vil i stor grad være en Microsoft orientert løsning. Det vil bli utviklet i IDEen Visual Studio 2010 i rammeverket ASP.NET/ C# med en backend MSSQL database. 2.1 Om bedriften Mamut 5 (OSE MAMUT ) ble etablert i 1994 og er en ledende leverandør av administrative programvareløsninger og Internettbaserte tjenester til små og mellomstore virksomheter i Europa. Mamut tilbyr løsninger for økonomistyring/regnskap, salgsstøtte, kundeog kontaktoppfølging (CRM), innkjøp/logistikk, lønn/personal, prosjektstyring, e-handel, domener, e-post og webhotell. Mer enn kunder i Europa forenkler hverdagen med løsninger fra Mamut. 2.2 Opprinnelig situasjon vs. ønsket situasjon Det gjeldende CMS systemet hos Mamut som brukes til å generere webskjemaer har ingen integrering med sporingseffekter som kan gi nyttig informasjon til markedsførerne. Dette innebærer at sporingskoden må manuelt flettes inn i hvert eneste skjema. Dette er en ugunstig manuell rutine som følger med seg samtlige ulemper: 1. man har ingen styring over hvilke skjemaer som samler inn kode 2. manuell innfletting krever programmering kompetanse 3. manuell innfletting åpner muligheten for brukerfeil som kan forårsake tap av sporingsdata og lavere datakvalitet 4. manuell rutine krever ressurser som kan spares Det er også en besværlig prosess å opprette selve skjemaene. Det nye systemet vil ha som mål å løse problemer ved prosessen. Her har vi også mulighet til å legge til ekstra funksjonalitet som mangler i det eksisterende CMS systemet som kan bidra til bedre effektivitet. Det største problemet derimot er at selgerne i dag er avhengig av e-postveksling for å registrere og følge leads. Leadsene går gjennom flere manuelle poster før de blir tatt opp og det er sannsynlig at de blir forkastet på veien. Dette systemet vil redusere de manuelle rutiner til ett minimum og sørge for høyere datakvalitet.

13 Prosessdokumentasjon Mamut Webforms 5 av 22 Opprinnelig situasjon I diagrammet over kan vi se at salgsadministrator må hente ut leads fra databasen manuelt. Videre må vedkommende filtrere bort ugyldige leads og manuelt sende leadinfoen videre til en selger. Her skjer det nok en manuell rutine hvor selgeren må registrere leadet i CRM systemet. Ønsket situasjon I den ønskede situasjonen skal systemet som tidligere nevnt blant annet fjerne manuelle rutiner. Blant annet skal ikke salgsadministrator behøve å hente leads manuelt, men de skal automatisk bli eksportert fra systemet på en periodisk basis. Filtrering av leads kan da skje digitalt og leads skal importeres inn i CRM systemet utenom å gå igjennom selgere. Merk at systemet mitt er begrenset til å eksportere leadsene fra databasen. Filtrering av leads og videre utover i kjeden utføres av andre systemer.

14 Prosessdokumentasjon Mamut Webforms 6 av Mål med systemet Ressursbesparelser gjennom automatisering av rutineoppgaver. Øke datakvalitet ved å fjerne manuelle rutiner. Gir bedre informasjon i forhold til hvilke prosjekter som selger. Reduserer svinn av leads. Øke salget gjennom bedre oppfølging av leads.

15 Prosessdokumentasjon Mamut Webforms 7 av Om utviklingsprosessen 3.1 Utviklingsmetode Begynnelsen av prosjektperioden var preget av fossefall metoden. Først ble det planlagt og undersøkt hva systemet skulle gjøre og hvordan det skulle bygges. Deretter ble det implementert gradvis, men det kom selvfølgelig nye forespørsler og som førte til at man gikk litt frem og tilbake mellom fossefallstegene. Dermed kan man si at i praksis var utviklingsmetoden noe mer iterativ enn planlagt. 18 Når det nærmet seg slutten av utviklingsperioden fant vi ut at det kunne vært nyttig med en prototype test av systemet. Systemutviklingen har altså også gjennomgått prototyping som en måte å teste og kvalitetssikre systemet ytterligere. Prototypingen sørger for mange fordeler i systemutviklingen: Økt systemkvalitet Økt suksessjanse for systemet Økt produktivitet og effektivitet for brukerne av systemet Reduserte senere kostnader for utvidelse, debugging eller restrukturering 3.2 Miljø Systemutviklingen ble utført i IDEen Visual Studio Den støtter ett arkitekturisk mønster kalt MVC 1 (Model-view-controller) som jeg brukte som fundament i systemet. Mer konkret brukte jeg MVC 2.0 som er en MVC programmeringsmodell som i tillegg inneholder nyttige oppdateringer for koding med ASP.NET. Versjonskontroll ble med Subversion 10 ble løpende brukt under utviklingen. 3.3 Teknologier Microsoft Windows 8 Windows ble først introdusert i 1985 som ett tilleggsprogram til MS-DOS som ett svar på den økende interessen i grafiske grensesnitt. I dag er Microsoft Windows verdens ledende operativsystem og det er estimert at de har 91% av klientene som bruker Internett. 17 ASP.NET 4.0 / C# ASP.NET 1 er ett applikasjonsrammeverk utviklet av Microsoft og det brukes til å lage dynamiske nettsider, nettapplikasjoner og nettjenester. Det var først introdusert i 2002 med versjon 1.0 og er nå oppe i versjon 4.0. C# 9 (C-sharp) er ett hardskrevet, objekt orientert programmeringsspråk. Det ble utviklet av Microsoft i 2001.

16 Prosessdokumentasjon Mamut Webforms 8 av 22 Microsoft SQL Server 12 MSSQL er en relasjonell modell database utviklet av Microsoft for bruk med Windows kompatible applikasjoner. Windows Service En service er ett program som kjører i bakgrunnen og ikke har ett visuelt grensesnitt. I dette prosjektet brukes det til å foreta automatisk eksporteringer av leads. 3.4 Verktøy Visual Studio IDE av Microsoft for utvikling med.net og andre Microsoft teknologier/produkter. Har støtte for versjonskontroll slik som Subversion. Hele Mamut Webforms systemet samt Windows Servicen ble utviklet i VS Microsoft Word Tekstbehandlingsprogram brukt for å dokumentere systemet og utviklingsprosessen. Microsoft Excel Brukt til å loggføre timer og opprettholde oppgaveliste. Microsoft PowerPoint Brukt til å lage presentasjoner. Microsoft Visio Brukt til å lage grafiske modeller og skjermbilder. 15 Subversion 10 Open-source versjons- og revisjonskontroll system laget av Apache, først lansert i oktober år Det brukes til å opprettholde gjeldende og historiske versjoner av filer. Dropbox 11 Dropbox ble brukt for å oppbevare alle dokumenter skrevet i sammenheng med systemutviklingen. Det ble også brukt som ett slags revisjonskontroll system ettersom det er mulig å rulle tilbake til tidligere versjoner av dokumentene. I tillegg overførte jeg all

17 Prosessdokumentasjon Mamut Webforms 9 av 22 kildekoden over dit på et regelmessig intervall for å skape redundans i tilfelle hardware kræsj på min side. 16 Gallio, NUnit og RhinoMocks Alle de automative testene skrevet i Mamut Webforms er laget basert på testrammeverket NUnit og RhinoMocks. For å kjøre disse testene brukes Gallio Icarus applikasjonen. FileZilla Ble brukt for å håndtere filer på SFTP og FTP servere.

18 Prosessdokumentasjon Mamut Webforms 10 av Prosessen 4.1 Begynnelsen mislykket gruppearbeid I utgangspunktet var jeg på gruppe med 3 andre studenter som jeg var godt kjent med etter de 3 årene på HiO. Vi begynte å søke etter hovedoppgave hos samtlige bedrifter men det var dårlig med respons. Det var også en gjennomgående uggen stemning ettersom frister ikke ble holdt og ikke alle var fornøyde med visse studenters innsats. Vi signerte til og med samarbeidsavtaler for å prøve å løse problemet, men det var ikke overbevisende nok. Ved midten av november 2010 bestemte jeg meg for å forlate gruppa og jobbe på egenhånd. 4.2 Finne ett hovedprosjekt Jeg kom i kontakt med Mamut ASA om ett potensielt hovedprosjekt et par uker før juletider og heldigvis hadde dem ett prosjekt som virket perfekt for meg og min situasjon. De ønsket ett nytt friskt webskjema genereringssystem som var bedre til å samle og spore leads, som igjen blir brukt til å generere mer salg, enn det originale systemet og rutinene de bruker. Ettersom jeg alltid har vært fascinert av webkoding og programmering visste jeg at jeg måtte gripe sjansen. Jeg skrev prosjektskisse for prosjektet noen dager senere og prosjekt Mamut Webforms var født. 4.3 Forprosjekt Etter juleferien møtte jeg Espen fra Mamut hvor vi diskuterte forprosjektet. Han viste meg hvordan dagens situasjon lå an med blant annet bruk av tegninger og modeller. I tillegg gjorde han det samme for den ideelle situasjonen, det vil si den ønskede effekten av prosjektet. Vi fikk også i større grad konkretisert målene av prosjektet. Til slutt fikk vi diskutert og illustrert i form av UML diagrammer den overordnede funksjonaliteten av systemet. Uka etter hadde jeg skrevet ett utgangspunkt for rapporten og jeg hadde laget en HTML prototype av grensesnittet. Vi kontrollerte detaljer i rapporten, samt gikk igjennom prototypen. Vi kom frem til samtlige endringer som angikk både design, funksjonalitet og database struktur. Til slutt pratet vi om veien videre og da kom vi frem til at jeg skulle begynne på funksjonalitetsspesifikasjonen (gjerne lage flere modeller/use caser/diagrammer) og oppdatere prototypen med de forandringene som dukket opp. Etter omskrivninger av visse detaljer i forprosjektsrapporten var den klar for levering. 4.4 Designfasen Etter forprosjektet ble mesterparten av tiden brukt til å jobbe videre med spesifiseringen av systemet, dets funksjonalitet og dets infrastruktur. Ettersom jeg hadde valgt å lage systemet i MVC rammeverk/mønsteret, og jeg hadde null erfaring med dette fra før, så var det ikke så lett å lage ett meningsfullt klassediagram eller komme med formeninger om infrastrukturen. Derfor var mesteparten av spesifiseringene fokusert på grensesnittet og funksjonaliteten som systemet krevde.

19 Prosessdokumentasjon Mamut Webforms 11 av 22 Det ble laget modeller for alt fra innholdsstruktur til flyt diagrammer av dagens situasjon og ønsket situasjon. Espen introduserte meg til en ny verden: Microsoft Visio. Aldri har modellering vært så moro før. I denne perioden fikk jeg også boka ASP.NET MVC2 In Action i postkassa. Alltid koselig å lese programmeringsbøker før sengetid! Det ble mange koselige og lærerike netter med den. Jeg begynte også så smått å opprette MVC rammeverket for prosjektet i Visual Studio slik at jeg kunne få mer praksis erfaring med rammeverket Implementeringsfasen I starten av mars kunne jeg endelig begynne å kode litt. I starten var det naturligvis en nybegynner opplevelse ettersom jeg måtte lære hvordan ASP.NET MVC2 fungerte. Ikke bare trenger man å vite hvordan man gjør ting, men det er jo viktig å få gode rutiner som samsvarer med best practice prinsipper slik at man slipper å bruke tid på refaktorering av dette senere. Ettersom jeg allerede hadde lagd HTML prototyper av siden i systemet var det lett å flytte disse over inn i det nye systemet. Dette ga jo en overfladisk følelse av oppnåelse, men det er mye igjen som gjenstår. Enda hadde jeg ikke opprettet en database som kan lagre persistente data. Jeg hadde bare ett datalag som imiterte dette ved å returnere hardkodede verdier. Relativt kort tid etter at jeg begynte med implementeringen hadde jeg ett møte med flere potensielle indirekte, om ikke direkte, brukere av systemet hos Mamut. Dette var blant annet personer som driver med webutvikling som vil generere webskjemaer, markedsførere som er interessert i sporing av leads og salgsavdelingen som følger opp disse. Som forberedelse til dette møte anbefalte Espen at jeg for eksempel lagde en powerpoint presentasjon for og lettere å beskrive systemet til deltakerne og det var det jeg gjorde. Her fikk vi mange innspill som kom godt med i den videre utviklingen av systemet. Ellers bestod det meste av implementeringen naturlig nok til å lage grensesnittet og implementere funksjonaliteten som var oppgitt i kravspesifikasjonen. Hovedfunksjonaliteten i systemet kan ramses ned til generering av webskjemakode, prosessering av innsendt webskjema data og manuell- og automatisk eksportering. Det interessante med implementering av automatisk eksportering er jo at det er nytteløst å kode dette på webserveren ettersom automatisk eksportering må kunne startes på hvilket som helst tidspunkt. Derfor satt jeg meg inn i Windows Service og lagde en service applikasjon som har som oppgave å utføre automatisk eksportering. Servicen oppdaterer seg selv basert på database informasjon og brukere av systemet kan da altså konfigurere servicen gjennom webgrensesnittet til systemet. Den kalkulerer også når automatisk eksportering skal foretas og den bruker såkalte timere til å bestemme når den skal eksportere.

20 Prosessdokumentasjon Mamut Webforms 12 av Det endelige systemet Generelt sett er jeg fornøyd med sluttproduktet. All funksjonalitet som krevdes er implementert (noen ønskeliste ting mangler, men det kommer nok etter hvert) og det er kvalitetssikret til en såpass mengde at man kan puste litt rolig ut. Systemet er gått igjennom overhalinger både designmessig og funksjonsmessig gjennom prototyping og andre initiativer. Jeg tror jeg prøver å si at systemet begynner å føles komplett, noe som er mer enn å si at det simpelthen er ferdig. Noen skal jo faktisk bruke systemet man utvikler og da må det være kvalitetssikret for å kunne overleve. Welcome to Mamut Webforms. We hope you enjoy your stay. 5.1 I forhold til kravspesifikasjonen Den øyeblikkelige forskjellen mellom sluttproduktet og prototypen fra kravspesifikasjonen er designet. Det ferdige produktet har fått en penere meny som er mer oversiktlig og gir raskere navigering rundt på nettstedet. Designoverhalingen har også ført til bedre brukervennlighet; for eksempel ved å endre bakgrunnsfargen på den aktive tabben så blir det lekende lett for brukeren å vite hvilken tabb vedkommende er på akkurat nå. Og la oss ikke lyve, vi liker det litt stilig uten at det blir for prippent! Brukervennlig tabs Funksjonelt sett så har kravspesifikasjonen blitt endret relativt hyppig i takt med utviklingen. Derfor kan man konkludere med at det ferdige systemet og kravspesifikasjonen er rimelig like. Viktige spesifikasjoner som har kommet frem underveis er blitt inkludert i kravspesifikasjonen og reflektert i systemet.

21 Prosessdokumentasjon Mamut Webforms 13 av Utfordringer på veien 6.1 Revisjonskontroll feil Det er veldig fort gjort å kaste bort timer på å fikse ett revisjonskontroll problem. Man endrer filstrukturen ved å flytte eller slette mapper og plutselig får man all verdens feilmeldinger når man prøver å comitte. Ved og istedenfor comitte alt før man endrer strukturen og comitter ofte kan man komme helskinnet fra det hele. 6.2 Hardkodede strenger I.NET applikasjoner ønsker man alltid å kunne oppdage feil ved kompilering og dermed unngå overraskende runtime feil. Grunnleggende funksjonalitet i MVC2 rammeverket tar strenger som argumenter, for eksempel man har en metode (en såkalt Action) i en Controller som kalles Index og man ønsker å sende brukeren til denne Actionen. Da blir man nødt til å skrive navnet på metoden eksplisitt Index. Om man endrer navnet på denne metoden i etterkant så vil omsendingen feile og feilen blir ikke oppdaget ved kompilering. Løsningen var å bruke.net sin Expression 2 klasse som argument istedenfor. Da kan man ta selve metodekallet som argument i Expression klassen og senere brukere refleksjon for å finne metodenavnet. Dette gir oss kompileringsfeilmelding om metoden endrer navn i fremtiden. Denne løsningen er brukt samtlige steder i systemet, ikke bare i Controllers. En ulempe er at dette er naturligvis treigere enn og direkte å spesifisere metodenavnet, men tommelregelen vi følger er at bedre vedlikehold går foran fart som regel. 6.3 Dynamic Query Jeg støtte på ett problem når jeg brukte LINQ/SQL og skulle dynamisk sette en OrderBy verdi. Problemet er at det innebygde LINQ/SQL rammeverket ikke støtter dynamiske verdier men tar bare Expression uttrykk. Løsningen var ett bibliotek funnet på nettet kalt Dynamic Query 6 som støtter dynamiske spørringer med LINQ/SQL. 6.4 Logging av feil En av kravene i systemet var å loggføre enkelte typer feil, slik som database (SQL) feil og e- mail sending (SMTP) feil. En løsning var å ramme inn hvert eneste SQL kall med try-catch blokker, men det hadde vært veldig upraktisk. Jeg valgte å utnytte Application_Error hendelsen som utløses hver gang ett unntak (exception) ikke blir behandlet. I denne metoden kunne jeg sjekke typen på unntaket og loggføre den om ønsket. 6.5 Testing av statiske klasser fungerer veldig dårlig. Jeg måtte refaktorere en haug med statiske kall til å bruke objekter istedenfor klasser for å kunne mocke og teste skikkelig. 6.6 Testing av innebygde MVC klasser Enkelte klasser slik som System.Web.Mvc.UrlHelper 2 krever mange underliggende variabler og instansierte objekter satt for å kunne utføre mange av dets metoder. Dette gjør at det blir ett herk å mocke og teste disse klassene. Ved å bruke 4 Decorator mønsteret kan man gjøre livet litt enklere. Man dekorerer problemklassene med en overliggende klasse og den overliggende klassen (dekoratøren) definerer alle metodene som originalt blir brukt på den underliggende

22 Prosessdokumentasjon Mamut Webforms 14 av 22 klassen. Dekoratøren kan da simpelthen definere metodene som virtual og det blir en bris å teste dem. 6.7 Enkoding trøbbel Under live prototype testingen så vi at tegnene æ, ø og å ble gjort om til spørsmålstegn ved prosessering av skjemadata. Dette er en uakseptabel situasjon når mange av kundene er norske. Det var ett klassisk tilfelle av hvordan debugger jeg dette? ettersom skjemaet sender dataen til webserveren og som med det ikke er bare-bare å slå på debuggern i Visual Studio og se hva som kommer inn. Men dog det så jo ut som en elementær enkoding sak. Jeg klarte å reprodusere problemet ved å bruke samme enkoding som Mamut brukte på sine landingssider (ISO ) og jammen var det årsaken til problemet. Dessverre blir ikke kodesettet sendt til serveren med post data, dermed blir det noe mer problematisk ettersom man ikke kan dekode dataen basert på kodesettet som ble brukt for innsending. Løsningen var halvveis hacky og halvveis skalerbar. Systemet leter etter en feil i strengen (ukjent tegn) for å så tolke skjemaet som ISO hvis ett ukjent tegn blir funnet. Om dette ikke er tilfelle blir vanlig enkoding brukt (vanligvis UTF-8). 6.8 Timer-out! Det ser ut som at klassen System.Timers.Timer 2 som jeg brukte til automatisk eksporterings nedtelling har samtlige problemer ved seg. Blant annet sluker den alle feil som blir kastet i sine Elapsed hendelser 19. Dette tilsier at feilene ikke propagerer opp til applikasjonen og feilbehandling på nivå over er nytteløst. Ett annet problem er av skikkelig hodebry sorten, nedtellingen nekter å starte på automatiske eksporterings nedtelleren av en eller annen grunn. Jeg tror det beste er å slutte å bruke Timers.Timer og heller begynner å bruke System.Threading.Timer klassen.

23 Prosessdokumentasjon Mamut Webforms 15 av Tidsforbruk og registrering av timer 7.1 Timeregistreringssystem Under hele prosjektperioden førte jeg timeliste for oppgaver gjort i sammenheng med hovedprosjektet. Timeføringen ble gjort i MS Excel og der brukte jeg ett hjemmelagd oppsett bestående av to ark: oppgaveliste og timeliste. Oppsettet var veldig inspirert av relasjonsdatabaser; det brukte IDer for å binde oppgaver sammen med timeregistreringene slik at det er mulig å kalkulere hvor mange timer hver enkelt oppgave tok. Det støttet også flere nivåer med oppgaver; det vil si at oppgaver kunne være understått andre oppgaver, for eksempel er det en oppgave kalt Brukerdokumentasjon som er understått Prosjektrapport. Utdrag fra oppgavelisten Som man ser er hver oppgave identifisert ved kolonnen ID som er tvillingen med Primary key kolonnen (hver rad må være unik) i en relasjonsdatabase. Parent ID kolonnen definerer hvilken oppgave den er understått, hvis tilfelle. Feltet Hva definerer hva oppgaven går ut på, mens de andre feltene bidrar til å definere oppgaven ytterligere. Utdrag fra timelisten Her ser vi at hver timeinnføring ikke har en egen ID, men er bundet til en Oppgave ID - altså til en oppgave. Antall timer kolonnen definerer antall timer som er registrert for arbeidssesjonen. Dato forteller når sesjonen ble utført.

24 Prosessdokumentasjon Mamut Webforms 16 av Timefordeling Med dette hjemmelagde excel systemet som utgangspunkt var det mulig for meg og dynamisk å utregne hvor mange timer hver oppgave tok, samt hver underoppgave. En ferdigbehandlet oversikt over timebruken for prosjektperioden kan sees i tabellen under: Oppgave Timer Finne prosjekt 5 Prosjektrapport 101,25 Prosjektmandat 6,5 Møte med veileder 5,5 Møte med oppdragsgiver 6,75 Implementasjon 347 Annet 2,5 Total 474,5 Merk at denne oversikten bare inkluderer toppnivå oppgavene og ikke underoppgavene. For å se en grafisk behandlet versjon kan denne finnes som vedlegg til prosjektrapporten. Hele excel dokumentet kan finnes i program cden som følger rapporten. Sniktitt på grafisk behandlet timeliste.

25 Prosessdokumentasjon Mamut Webforms 17 av Kravspesifikasjonen 8.1 Dens rolle Kravspesifikasjonen har hatt en mangfoldig rolle for systemet. Den har vært til god veiledning for GUIet av systemet og den har også lagt fundament for innholdsstruktur og database struktur. Ellers har den også vært nyttig for å kommunisere systemet med oppdragsgiver og veileder og har derfor hatt en direkte effekt på utviklingen av systemet. Den er også viktig for fremtidige utviklere/vedlikeholdere av systemet ettersom den inneholder spesifikasjoner, defineringer og forklaringer på løsninger som er gjort i systemet. Systemet er altså tett definert av kravspesifikasjonen og har oversikt over essensielle detaljer om hvordan det fungerer. 8.2 Endringer Her følger en revisjonsliste for kravspesifikasjonen. Rev. Dato Endringer Skjellett med innholdsfortegnelse Lagt til database tabell oversikt og diagram Lagt inn skjermbilder av prototypen med forklaring av grensesnittet Oppdatert databasefelt og database diagram Lagt til innholdsstruktur og diagram o Har segmentert innholdet i seksjoner Lagt til hovedmeny og samtlige andre sider Organisert sidene i funkspekken etter seksjoner slik at det blir ryddigere Oppdatert database felt Endret database felt og tabeller til å bruke skrivemåten Pascal La til Country felt på Forms: List all siden La til to felt i Export settings siden Endret database feltet Reply Type (varchar) til Reply UseHtml (tinyint) Lagt til Name databasefelt i Fields tabellen Laget en FieldsFormdata tabell med FK til Formdata og fjernet de hard-kodete feltene Company, Name, osv som var i Formdata tabellen Lagt til DateLastEdit i Forms tabellen Lagt til flere database tabeller og forhold Oppdatert database tabeller og felter med ytterligere definisjonsdetaljer Lagt til Logging seksjon Oppdatert innholdsstruktur Oppdatert prototype og forklaringer Omstrukturert rapporten Lagt til innhold i introduksjonsdelen som forklarer systemet og formålet Oppdatert funksjonalitetsaktiviteter

26 Prosessdokumentasjon Mamut Webforms 18 av 22 Lagt til detaljer om datavekslingen mellom system og webskjema Lagt til ressursoversikt Oppdatert og lagt til use case diagram Lagt til funksjonalitetsdel i funkspekken (funksjonalitetsdel fra tidligere versjon er splittet opp til andre deler) Lagt til spesifiseringsutgangspunkt for generering av CSV filer Lagt til spesifikasjoner for generering av skjema Lagt til spesifikasjoner for prosessering av skjema Lagt til spesifikasjoner for loggføring Lagt til spesifikasjoner for feilbehandling Lagt til Name felt i CustomUrlParametersFormdata Utført oppdateringer etter kommentarer fra oppdragsgiver Lagt til spesifikasjoner om automatisk eksportering Gjort endringer i loggføringspesifikasjonen Oppdatert prototype Oppdatert ressurser Oppdatert automatisk eksportering spesifikasjoner Ytterligere tweaks i spesifikasjoner Oppdatert prototype Oppdatert prototype Oppdatert databasefelt Lagt til spesifikasjon og forklaring for cookie login Lagt til spesifikasjon og forklaring for generering av klientside validering kode på serversiden Oppdater database felt Oppdatert prototype Oppdatert database felt Lagt til spesifikasjon for automatisk eksportering Endret automatisk eksportering spesifikasjoner Endret generering av CSV fil spesifikasjoner Fylt ut mer i introduksjonen Fylt ut om MVC Lagt til tittelside

27 Prosessdokumentasjon Mamut Webforms 19 av Konklusjon Systemutviklingen har vært veldig vellykket selv om jeg jobbet alene gjennom hele perioden. Det aller meste av funksjonaliteten sitter og vi har allerede begynt å teste systemet i ett produksjonsmiljø. Dette viser at systemet er stabilt og snart modent nok til å brukes i en ekte setting. Jeg er fornøyd med å ha kommet frem til ett resultat som innfridde i hvert fall minimumsmålene, og forhåpentligvis er kvaliteten der til at systemet overlever. Prosessen har vært tidskrevende, men veldig interessant og lærerik. Spesielt har jeg lært mye om C# språket og MVC(2), alt fra å bli kjent med rammeverk klasser til oppdagelse av nye muligheter med språket og ikke minst anvendelse av disse. Under følger en noe sporadisk liste over hva jeg har lært: Å lage en MVC(2) strukturert applikasjon i C# /.NET. Å bruke generic Func delegates for å kalle medlemmer (members) av objekter. Dette gjør at man kan for eksempel sende inn ett lambda uttrykk som argument og få ut resultatet av kallet uten fare for runtime error (feilen blir funnet i kompileringen). Før brukte jeg refleksjon med strenger av medlemmene for å oppnå det samme, men det har åpenbare svakheter. Å bruke attributter. Å lage og bruke utvidelsesmetoder. Å bruke og utvide det innebygde feilmeldingssystemet for MVC (ModelState). Å unngå store forsinkelser grunnet trivielle feil i revisjonskontrollsystemet. Ved å være forsiktig under flytting og sletting av mapper, samt committe ofte, så slipper man å bruke mye tid på å fikse revisjonssystemet til å ikke lage feilmeldinger. Å bruke linq uttrykk for å minimalisere kode og øke leseligheten. Å publisere en lokal Microsoft SQL server database struktur til en ekstern database. Å lage, installere, starte, stoppe, uinstallere og ikke minst debugge en windows service. Å sette opp eksportering av rapporter med intervall. Lage enhetstester for en MVC strukturert applikasjon. Skrive enhetstester med NUnit og RhinoMocks.

28 Prosessdokumentasjon Mamut Webforms 20 av Referanseliste 10.1 Referanser MVC - Introduksjon til MVC Microsoft Developer Network - C#/.NET kodehjelp og referanse Stackoverflow.com - Kodehjelp 4. Design Patterns - Elements of Reusable Object-Oriented Software, s Mamut ASA Dynamic Query Visual Studio Microsoft Windows C# Subversion 11. Dropbox Microsoft SQL Server Bilde av ASP.NET MVC2 In Action bokomslag Visual Studio logo MS Office logo 16. https://chrome.google.com/webstore/detail/cleemiokmnpncbdoepicpphinodgekfi?hl=no Dropbox logo Microsoft logo Bilde av foss System.Timers.Timer klassen svelger alle kastede unntak 10.2 Litteratur Palermo, Scheirman, Bogard, Hexter, Hinze (2010). ASP.NET MVC2 - In Action Crane, Pascarello, Darren James (2006). Ajax - In Action Gamma, Helm, Johnson, Vlissides (2009). Design Patterns - Elements of Reusable Object-Oriented Software Ann-Mari Torvatn (2007). Dokumentasjonsstandard - Hovedprosjekter i data/it

29 Prosessdokumentasjon Mamut Webforms 21 av Stikkordliste..NET... 1; 8; 13; 19; 20 A ASP.NET...1; 4; 7; 11; 20 automatisk eksportering... 11; 18 C C# 1; 4; 7; 19; 20 CMS... 4 D database... 4; 8; 10; 11; 13; 17; 18; 19 diagrammer... 10; 11 Dropbox... 8; 20 Dynamic Query... 13; 20 F FileZilla... 9 FTP... 9 G Gallio... 9 genereringssystem H HTML... 10; 11 L lead... 1; 4; 6; 8; 10; 11 LINQ/SQL M Mamut... 1; 4; 8; 9; 10; 11; 14; 20 Mamut Webforms MSSQL... 1; 4; 8; 20 MVC... 7; 10; 11; 13; 18; 19; 20 Action... 11; 13; 20 Controller N NUnit... 9; 19 P prototype...7; 10; 11; 14; 17; 18 R RhinoMocks... 9; 19 S service... 1; 8; 11 SFTP... 9 SQL... 8; 13; 19; 20

30 Prosessdokumentasjon Mamut Webforms 22 av 22 Subversion... 7; 8; 20 U UML V Visual Studio... 4; 7; 8; 11; 14; 20 W webskjema... 1; 4; 11; 18

31 Kravspesifikasjon Mamut Webforms 1 av 52 PROSJEKT NR Studieprogram: Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET Åpen Telefon: Telefaks: KRAVSPESIFIKASJON HOVEDPROSJEKTETS TITTEL System for generering av webskjemaer for Mamut ASA DATO ANTALL SIDER 53 PROSJEKTDELTAKERE Kjetil Hårtveit, s INTERN VEILEDER Alfred Bratterud OPPDRAGSGIVER Mamut ASA KONTAKTPERSON Espen Johannessen SAMMENDRAG Systemet som er utviklet brukes til å generere webskjemaer. Hensikten med systemet er å øke datakvalitet ved å fjerne manuelle rutiner, redusere svinn av leads og øke salg gjennom bedre oppfølging av leads. Systemet er utviklet med Microsoft teknologier C#/ASP.NET med MSSQL og Windows Service. 3 STIKKORD Mamut Webforms Webskjemagenerering.NET

32 Kravspesifikasjon Mamut Webforms 2 av 52 Revisjon mai 2011 Innholdsfortegnelse 1. Introduksjon Hvem bør lese dokumentet Dokumentets rolle i prosjektet Ordforklaring Om systemet Om bedriften Opprinnelig situasjon vs. ønsket situasjon Mål med systemet Roller Språk Språkliste Database Innholdsstruktur Grensesnitt Hovedmeny Seksjon: User Seksjon: Forms Seksjon: Categories Seksjon: Analysis Seksjon: Export Seksjon: Logging Funksjonalitet og spesifisering Generering av skjemakode Prosessering av skjemadata Generering av CSV fil ved eksportering Manuell eksport Automatisk eksport Loggføring Feilbehandling Ressurshåndtering Ressursoversikt Forbindelse mellom system og webskjema Rollene Data fra skjema til server Tilgangsbegrensning Design Prinsipper Farger Programmeringsmønster (ASP.NET MVC2) Kodekonvensjon... 52

33 Kravspesifikasjon Mamut Webforms 3 av Introduksjon 1.1 Hvem bør lese dokumentet Dette dokumentet er hovedsakelig beregnet for utviklere som trenger å sette seg inn i systemet av vedlikeholds-, videreutvikling eller andre grunner. Visse detaljer er også nyttig for markedsføreransvarlig å sette seg inn i ettersom det er inkludert en del definisjoner med relevans til brukerne av systemet. Blant annet defineres kolonnerekkefølgen på de eksporterte CSV filene i dette dokumentet. 1.2 Dokumentets rolle i prosjektet Kravspesifikasjonen har hatt en mangfoldig rolle for systemet. Den har vært til god veiledning for GUIet av systemet og den har også lagt fundament for innholdsstruktur og database struktur. Ellers har den også vært nyttig for å kommunisere systemet med oppdragsgiver og veileder og har derfor hatt en direkte effekt på utviklingen av systemet. 1.3 Ordforklaring Ord/uttrykk Skjema Kategori Lead Utmccn Url parameter Betydning Ett webskjema som ofte inkluderes på landingssider for å registrere informasjon for brukere. Skjemaer kan bli gruppert etter kategorier. En individuell skjemainnsending gjennom ett webskjema med informasjon som gjør at innsenderen kan oppfølges som en potensiell kunde. En cookie verdi som brukes av Google Analytics som sier noe om hvordan brukeren har funnet frem til nettstedet. En parameter i spørredelen av en URL. En url parameter er den uthevede delen av denne eksempel urlen:

34 Kravspesifikasjon Mamut Webforms 4 av Om systemet Mamut ASA ønsket ett å få utviklet ett nytt system for å generere webskjemaer for innsamling av lead fra kampanjeaktiviteter. Det eksisterende CMS systemet og den nåværende rutinen for registrering av leads har svakheter som både har negativ virkning på det totale salget og tilgjengelige ressurser. Det nye systemet har som mål og strømlinjeforme og automatisere leadinnsamlingen så mye som mulig og dermed løse opp flokene som er tilstede. Løsningen vil i stor grad være en Microsoft orientert løsning. Det vil bli utviklet i IDEen Visual Studio 2010 i rammeverket ASP.NET/ C# med en backend MSSQL database. 2.1 Om bedriften Mamut (OSE MAMUT ) ble etablert i 1994 og er en ledende leverandør av administrative programvareløsninger og Internettbaserte tjenester til små og mellomstore virksomheter i Europa. Mamut tilbyr løsninger for økonomistyring/regnskap, salgsstøtte, kundeog kontaktoppfølging (CRM), innkjøp/logistikk, lønn/personal, prosjektstyring, e-handel, domener, e-post og webhotell. Mer enn kunder i Europa forenkler hverdagen med løsninger fra Mamut. 2.2 Opprinnelig situasjon vs. ønsket situasjon Det gjeldende CMS systemet hos Mamut som brukes til å generere webskjemaer har ingen integrering med sporingseffekter som kan gi nyttig informasjon til markedsførerne. Dette innebærer at sporingskoden må manuelt flettes inn i hvert eneste skjema. Dette er en ugunstig manuell rutine som følger med seg samtlige ulemper: 1. man har ingen styring over hvilke skjemaer som samler inn kode 2. manuell innfletting krever programmering kompetanse 3. manuell innfletting åpner muligheten for brukerfeil som kan forårsake tap av sporingsdata og lavere datakvalitet 4. manuell rutine krever ressurser som kan spares Det er også en besværlig prosess å opprette selve skjemaene. Det nye systemet vil ha som mål å løse problemer ved prosessen. Her har vi også mulighet til å legge til ekstra funksjonalitet som mangler i det eksisterende CMS systemet som kan bidra til bedre effektivitet. Det største problemet derimot er at selgerne i dag er avhengig av e-postveksling for å registrere og følge leads. Leadsene går gjennom flere manuelle poster før de blir tatt opp og det er sannsynlig at de blir forkastet på veien. Dette systemet vil redusere de manuelle rutiner til ett minimum og sørge for høyere datakvalitet.

35 Kravspesifikasjon Mamut Webforms 5 av 52 Opprinnelig situasjon I diagrammet over kan vi se at salgsadministrator må hente ut leads fra databasen manuelt. Videre må vedkommende filtrere bort ugyldige leads og manuelt sende leadinfoen videre til en selger. Her skjer det nok en manuell rutine hvor selgeren må registrere leadet i CRM systemet. Ønsket situasjon I den ønskede situasjonen skal systemet som tidligere nevnt blant annet fjerne manuelle rutiner. Blant annet skal ikke salgsadministrator behøve å hente leads manuelt, men de skal automatisk bli eksportert fra systemet på en periodisk basis. Filtrering av leads kan da skje digitalt og leads skal importeres inn i CRM systemet utenom å gå igjennom selgere. Merk at systemet mitt er begrenset til å eksportere leadsene fra databasen. Filtrering av leads og videre utover i kjeden utføres av andre systemer.

36 Kravspesifikasjon Mamut Webforms 6 av Mål med systemet Ressursbesparelser gjennom automatisering av rutineoppgaver. Øke datakvalitet ved å fjerne manuelle rutiner. Gir bedre informasjon i forhold til hvilke prosjekter som selger. Reduserer svinn av leads. Øke salget gjennom bedre oppfølging av leads. 3. Roller Systemet vil hovedsakelig bli brukt av webutviklere og salgsadministrator. Webutviklere oppretter, fletter inn og vedlikeholder skjemaer mens salgsadministrator kontrollerer og eksporterer skjemadata. Grunnet systemets natur er det ikke prioritert å implementere rolleinndelinger. Systemet vil bare bli brukt internt og av få personer, derfor føler vi ikke at rolleinndeling er en essensiell del av funksjonaliteten. 4. Språk Hele systemet vil være på engelsk med unntak av landsspesifikk tekst. Det vil bli gjort tiltak for å gjøre internasjonal tekst forståelig for engelsklesende personer i den konteksten de befinner seg i. 4.1 Språkliste Følgende språk vil kreve landsspesifikk tekst: Norsk Svensk Dansk Engelsk Nederlandsk Tysk

37 Kravspesifikasjon Mamut Webforms 7 av Database Database diagram

38 Kravspesifikasjon Mamut Webforms 8 av 52 Databasen som blir brukt er av typen Microsoft SQL Server (MSSQL). MSSQL er en relasjonell modell database utviklet av Microsoft for bruk med Windows kompatible applikasjoner. Under følger en liste over definerte tabeller og felter i databasen. Legg merke til at alle felter er i utgangspunktet NOT NULL og blir ikke nevnt eksplisitt i definisjonen. Null felter blir definert med betegnelsen Nullable. Forms FormId Integer PK, AI Name Varchar (250) UK DateCreated Datetime DateLastEdit Datetime Nullable CountryId Integer FK [Countries: CountryId], ON UPDATE: CASCADE, ON DELETE: RESTRICT CategoryId Integer FK [Categories: CategoryId], ON UPDATE: CASCADE, ON DELETE: RESTRICT Redirect Varchar (250) UseReply Tinyint Reply From Varchar (250) Reply Bccto Varchar (250) Reply Subject Varchar (250) Reply Text Varchar (MAX) EnableNoLeadDetection Tinyint Fields Felter som assosieres med skjemaer. FieldId Integer PK, AI FormId Integer FK [Forms: FormId], ON UPDATE: CASCADE, ON DELETE: CASCADE Active Tinyint Name Varchar (100) FieldType Integer Order Integer Required Tinyint DataType Integer CodeGenerationSettings Tabell som lagrer tidligere brukte innstillinger for generering av kode. CodeGenerationSettingId Integer PK, AI

39 Kravspesifikasjon Mamut Webforms 9 av 52 FormId Integer FK [Forms: FormId], ON UPDATE: CASCADE, ON DELETE: CASCADE TemplateStyle Integer Width Integer SubmitButton Varchar (100) SubmitButtonType Integer SubmitButtonImg Varchar (200) SubmitButtonImgHover Varchar (200) SubmitButtonOnclick Varchar (255) FormOnsubmit Varchar (255) UseAjaxForValMessages Tinyint CleanFillFieldsScript Tinyint Categories Kategorier skjemaer kan bli segmentert etter. CategoryId Integer PK, AI Name Varchar (250) UK Formdata Data for skjemaer (leads) FormdataId Integer PK, AI FormId Integer FK [Forms: FormId], ON UPDATE: CASCADE, ON DELETE: CASCADE DateSubmitted Datetime Url Varchar (250) Url hvor skjema ble fylt ut Project Varchar (250) GoogleUtmccn Varchar (250) FieldsFormdata Skjemadata fra feltene assosiert med skjema. Forklaring: En skjemadefinisjon har flere felter og når en bruker sender inn skjema med data så blir feltene i skjemaet brukeren fylte ut og verdiene av disse lagret her. Man kan da gjøre en kryssreferanse mellom feltene og verdiene som ble fylt ut av brukeren mot feltene som er definert i skjemaet. FieldFormdataId Integer PK, AI FormdataId Integer FK [Formdata: FormdataId], ON UPDATE: CASCADE, ON DELETE: CASCADE FieldType Integer Name Varchar (150)

40 Kravspesifikasjon Mamut Webforms 10 av 52 Value Varchar (250) FormdataExports Denne tabellen brukes for å flagge eksporterte leads som eksportert eller ikke eksportert. FormdataExportId Integer PK, AI FormdataId Integer UK, FK [Formdata: FormdataId], ON UPDATE: CASCADE, ON DELETE: CASCADE Exported Tinyint Exports Data om utførte eksporteringer. ExportId Integer PK, AI ExportDate DateTime NumLeads Integer Type Integer Result Integer CustomUrlParameters Her defineres egendefinerte url parametre som blir flettet inn sammen med skjema under innsending og assosiert med ett lead. CustomUrlParameterType Integer PK Name Varchar (250) CustomUrlParametersFormdata Paramaterdata assosiert med skjemadata. CustomUrlParameterFormdataId Integer PK, AI FormdataId Integer FK [Formdata: FormdataId], ON UPDATE: CASCADE, ON DELETE: CASCADE CustomUrlParameterType Integer FK [CustomUrlParameters: CustomUrlParameterType], ON UPDATE: CASCADE, ON DELETE: CASCADE Value Varchar (250) ProjectUrlParameters Her defineres hvilke url parametre som sjekkes for å finne Project verdien i skjemadata. ProjectUrlParameterId Integer PK, AI Name Varchar (250) Priority Integer

41 Kravspesifikasjon Mamut Webforms 11 av 52 Settings Her lagres globale konfigurasjoner. Samtlige urelatert funksjonalitet bruker denne tabellen til å lagre persistente data. Blant annet google utmccn, automatisk eksportering innstillinger og logging bruker denne tabellen. Name Varchar (250) PK Value Varchar (250) Users Brukere av systemet. UserId Integer PK, AI Username Varchar (100) Password Char (32) CookieLogin Felt for å lagre informasjon om persistente innlogginger ved bruk av cookies. CookieLoginId Char (23) PK UserId Integer FK [Users: UserId], ON UPDATE: CASCADE, ON DELETE: RESTRICT MachineName Varchar (100) Platform Varchar (100) Browser Varchar (100) Countries Landene som brukes i systemet. CountryId Integer PK Name Varchar (100) CountriesLanguages Tabell som binder tabellene Countries og Languages sammen. CountryId Integer PK, UK, FK [Countries: CountryId], ON UPDATE: CASCADE, ON DELETE: RESTRICT Languages Integer PK, FK [Languages: LanguageId], ON UPDATE: CASCADE, ON DELETE: RESTRICT Languages Språkene som brukes for å hente ressurser på språk. LanguageId Integer PK Name Varchar (100) CultureName Varchar(10)

42 Kravspesifikasjon Mamut Webforms 12 av 52 Resources Her lagres ressursstrenger. Internasjonalisering er også støttet. Name Varchar (250) PK Value Varchar (250) LanguageId Integer PK, FK [Languages: LanguageId], ON UPDATE: CASCADE, ON DELETE: RESTRICT ResourceCategoryId Integer PK, FK [ResourceCategories: ResourceCategoryId], ON UPDATE: CASCADE, ON DELETE: RESTRICT

43 Kravspesifikasjon Mamut Webforms 13 av 52 Aktiviteter Innlogging og utlogging av systemet. Endring av brukerpassord. Opprettelse og håndtering skjema. o Generering av kode. o Visning av innhentet data. Opprettelse og håndtering av kategorier. Automatisk og manuell eksportering av leads (skjemadata) til CSV format med fast kolonnebredde. Endre innstillinger for lagring av informasjon for analyseringsbruk. Endre innstillinger for loggføring av systemtilbakemeldinger. Aktiviteter og roller

44 Kravspesifikasjon Mamut Webforms 14 av Innholdsstruktur Systemet er delt inn i flere seksjoner for å segmentere innholdet. Seksjonene listes opp og beskrives under: Seksjon Beskrivelse Aktiviteter User Her legges sider med funksjonalitet Change password som pårører brukeren. Login Forms Categories Analysis Export Logging Her legges sider som er knyttet til opprettelsen, håndteringen og bruken av skjemaer. Her legges sider som er knyttet til opprettelse og håndtering av kategorier. Her legges sider som er mest aktuelle for analysering av dataen som blir matet inn med skjemaene. Her legges sider som pårører eksportering av skjemaleads, samt konfigureringer som er relaterte til automatiske eksporteringer. Her legges sider som pårører funksjonalitet relatert til logging. Logout List all (index) Create new Edit form Edit fields Generate form code View formdata List all (index) Create new Edit Overview (index) Google utmccn Project URL parameters Custom URL parameters Overview (index) Manual export Automatic export settings Overview (index) Log Settings NB: Merk at filstrukturen ikke er den samme som innholdsstrukturen på grunn av at systemet kodes i MVC mønsteret. Innholdsstrukturen er derimot en nøyaktig indikator på hvordan sluttbrukeren opplever systemet. Innholdsstruktur vs. MVC Seksjonene kan sammenliknes med controllers og aktivitetene kan sammenliknes med actions.

45 Kravspesifikasjon Mamut Webforms 15 av 52 Innholdsstruktur diagram

46 Kravspesifikasjon Mamut Webforms 16 av Grensesnitt 7.1 Hovedmeny Hovedmenyen er delt inn i seksjonene som er oppgitt i innholdsstrukturen. Den vil bli plassert på høyre siden av innholdet for å ikke stå midt i fokus, men alltid være lett tilgjengelig.

47 Kravspesifikasjon Mamut Webforms 17 av Seksjon: User Login Formål Logge seg inn på systemet. Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Username Brukernavn Tekstboks Password Passord Checkbox Remember me Om brukeren skal huskes ved senere besøk Knapp Login Logger deg inn i systemet Unntak Ved feil brukernavn eller passord vil en feilmelding vises og brukeren blir ikke logget inn i systemet.

48 Kravspesifikasjon Mamut Webforms 18 av Change password Formål Endre bruker passord. Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Old password Gammelt passord Tekstboks New password Nytt passord Tekstboks Confirm Bekreftelse av nytt passord password Knapp Update Utfører endring av passord Unntak Følgende logikk må stemme for at feilmelding ikke skal oppstå: o Old password må være likt det gamle passordet o New password og confirm password må være like o New password kan ikke være likt som old password

49 Kravspesifikasjon Mamut Webforms 19 av Seksjon: Forms Create form Formål Opprette nytt webskjema. Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Name Navn på skjema Dropboks Country Hvilket land skjemaet skal registreres i Dropboks Category Hvilken kategori skjemaet skal tilhøre Knapp Create Oppretter skjema Unntak Tomt navn er ikke tillatt og feilmelding vil vises.

50 Kravspesifikasjon Mamut Webforms 20 av Edit form Formål Endre generell informasjon om skjemaet. Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Name Skjemanavn Dropboks Category Kategorien som skjemaet er knyttet til Tekstboks Redirect Hvilken side brukeren skal bli send til etter innsending av skjema Radio HTML/Text Om skal bruke HTML format eller i rentekst Tekstboks From Hvem som vises i Fra feltet Tekstboks Bcc to Hvem som skal få en blind kopi av e- mailen Tekstboks Subject Emne på en Tekstområde tekst Checkboks Enable no lead detection Innholdet i en Om skjemaet skal bli sjekket for at leads har kommet inn den siste perioden

51 Kravspesifikasjon Mamut Webforms 21 av 52 Unntak Name feltet kan ikke være tomt. Redirect feltet må være en gyldig nettadresse (bruke http eller https protokoller og ha gyldig hostname) eller tomt From feltet må være utfylt og en gyldig om reply brukes. Bcc to feltet må være en gyldig om fylt ut

52 Kravspesifikasjon Mamut Webforms 22 av Edit fields Formål Endre skjemaets felter. Forklaring av grensesnitt Type Felt Beskrivelse Hakeboks Active Om feltet skal bli inkludert i genereringen Tekst Field Internasjonale navnet på feltet. Engelsk versjon av feltnavnet står i parantese for å hjelpe utvikleren. Tekstboks Order Hvilken rekkefølge feltet skal vises i. Lavere tall blir prioritert først Dropdownboks DataType Hva slags datatype feltet skal vises og tolkes som Hakeboks Required Om feltet skal være nødvendig eller ikke Knapp Update Utfør lagring av endringer

53 Kravspesifikasjon Mamut Webforms 23 av Generate formcode Formål Generere HTML kode for skjemaet, som deretter kan kopieres og limes inn på en nettside. Bistå med valgmuligheter som gjør det enklere for webutvikleren å integrere skjemaet på nettsiden. Forklaring av grensesnitt Type Felt Beskrivelse Dropdown Template style Hvilken mal (ang. designet) skjemaet skal bruke Hakeboks Clean + fill fields script Om skjemaet skal bruke rengjør og fyll felt script. Dette vil si at når brukeren trykker på feltet så renskes teksten, og teksten opprettes igjen om boksen er tom Tekstboks Width Bredden på skjemaet Dropdown Submit button Typen innsendingsknapp. Valgene er tekst eller bilde. Om bilde blir brukt vil det vises to nye tekstboksfelt: original og hover. Her oppgir man url til original og hover bilde som skal brukes. Tekstboks Submit button Teksten på innsendingsknappen. Tekstboks Submit button onclick Kode som skal settes inn i onclick attributtverdien på innsendingsknappen Tekstboks Form onsubmit Kode som skal settes inn i onsubmit

54 Kravspesifikasjon Mamut Webforms 24 av 52 attributtverdien på skjemaet Checkbox Use ajax for validationmessages Om ajax skal brukes for å hente valideringsbeskjeder, eller om de skal genereres direkte inn i koden Knapp Generate Genererer kode Unntak Bruk av anførselstegn i onclick/onsubmit feltene er ikke tillatt.

55 Kravspesifikasjon Mamut Webforms 25 av View formdata Formål Vise dataene som er sendt inn med skjemaene.

56 Kravspesifikasjon Mamut Webforms 26 av List forms Formål Vise oversikt over opprettede skjemaer. Vise leadrelevant informasjon slik som hvilke skjemaer som er mest brukt og hvilke som er aktive. Forklaring av grensesnitt Type Felt Beskrivelse Dropdown Show Hvilken mengdegruppe med skjemaer som skal vises Tekst ID Det unike ID nummer til skjemaet Tekst Name Navnet på skjema Tekst Category Navn på kategorien til skjema Tekst Country Landet skjemaet ble opprettet i Tekst Date created Når skjemaet ble opprettet Tekst Last submittion Når skjema sist ble brukt Tekst Total submits Totalt antall personer som har sendt inn data med skjema Man kan sortere både asc og desc ved å trykke på en av overskriftene Skjemaene blir delt inn i sider for å begrense antall skjemaer per visning. Hver side kan inneholde 50 skjemaer.

57 Kravspesifikasjon Mamut Webforms 27 av Seksjon: Categories Create category Formål Opprette kategori Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Name Navnet til kategorien Knapp Create Oppretter kategori Unntak Tomt name verdi er ikke tillatt og feilmelding vil vises.

58 Kravspesifikasjon Mamut Webforms 28 av Edit category Formål Endrer kategori Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Name Navnet til kategorien Knapp Update Oppdaterer kategori Unntak Tomt name verdi er ikke tillatt og feilmelding vil vises.

59 Kravspesifikasjon Mamut Webforms 29 av List categories Formål Vise oversikt over opprettede kategorier. Forklaring av grensesnitt Type Felt Beskrivelse Dropdown Show Hvilken mengdegruppe med kategorier som skal vises Tekst ID Det unike ID nummer til kategorien Tekst Name Navnet på skjema Man kan sortere både asc og desc ved å trykke på en av overskriftene Kategoriene blir delt inn i sider for å begrense antall skjemaer per visning. Hver side kan inneholde 50 kategorier.

60 Kravspesifikasjon Mamut Webforms 30 av Seksjon: Analysis Analysis Overview Formål Vise nyttig lead informasjon

61 Kravspesifikasjon Mamut Webforms 31 av Google utmccn Formål Kontrollere lagring av google analytics cookie verdi sammen med skjemadataen. Forklaring av grensesnitt Type Felt Beskrivelse Hakeboks Enable storage of utmccn value Valget mellom å lagre utmccn verdien eller ikke Knapp Update Lagrer endringene

62 Kravspesifikasjon Mamut Webforms 32 av Project Url parameters Formål Opprette og håndtere henting av kampanjekoder (vil bli lagret i project feltet i skjemadata tabellen). Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Value Parameteren i urlen som vil bli forsøkt hentet Tekstboks Priority Hvilken prioritet parameteren vil ha. Prioriteten går fra lavest til høyest. Knapp - (minus) Fjerner en parameter Knapp Update Oppdaterer endringene Knapp Add new Legger til ny parameter Unntak Tom Value verdi er ikke tillatt og feilmelding vil vises.

63 Kravspesifikasjon Mamut Webforms 33 av Custom Url parameters Formål Endre brukerdefinerte parametre som blir flettet inn sammen med lead data. Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Parameter Parameteren i urlen som vil bli forsøkt hentet Knapp Update Oppdaterer endringene

64 Kravspesifikasjon Mamut Webforms 34 av Seksjon: Export Export Overview Formål Vise nyttig informasjon om tidligere eksporteringer.

65 Kravspesifikasjon Mamut Webforms 35 av Manual export Formål Eksportere skjemadata til CSV fil manuelt. Forklaring av grensesnitt Type Felt Beskrivelse Dropdown Country Hvilket land det skal filtreres på Dropdown Category Hvilken kategori det skal filtreres på Tekst/kal. Date from Startdato for dataen som skal eksporteres Tekst/kal. Date to Sluttdato for dataen som skal eksporteres Knapp Export Eksporterer skjemadata Unntak Startdato og sluttdato må være oppgitt. Startdato må være før sluttdato.

66 Kravspesifikasjon Mamut Webforms 36 av Automatic export basic Formål Endre innstillinger som pårører automatisk eksportering av skjemadata. Forklaring av grensesnitt Type Felt Beskrivelse Dropbox Run export Definering av intervall mellom hver automatisk eksportering Checkbox Unexported leads only Om bare ueksporterte leads skal eksporteres Dropbox Mode Om eksporteringen er markert som startet eller stoppet Knapp Update Lagring av innstillinger

67 Kravspesifikasjon Mamut Webforms 37 av Automatic export advanced Formål Endre innstillinger som pårører automatisk eksportering av skjemadata. Forklaring av grensesnitt Type Felt Beskrivelse Textbox Service update Hvor ofte servicen skal oppdatere seg interval selv med data fra datbasen. Verdi oppgis Textbox Trigger parameter value i minutter. Verdien som må matche verdien i url parameteren Trigger for at automatisk eksportering skal gjennomføres på eksporteringssiden. Textbox to Hvis spesifisert, hvilken konto den eksporterte filen skal sendes til Knapp Update Lagring av innstillinger Unntak Service update interval feltet kan bare bestå av tall og tallet må være mellom 5 og 120 to feltet hvis oppgitt må være en gyldig Trigger parameter value kan bare bestå av bokstaver og tall

68 Kravspesifikasjon Mamut Webforms 38 av Seksjon: Logging Logging overview Formål Vise nyttig loggføring informasjon.

69 Kravspesifikasjon Mamut Webforms 39 av Log Formål Vise innholdet i loggen.

70 Kravspesifikasjon Mamut Webforms 40 av Log Settings Formål Endre innstillinger som pårører loggføring og effekter av dette. Forklaring av grensesnitt Type Felt Beskrivelse Textbox to send en log beskjeden skal bli sendt log messages Checkbox Send at occourence Om det skal sendes en av typen Type når en logginnføringen av Dropdown No lead detection trigger time samme typen forekommer Antall timer som må ha gått for å utløse no lead detection feilen Knapp Update Lagring av innstillinger Unntak to send log messages feltet må være en gyldig

71 Kravspesifikasjon Mamut Webforms 41 av Funksjonalitet og spesifisering Her skrives detaljer om funksjonalitet som krever ekstra definering og forklaring. 8.1 Generering av skjemakode Skjemakoden som blir generert på serveren vil være statisk og må derfor være uavhengig av server-side språk. Denne koden er ment for å bli flettet inn i en statisk HTML side så koden kan bare bestå av html og javascript (om dynamisk funksjonalitet er ønskelig). Ettersom statisk kode ikke kan endres automatisk fra en kilde i ettertid er det ønskelig å følge noen basiske prinsipper for å gi mest mulig fleksibilitet og minst mulig avhengigheter i den genererte koden. Prinsippene er som følger: Generer så lite kode som nødvendig Hold skjemaene så uavhengige som mulig Marker klart hva som er generert kode og når skjemaet starter og ender (kommentarer) Referer til en eksisterende javascript fil istedenfor å generere javascript om mulig Referer til en eksisterende css fil istedenfor å genererer inline stiler om mulig Skjemafelter Legend: ID/Name: Brukes til å definere html elementets id og navn Feltnavn: Navnet på feltet Datatype: Feltets datatype Validering(er): Hva slags klient-side valideringer som skal genereres for feltet Betingelse for visning: Hvilke betingelser som må være sanne for at feltet skal genereres ID/ Name Feltnavn Datatype Validering(er) Betingelse for visning Kommentar Company Tekstboks Required Alltid Landsspesifikt navn Field[Feltets ID] " Name Tekstboks Required " Landsspesifikt navn " Required " Landsspesifikt navn " Phonenum Telefonnummer Required " Landsspesifikt Telefonnummer navn " Custom1 Valgfritt [Kommer ann Hvis aktiv Valgfritt navn " Custom2 på datatype ] " Custom3 " Custom4 " Custom5 FormId FormId Hidden Aldri Skjemaets ID slik at skjemadataen kan knyttes til

72 Kravspesifikasjon Mamut Webforms 42 av 52 skjema Eksempel: <input type= text name= Field1234 id= Field1234 value= Company name here /> <input type= hidden name= FormId id= FormId value= 123 /> Generering av Javascript Det må genereres valideringer for alle felter som krever validering. Dette krever en tett knytning mellom serveren og klientside kode. Systemet vil prøve å gjøre denne knytningen så oversiktsbar og så lett å vedlikeholde som mulig. For å oppnå dette har vi laget ett bibliotek som brukes å generere klientside kode på en objektorientert måte. En annen fordel er at byggingen av javascript kode blir strong-typed og feil skal da i prinsippet oppdages under kompilering. Det hjelper derimot ikke mot endringer i javascript biblioteket; alle endringer i javascript biblioteket må foretas på serversiden også. Under følger ett diagram som illustrerer hvordan klientside kode blir generert på serversiden: Diagram som viser prinsippet i generering av klientside kode på serversiden. 8.2 Prosessering av skjemadata NB: Denne delen er nært knyttet til 8.1 Generering av skjemakode. Ved prosessering av skjemadata må man ta til betraktning at skjemaene ligger ute på det offentlige verdensveven og må derfor ikke stole på dataen som kommer inn. Muligheten for at data som sendes inn er tuklet med er kanskje usannsynlig, men absolutt reell. Systemet må sørge for å ikke bli korrupt ved ondsinnet input. Valideringer Følgende valideringer utføres for å sørge for en trygg prosessering: Hva Valideringer Aksjon hvis ikke validert: Felt ID Feltets ID må i database tabellen ha referanse til Ignorer samme skjema ID som feltet FormId FormId Skjema må eksistere i databasen Forkast skjemadata NB: Det er tatt forbehold for at feltverdier filtreres etter eksportering derfor gjøres det ingen validering her.

73 Kravspesifikasjon Mamut Webforms 43 av 52 NB2: Ikke ta for gitt at alle feltene i skjemaet blir lagret og assosiert med skjema (dette gjelder også Company, Name, osv ). Bruk default verdi (som regel tom streng) hvis feltet ikke finnes. Tilbakemelding En med tilbakemelding skal sendes tilbake til spesifisert i feltet sendt inn med skjema om skjemaet bruker tilbakemelding . Redirect Man redirectes til urlen spesifisert i skjemaets redirect felt eller tilbake til nettsiden skjemaet ble sendt inn fra (default). Behandling av feil Alle generelle feil under prosessering av skjemadata vil bli stille ignorert eller behandlet. 8.3 Generering av CSV fil ved eksportering Definisjon for feltene til de genererte CSV filene følger under. Alle feltene vil bli plassert ved siden av hverandre horisontalt med øverste felt til venstre og nederste felt til høyre. Detaljer Kolonne headers vil bli inkludert i første raden av CSV filen Semikolon vil bli brukt som skilletegn mellom verdiene. Semikolon og linefeeds funnet i verdier vil bli erstattet med space. Navn Type Kommentar LeadId Identifier IDen til leadet Date submitted Dato Datoen når leadet ble registrert FormId Identifier Skjemaet som leadet hører til Category Identifier Kategorien skjemaet til leadet hører til Country Identifier Landet skjemaet til leadet hører til Company Skjemafelt Firma Name " Navn " E-post Phonenumber " Telefonnummer Custom1 " Valgfrie felter Custom2 " Hvis verdi er checkbox vil verdien Custom3 " vises i boolean form (True / False). Custom4 " Custom5 " GoogleUtmccn Cookie Verdi hentes fra cookie Project Url parameter Parameter som hentes fra urlen og CustomParameter1 Url parameter CustomParameter2 " CustomParameter3 " CustomParameter4 " CustomParameter5 " definerer prosjekt tilhøring til lead Flettes inn fra urlen og assosieres med ett lead

74 Kravspesifikasjon Mamut Webforms 44 av 52 Url Url Url som viser hvor leadet kom fra 8.4 Manuell eksport Man kan eksportere leads manuelt ved behov i tillegg til automatisk eksportering. Ved manuell eksportering vil ikke leads bli flagget som eksportert. Detaljer Filnavnet som blir generert for brukeren når han/hun eksporterer vil ha syntaksen: Manual-[dag 2 siffer][måned 2 siffer][år 2 siffer]-[time 2 siffer][minutt 2 siffer][sekund 2 siffer]-[millisekund]-[land]-[kategori].csv o Land og kategori variablene vil bli strippet for alle tegn unntatt bokstaver og tegn (regex: [a-za-z0-9]) 8.5 Automatisk eksport Leads skal automatisk eksporteres hvert døgn eller med en annen tidsintervall. For å få til dette skal det brukes en Windows Service og en synlig side på webserveren som tar imot kall. Alle leads som ikke allerede er flagget som eksportert vil bli flagget ved automatisk eksportering. Hendelsesforløp for automatisk eksportering: 1. Servicen sender en HTTP request til webserveren. Denne nettsiden er beskyttet med en url parameter betingelse slik at ikke alle kan triggere eksporteringen sporadisk. 2. Webserveren henter lead informasjon fra databasen og genererer en CSV fil til serverns filsystem. 3. System prøver å laste opp den nylig genererte filen til en definert FTP server. Filnavnet vil ha syntaksen: [dag 2 siffer][måned 2 siffer][år 2 siffer]-[time 2 siffer][minutt 2 siffer][sekund 2 siffer]-[millisekund]-auto.csv 4. Rengjøring (sletting av midlertidig filer og liknende).

75 Kravspesifikasjon Mamut Webforms 45 av 52 Handlingsflyten for automatisk eksportering Dato og tid intervaller Man kan definere dato- og tidsintervallene for automatisk eksportering ved bruk av to typer verdier. Disse er intervalltyper og tidspunkter (hele timer). Ett eksempel er intervalltypen Daily sammen med klokkeslettet 08:00. Sammen danner verdiene utgangspunktet for kalkulasjonen av start dato begrensningen for gjeldende eksportering. NB: Merk at HTTP requesten vil bli sendt 5 minutter før reell slutt dato. Dette er for å unngå feil ved kalkulering av start og slutt dato. Matchende tidspunkt: Dette begrepet brukes om tidligere nevnte tidspunkt som danner utgangspunkt for start dato. Altså om tidspunktet er 08:00 så refererer uttrykket matchende tidspunkt til dette klokkeslettet. Intervall Start dato Slutt dato Daily Første dag før i tid med matchende Dato nå tidspunkt Weekly Hver mandag med matchende tidspunkt 1 uke etter matchende tidspunkt Monthly Første dag i måneden med matchende tidspunkt 1 måned etter matchende tidspunkt

76 Kravspesifikasjon Mamut Webforms 46 av 52 Eksempler: Settings: Daily 08:00 Nå Start dato Slutt dato Kommentar Ons 3. aug 07:00 Tir 2. aug 08:00 Ons 3. aug 08:00 En time før tidspunkt Ons 3. aug 08:00 Tir 2. aug 08:00 Ons 3. aug 08:00 Matchende tidspunkt Ons 3. aug 09:00 Ons 3. aug 08:00 Tor 4. aug 08:00 En time etter tidspunkt Settings: Weekly 08:00 Nå Start dato Slutt dato Kommentar Man 1. aug 07:00 Man 25. juli 08:00 Man 1. aug 08:00 En time før tidspunkt Man 1. aug 08:00 Man 25. juli 08:00 Man 1. aug 08:00 Matchende tidspunkt Man 1. aug 09:00 Man 1. aug 08:00 Man 8. aug 08:00 En time etter tidspunkt Tor 4. aug 08:00 Man 1. aug 08:00 Man 8. aug 08:00 En annen dag i uka enn mandag Settings: Monthly 08:00 Nå Start dato Slutt dato Kommentar Man 1. aug 07:00 Fre 1. juli 08:00 Man 1. aug 08:00 En time før tidspunkt Man 1. aug 08:00 Fre 1. juli 08:00 Man 1. aug 08:00 Matchende tidspunkt Man 1. aug 09:00 Man 1. aug 08:00 Tor 1. sep 08:00 En time etter tidspunkt Tor 4. aug 08:00 Man 1. aug 08:00 Tor 1. sep 08:00 En annen dag i måneden enn første dagen Kommentar i forhold til scheduled tasks Fordelen med å bruke en Windows Service er at det er ingen avhengighet med eksporteringstid mellom tasktidspunkt og database eksporteringsinnstillinger. Med Service så har man muligheten til å dynamisk synkronisere timerne med databasen automatisk. Service logikk Servicen bruker to timere til å kalkulere når automatisk eksportering skal skje, samt synkronisere database innstillingene med servicen. Den ene timeren snakker med databasen med en fast intervall og sjekker om database innstillingene har endret seg. Hvis dette er tilfellet så oppdateres innstilingene og den andre timeren må omstilles. Den andre timeren har en variabel intervalltid og innstiller seg etter innstillingene satt i databasen. Den bestemmer når den automatiske eksporteringen skal skje. Om send leads to feltet er spesifisert vil det sendes en med leads som vedlegg til den spesifiserte e-post kontoen. Under følger spesifikasjonen for en som sendes: Headers From: To: [Mail oppgitt i logging innstillingene] Subject: Automatic export triggered on [date] in MamutWebforms Body This has been sent as automatic export has been triggered in MamutWebforms.

77 Kravspesifikasjon Mamut Webforms 47 av 52 Leads has been converted into CSV format and included in this as an attachment. The leads that are included are submitted between the dates [start date]-[end date]. 8.6 Loggføring Alle logginnføringer vil bli lagret til en loggfil. En kan bli sendt til en valgfri e-post adresse om innstillingene tillater det. Hva loggføres Databasefeil Eksporteringsfeil No lead detection feil (om skjema ikke har fått lead på ett spesifisert antall timer registreres det som en feil) Service feil feil o Feil som oppstår fordi at mottaker ikke finnes blir ikke logget o NB: feil kan ikke sendes med og det reflekteres i systemet Logginnførelser Merk at nye innføringer vil bli lagt til før det eksisterende innholdet i loggen. Altså nyeste innlegg forekommer øverst i loggen. Felter: Navn Datatype Kommentar Datetime Dato Dato og tidspunkt for feilen Type Streng Typen feil Context Streng I hvilken kontekst feilen ble logget i Subject Streng Kort introduksjon om innholdet Message Streng Inneholder melding, kilde, linjenummer og callstack for feilen Data Nøkkel-verdi par Ekstra informasjon. Kan være tom og vil da returnere en tom streng istedenfor. Oppset: --- Log entry for [datetime] --- Type: [type] --- Context: [context] --- Subject: [subject] --- Message [message] --- Additional data [data]

78 Kravspesifikasjon Mamut Webforms 48 av 52 Legg merke til at loggmeldingene avsluttes med tre linjeskift. oppsett Headers From: To: [Mail oppgitt i logging innstillingene] Subject: An error of type ' [type] ' occoured in contex ' [context] ' in MamutWebforms with message: [subject] Body An error of type ' [type] ' occoured in contex ' [context] ' in MamutWebforms. Read below for details. --- Message: [message] --- Additional data: [data] 8.7 Feilbehandling NB: Denne delen er nært knyttet til 8.6 Loggføring. Her skrives detaljer om behandling av runtime feil i systemet. Type Feil Aksjon Generelt Generelle feil - Ignorer Database Alle feil - Logging - Send * Generelle feil - Logging Finner ikke mottaker - Ignorer Eksport Feil i automatisk - Logging eksportering - Send * Eksport Feil i manuell - Logging No lead detection eksportering No lead detection feil er triggret for ett skjema - Gi øyeblikkelig tilbakemelding - Logging - Send * Service Alle feil - Logging - Send * * Bare om innstillingene tillater dette.

79 Kravspesifikasjon Mamut Webforms 49 av 52 Ressurshåndtering Systemet krever ett håndteringssystem for ressurser ettersom at skjemaene må støtte flere språk i visse sammenhenger. Det er ønsket at enkelte ressurser skal kunne endres dynamisk, derfor blir ressursene lagret i databasen for mest mulig fleksibilitet. 8.8 Ressursoversikt Valideringsfeilmeldinger SummaryText RequiredMustHaveValue OnlyDigitsAreAllowed Invalid InvalidPhonenum Default (forhåndsvalgte) feltverdier Default verdier for felt navn, datatype, rekkefølge, aktiv (om feltet er aktivt) og nødvendig (om feltet må være fylt ut) for følgende felter: Company Name Phonenum Custom1 Custom2 Custom3 Custom4 Custom5 Når skjemaer opprettes så fylles feltene inn med default verdiene nevnt ovenfor. Vi trenger i tillegg å bruke lokalisering for å fylle inn med landsspesifikk språk på feltnavnene.

80 Kravspesifikasjon Mamut Webforms 50 av Forbindelse mellom system og webskjema Dette kapittelet er dedikert til å gi mer oversikt levetiden til webskjema; fra genereringen av skjemakoden på serveren, til innflettingen av skjema på nettside, til prosesseringen av tilsendt skjemadata på serveren. 9.1 Rollene Systemets rolle er å generere html og scripts for å: 1. Lage stilert, standard skjema 2. Kunne hente nødvendig data ved skjema postback 3. Validere skjema før innsending Skjemaets rolle er å hente inn data fylt ut av brukeren og sende dataen videre til serveren. 9.2 Data fra skjema til server Hva Feltdata Cookies Url Urlparametre Formål Lagre informasjon om leadet Lagre google analytics cookie verdi Lagres for å lokalisere hvor skjemaet lå når det ble fylt ut og innsendt Lagre tilleggsinformasjon om leadet

81 Kravspesifikasjon Mamut Webforms 51 av 52 Forbindelsen mellom system og webskjema

82 Kravspesifikasjon Mamut Webforms 52 av Tilgangsbegrensning Systemet vil være beskyttet med brukernavn og passord. 11. Design Designet vil være rent og gå i tråd med Mamut sine design prinsipper Prinsipper Designprinsippene som skal brukes er: Funksjonelt orientert. Det funksjonelle skal ikke gå til spille for ett overdådig eller pompøst design. Moderne og elegant med vekt på enkelthet. Profesjonalitet Farger Fargene som skal gå igjen skal være nyanser av blå, hvitt og grått. Gult og oransje kan brukes som kontrast for å fremheve elementer eller gjøre brukersnittet mer appellerende. 12. Programmeringsmønster (ASP.NET MVC2) MVC står for Model-View-Controller. Model er ett objekt som representerer data eller en tilstand. Controller er lederen om du vil, som håndterer tilstanden til modellen og ofte kommuniserer med datalagre slik som SQL databaser. Controlleren sender en ferdig behandlet modell til en View som basert på modellen viser ett visuelt grensesnitt. Dette programmeringsmønstret er bygget på samtlige prinsipper: Skille mellom design og programmering. Designere trenger bare å forholde seg til det som finnes i View. Rolleoppdelingen til MVC gir mer logisk segmentering av strukturen og det blir enklere å fordele oppgaver til passende instanser. Ved å isolere de ulike delene kan man teste og vedlikeholde dem uavhengig av hverandre. 13. Kodekonvensjon All kode i systemet vil prøve å følge en kodekonvensjon som er mest mulig lik industristandarden for.net/c#. Dette vil gjøre det lettere å sette seg inn i koden for andre utviklere. Standard:

83 Produktdokumentasjon Mamut Webforms 1 av 48 PROSJEKT NR Studieprogram: Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET Åpen Telefon: Telefaks: PRODUKTDOKUMENT HOVEDPROSJEKTETS TITTEL System for generering av webskjemaer for Mamut ASA DATO ANTALL SIDER 48 PROSJEKTDELTAKERE Kjetil Hårtveit, s INTERN VEILEDER Alfred Bratterud OPPDRAGSGIVER Mamut ASA KONTAKTPERSON Espen Johannessen SAMMENDRAG Systemet som er utviklet brukes til å generere webskjemaer. Hensikten med systemet er å øke datakvalitet ved å fjerne manuelle rutiner, redusere svinn av leads og øke salg gjennom bedre oppfølging av leads. Systemet er utviklet med Microsoft teknologier C#/ASP.NET med MSSQL og Windows Service. 3 STIKKORD Mamut Webforms Webskjemagenerering.NET

84 Produktdokumentasjon Mamut Webforms 2 av 48 Innholdsfortegnelse 1. Introduksjon Hvem bør lese dokumentet Hvilken kompetanse forventes Beskrivelse av systemet Målet med systemet Hva kan systemet gjøre? Systemkrav Innholdsstruktur Grensesnitt Hovedmeny Seksjon: User Seksjon: Forms Seksjon: Categories Seksjon: Analysis Seksjon: Export Seksjon: Logging Systemets oppbygning Oversikt Classes Dynamic Query Mamut Webforms Mamut Webforms Service Application Mamut Webforms Test Databasestruktur Program CDen Installeringer og rutiner Installering av systemet Installering av Mamut Webforms Service Uinstallering av Mamut Webforms Service Debugging/lese feilmeldinger av service Referanseliste Referanser Figurliste... 48

85 Produktdokumentasjon Mamut Webforms 3 av Introduksjon 1.1 Hvem bør lese dokumentet Dataansvarlige som skal installere, vedlikeholde eller modifisere systemet. Det kan også være nyttig for dem som eventuelt skal markedsføre systemet eller drive brukerstøtte på det. 1.2 Hvilken kompetanse forventes Utviklere som skal vedlikeholde eller videreutvikle systemet bør ha kunnskaper om MVC2 eller forståelse for MVC prinsippet. De bør også ha kunnskaper til MSSQL eller kjennskap til relasjonsdatabaser og programmering med disse. En bør også ha god erfaring med det underliggende språket C#.

86 Produktdokumentasjon Mamut Webforms 4 av Beskrivelse av systemet 2.1 Målet med systemet Mamut ASA ønsket ett å få utviklet ett nytt system for å generere webskjemaer for innsamling av lead fra kampanjeaktiviteter. Det eksisterende CMS systemet og den eksisterende rutinen for registrering av leads hadde svakheter som både hadde negativ virkning på det totale salget og tilgjengelige ressurser. Det nye systemet har som mål å strømlinjeforme og automatisere leadinnsamlingen så mye som mulig og dermed løse opp flokene som er tilstede. Oppsummert skal det gi følgende fordeler: Ressursbesparelser gjennom automatisering av rutineoppgaver. Øke datakvalitet ved å fjerne manuelle rutiner. Gir bedre informasjon i forhold til hvilke prosjekter som selger. Reduserer svinn av leads. Øke salget gjennom bedre oppfølging av leads. 2.2 Hva kan systemet gjøre? Følgende aktiviteter er mulige i Mamut Webforms: Innlogging og utlogging av systemet. Endring av brukerpassord. Opprettelse og håndtering skjema. o Generering av kode. o Visning av innhentet data. Opprettelse og håndtering av kategorier. Automatisk og manuell eksportering av leads (skjemadata) til CSV format med fast kolonnebredde. Endre innstillinger for lagring av informasjon for analyseringsbruk. Endre innstillinger for loggføring av systemtilbakemeldinger. Slik ser det ut når man generer skjemakode

87 Produktdokumentasjon Mamut Webforms 5 av Systemkrav Følgende krav er forutsetninger for kjøring av systemet. Windows 7 / Windows Vista ASP.NET 4.0 / C# Microsoft SQL Server 2008 IIS

88 Produktdokumentasjon Mamut Webforms 6 av Innholdsstruktur Systemet er delt inn i flere seksjoner for å segmentere innholdet. Seksjonene listes opp og beskrives under: Seksjon Beskrivelse Aktiviteter User Her legges sider med funksjonalitet Change password som pårører brukeren. Login Forms Categories Analysis Export Logging Her legges sider som er knyttet til opprettelsen, håndteringen og bruken av skjemaer. Her legges sider som er knyttet til opprettelse og håndtering av kategorier. Her legges sider som er mest aktuelle for analysering av dataen som blir matet inn med skjemaene. Her legges sider som pårører eksportering av skjemaleads, samt konfigureringer som er relaterte til automatiske eksporteringer. Her legges sider som pårører funksjonalitet relatert til logging. Logout List all (index) Create new Edit form Edit fields Generate form code View formdata List all (index) Create new Edit Overview (index) Google utmccn Project URL parameters Custom URL parameters Overview (index) Manual export Automatic export settings Overview (index) Log Settings NB: Merk at filstrukturen ikke er den samme som innholdsstrukturen på grunn av at systemet kodes i MVC mønsteret. Innholdsstrukturen er derimot en nøyaktig indikator på hvordan sluttbrukeren opplever systemet. Innholdsstruktur vs. MVC Seksjonene kan sammenliknes med controllers og aktivitetene kan sammenliknes med actions.

89 Produktdokumentasjon Mamut Webforms 7 av 48 Figur 1 - Innholdsstruktur diagram

90 Produktdokumentasjon Mamut Webforms 8 av Grensesnitt 4.1 Hovedmeny Hovedmenyen er delt inn i seksjonene som er oppgitt i innholdsstrukturen. Den vil bli plassert på høyre siden av innholdet for å ikke stå midt i fokus, men alltid være lett tilgjengelig. Figur 2 Hovedmeny

91 Produktdokumentasjon Mamut Webforms 9 av Seksjon: User Login Figur 3 - Login Formål Logge seg inn på systemet. Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Username Brukernavn Tekstboks Password Passord Checkbox Remember me Om brukeren skal huskes ved senere besøk Knapp Login Logger deg inn i systemet Unntak Ved feil brukernavn eller passord vil en feilmelding vises og brukeren blir ikke logget inn i systemet.

92 Produktdokumentasjon Mamut Webforms 10 av 48 Change password Figur 4 - Change password Formål Endre bruker passord. Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Old password Gammelt passord Tekstboks New password Nytt passord Tekstboks Confirm Bekreftelse av nytt passord password Knapp Update Utfører endring av passord Unntak Følgende logikk må stemme for at feilmelding ikke skal oppstå: o Old password må være likt det gamle passordet o New password og confirm password må være like o New password kan ikke være likt som old password

93 Produktdokumentasjon Mamut Webforms 11 av Seksjon: Forms Create form Figur 5 - Create form Formål Opprette nytt webskjema. Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Name Navn på skjema Dropboks Country Hvilket land skjemaet skal registreres i Dropboks Category Hvilken kategori skjemaet skal tilhøre Knapp Create Oppretter skjema Unntak Tomt navn er ikke tillatt og feilmelding vil vises.

94 Produktdokumentasjon Mamut Webforms 12 av 48 Edit form Figur 6 - Edit form Formål Endre generell informasjon om skjemaet. Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Name Skjemanavn Dropboks Category Kategorien som skjemaet er knyttet til Tekstboks Redirect Hvilken side brukeren skal bli send til etter innsending av skjema Radio HTML/Text Om skal bruke HTML format eller i rentekst Tekstboks From Hvem som vises i Fra feltet Tekstboks Bcc to Hvem som skal få en blind kopi av e- mailen Tekstboks Subject Emne på en Tekstområde tekst Checkboks Enable no lead detection Innholdet i en Om skjemaet skal bli sjekket for at leads har kommet inn den siste perioden

95 Produktdokumentasjon Mamut Webforms 13 av 48 Unntak Name feltet kan ikke være tomt. Redirect feltet må være en gyldig nettadresse (bruke http eller https protokoller og ha gyldig hostname) eller tomt From feltet må være utfylt og en gyldig om reply brukes. Bcc to feltet må være en gyldig om fylt ut

96 Produktdokumentasjon Mamut Webforms 14 av 48 Edit fields Figur 7 - Edit fields Formål Endre skjemaets felter. Forklaring av grensesnitt Type Felt Beskrivelse Hakeboks Active Om feltet skal bli inkludert i genereringen Tekst Field Internasjonale navnet på feltet. Engelsk versjon av feltnavnet står i parantese for å hjelpe utvikleren. Tekstboks Order Hvilken rekkefølge feltet skal vises i. Lavere tall blir prioritert først Dropdownboks DataType Hva slags datatype feltet skal vises og tolkes som Hakeboks Required Om feltet skal være nødvendig eller ikke Knapp Update Utfør lagring av endringer

97 Produktdokumentasjon Mamut Webforms 15 av 48 Generate formcode Figur 8 - Generate formcode Formål Generere HTML kode for skjemaet, som deretter kan kopieres og limes inn på en nettside. Bistå med valgmuligheter som gjør det enklere for webutvikleren å integrere skjemaet på nettsiden. Forklaring av grensesnitt Type Felt Beskrivelse Dropdown Template style Hvilken mal (ang. designet) skjemaet skal bruke Hakeboks Clean + fill fields script Om skjemaet skal bruke rengjør og fyll felt script. Dette vil si at når brukeren trykker på feltet så renskes teksten, og teksten opprettes igjen om boksen er tom Tekstboks Width Bredden på skjemaet Dropdown Submit button Typen innsendingsknapp. Valgene er tekst eller bilde. Om bilde blir brukt vil det vises to nye tekstboksfelt: original og hover. Her oppgir man url til original og hover bilde som skal brukes. Tekstboks Submit button Teksten på innsendingsknappen. Tekstboks Submit button onclick Kode som skal settes inn i onclick attributtverdien på innsendingsknappen

98 Produktdokumentasjon Mamut Webforms 16 av 48 Tekstboks Form onsubmit Kode som skal settes inn i onsubmit attributtverdien på skjemaet Checkbox Use ajax for validationmessages Om ajax skal brukes for å hente valideringsbeskjeder, eller om de skal genereres direkte inn i koden Knapp Generate Genererer kode Unntak Bruk av anførselstegn i onclick/onsubmit feltene er ikke tillatt.

99 Produktdokumentasjon Mamut Webforms 17 av 48 View formdata Figur 9 - View formdata Formål Vise dataene som er sendt inn med skjemaene.

100 Produktdokumentasjon Mamut Webforms 18 av 48 List forms Figur 10 - List forms Formål Vise oversikt over opprettede skjemaer. Vise leadrelevant informasjon slik som hvilke skjemaer som er mest brukt og hvilke som er aktive. Forklaring av grensesnitt Type Felt Beskrivelse Dropdown Show Hvilken mengdegruppe med skjemaer som skal vises Tekst ID Det unike ID nummer til skjemaet Tekst Name Navnet på skjema Tekst Category Navn på kategorien til skjema Tekst Country Landet skjemaet ble opprettet i Tekst Date created Når skjemaet ble opprettet Tekst Last submittion Når skjema sist ble brukt Tekst Total submits Totalt antall personer som har sendt inn data med skjema Man kan sortere både asc og desc ved å trykke på en av overskriftene Skjemaene blir delt inn i sider for å begrense antall skjemaer per visning. Hver side kan inneholde 50 skjemaer.

101 Produktdokumentasjon Mamut Webforms 19 av Seksjon: Categories Create category Figur 11 - Create category Formål Opprette kategori Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Name Navnet til kategorien Knapp Create Oppretter kategori Unntak Tomt name verdi er ikke tillatt og feilmelding vil vises.

102 Produktdokumentasjon Mamut Webforms 20 av 48 Edit category Figur 12 - Edit category Formål Endrer kategori Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Name Navnet til kategorien Knapp Update Oppdaterer kategori Unntak Tomt name verdi er ikke tillatt og feilmelding vil vises.

103 Produktdokumentasjon Mamut Webforms 21 av 48 List categories Figur 13 - List categories Formål Vise oversikt over opprettede kategorier. Forklaring av grensesnitt Type Felt Beskrivelse Dropdown Show Hvilken mengdegruppe med kategorier som skal vises Tekst ID Det unike ID nummer til kategorien Tekst Name Navnet på skjema Man kan sortere både asc og desc ved å trykke på en av overskriftene Kategoriene blir delt inn i sider for å begrense antall skjemaer per visning. Hver side kan inneholde 50 kategorier.

104 Produktdokumentasjon Mamut Webforms 22 av Seksjon: Analysis Analysis Overview Figur 14 - Analysis overview Formål Vise nyttig lead informasjon

105 Produktdokumentasjon Mamut Webforms 23 av 48 Google utmccn Figur 15 - Google Utmccn Formål Kontrollere lagring av google analytics cookie verdi sammen med skjemadataen. Forklaring av grensesnitt Type Felt Beskrivelse Hakeboks Enable storage of utmccn value Valget mellom å lagre utmccn verdien eller ikke Knapp Update Lagrer endringene

106 Produktdokumentasjon Mamut Webforms 24 av 48 Project Url parameters Figur 16 - Project URL parameters Formål Opprette og håndtere henting av kampanjekoder (vil bli lagret i project feltet i skjemadata tabellen). Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Value Parameteren i urlen som vil bli forsøkt hentet Tekstboks Priority Hvilken prioritet parameteren vil ha. Prioriteten går fra lavest til høyest. Knapp - (minus) Fjerner en parameter Knapp Update Oppdaterer endringene Knapp Add new Legger til ny parameter Unntak Tom Value verdi er ikke tillatt og feilmelding vil vises.

107 Produktdokumentasjon Mamut Webforms 25 av 48 Custom Url parameters Figur 17 - Custom URL parameters Formål Endre brukerdefinerte parametre som blir flettet inn sammen med lead data. Forklaring av grensesnitt Type Felt Beskrivelse Tekstboks Parameter Parameteren i urlen som vil bli forsøkt hentet Knapp Update Oppdaterer endringene

108 Produktdokumentasjon Mamut Webforms 26 av Seksjon: Export Export Overview Figur 18 - Export overview Formål Vise nyttig informasjon om tidligere eksporteringer.

109 Produktdokumentasjon Mamut Webforms 27 av 48 Manual export Figur 19 - Manual export Formål Eksportere skjemadata til CSV fil manuelt. Forklaring av grensesnitt Type Felt Beskrivelse Dropdown Country Hvilket land det skal filtreres på Dropdown Category Hvilken kategori det skal filtreres på Tekst/kal. Date from Startdato for dataen som skal eksporteres Tekst/kal. Date to Sluttdato for dataen som skal eksporteres Knapp Export Eksporterer skjemadata Unntak Startdato og sluttdato må være oppgitt. Startdato må være før sluttdato.

110 Produktdokumentasjon Mamut Webforms 28 av 48 Automatic export basic settings Figur 20 - Automatic export basic settings Formål Endre innstillinger som pårører automatisk eksportering av skjemadata. Forklaring av grensesnitt Type Felt Beskrivelse Dropbox Run export Definering av intervall mellom hver automatisk eksportering Checkbox Unexported leads only Om bare ueksporterte leads skal eksporteres Dropbox Mode Om eksporteringen er markert som startet eller stoppet Knapp Update Lagring av innstillinger

111 Produktdokumentasjon Mamut Webforms 29 av 48 Automatic export advanced settings Figur 21 - Automatic export advanced settings Formål Endre innstillinger som pårører automatisk eksportering av skjemadata. Forklaring av grensesnitt Type Felt Beskrivelse Textbox Service update Hvor ofte servicen skal oppdatere seg interval selv med data fra datbasen. Verdi oppgis Textbox Trigger parameter value i minutter. Verdien som må matche verdien i url parameteren Trigger for at automatisk eksportering skal gjennomføres på eksporteringssiden. Textbox to Hvis spesifisert, hvilken konto den eksporterte filen skal sendes til Knapp Update Lagring av innstillinger Unntak Service update interval feltet kan bare bestå av tall og tallet må være mellom 5 og 120 to feltet hvis oppgitt må være en gyldig Trigger parameter value kan bare bestå av bokstaver og tall

112 Produktdokumentasjon Mamut Webforms 30 av Seksjon: Logging Logging overview Figur 22 - Logging overview Formål Vise nyttig loggføring informasjon.

113 Produktdokumentasjon Mamut Webforms 31 av 48 Log Figur 23 - Log Formål Vise innholdet i loggen.

114 Produktdokumentasjon Mamut Webforms 32 av 48 Log settings Figur 24 - Log settings Formål Endre innstillinger som pårører loggføring og effekter av dette. Forklaring av grensesnitt Type Felt Beskrivelse Textbox to send en log beskjeden skal bli sendt log messages Checkbox Send at occourence Om det skal sendes en av typen Type når en logginnføringen av Dropdown No lead detection trigger time samme typen forekommer Antall timer som må ha gått for å utløse no lead detection feilen Knapp Update Lagring av innstillinger Unntak to send log messages feltet må være en gyldig

115 Produktdokumentasjon Mamut Webforms 33 av Systemets oppbygning 5.1 Oversikt Mamut Webforms og tilleggsystemer som utgjør det totale prosjektet er samlet i en VS2010 løsning. I Visual Studio kalles de enkelte prosjektene for forsamlinger (assemblies) og det er ett slikt prosjekt en forsamling referer til. Forsamlingene kan ha forskjellige funksjoner, de kan være av forskjellig type og til og med være kodet i forskjellig.net versjon. Hva som er likt ved dem er at de er alle små delsystemer som til slutt danner ett eller flere systemer. Løsningens forsamlinger beskrives kort under: Forsamling Classes Dynamic Query Mamut Webforms Mamut Webforms Service Application Mamut Webforms Test Beskrivelse Hovedklassebiblioteket for Mamut Webforms systemet. Ett tilleggsbibliotek som tillatter dynamiske LINQ/SQL spørringer. MVC2 prosjektet som utgjør Mamut Webforms nettstedet. Windows Service applikasjonen som brukes til automatisk eksportering. Testprosjekt som inneholder enhetstestene for systemet. Figur 25 - Avhengigheter mellom forsamlingene 5.2 Classes Nesten alle klassene i det totale Mamut Webforms systemet er samlet i denne forsamlingen. Grunnen til at klassene er plassert i en separat forsamling er å skille logikk mellom presentasjon, samt gjøre det mulig for andre forsamlinger å referere til klassene som brukes i biblioteket. Under skrives det kort om noen av nøkkel modulene i systemet: Configuration Modul som inneholder klasser som håndterer globalt tilgjengelig konfigurasjonsdirektiver. Database

116 Produktdokumentasjon Mamut Webforms 34 av 48 Håndterer forbindelser med databaser. DataObjects Inneholder Repositories, Objects og BusinessLogic. En Repository klasse har som oppgave å håndtere database kall til en spesifikk database tabell. Man kan se de representerer datatilgang laget. En Object klasse representerer en database rad returnert fra ett Reprository kall. BusinessLogic inneholder forretningslogikk laget og fungerer over Repository klasser. Exporting Inneholder logikk involvert med automatisk og manuell eksportering. Extensions Her ligger alle utvidelsesmetodene. General All generell funksjonalitet som ikke passer inn i en spesifikk modul havner her. Logging Inneholder logikk involvert med loggføring til både fil og e-post kontoer. Mvc Mvc er kjernen i hele systemet. Modulen består av Controllers, Models, Logic og Results. En Controller klasse representerer en kontrollør i MVC arkitekturen. En Model klasse representerer en modell i MVC arkitekturen. Logic inneholder logikk som er nært knyttet til noen av MVC elementene. Results inneholder egendefinerte resultater som kan bli returnert av en kontrollør. Ett resultat kan være for eksempel HTML kode, javascript kode, xml kode og mer. Resource Klasser knyttet til ressurshenting og håndtering ligger i Resource modulen. Ressurser er ofte tekststrenger som kan være på flere språk og disse trenger å kunne hentes ut dynamisk på det språket som er gjeldende. Modulen bruker databasen som datalager for ressursene. Session Her ligger all kode som brukes til å håndtere serverside sesjoner. Serverside sesjoner brukes hovedsakelig for å håndtere innloggede og utloggede brukere, men kan også brukes til annet slik som handlekurver og å lagre korte persistente meldinger som kan hentes ved neste side kall. 5.3 Dynamic Query Dynamic Query er ett tilleggsbibliotek som tillatter dynamiske LINQ/SQL spørringer. 5.4 Mamut Webforms I denne forsamlingen ligger MVC applikasjonen som utgjør selve nettsiden for Mamut Webforms systemet. Alle filene som skal være synlige på nettet plasseres her; det vil si de enkelte sidene (views), scriptsene og grafikk.

117 Produktdokumentasjon Mamut Webforms 35 av 48 I MVC2 kaller applikasjonen kontrollørene som ligger i Classes forsamlingen bak kulissene. Om en kontrollør blir funnet så letes det etter en Action metode som den igjen kaller. Denne metoden returnerer ett resultat eller ett View. Om resultatet er ett View så letes det i filstrukturen etter en fil som regel med samme navn som Action metoden som ble kalt tidligere. For eksempel om nettadressen er mysite.com/controller/action så tolkes verdien Controller som kontrollør og Action som Action metoden. Det vil si at det letes etter en fil kalt Action i mappen Controller i Views mappen Views. Vanligvis sendes det med en Model sammen med viewet og viewet bruker modellen til å presentere informasjonen. Dette er kjernen i MVC2.

118 Produktdokumentasjon Mamut Webforms 36 av 48 Figur 26 - Mamut Webforms sin filstruktur som MVC2 applikasjon (NB: ikke samme struktur som hvordan brukeren opplever det)

119 Produktdokumentasjon Mamut Webforms 37 av Mamut Webforms Service Application Forsamlingen er definert som ett Windows Service prosjekt. Det inneholder noen få egne klasser som brukes til og blant annet administrere nedtellerne som igjen brukes til å utløse automatisk eksportering. 5.6 Mamut Webforms Test Denne forsamlingen er definert som ett testprosjekt. Her ligger alle enhetstester for hele Mamut Webforms og dets delsystemer.

120 Produktdokumentasjon Mamut Webforms 38 av Databasestruktur Figur 27 - Database diagram

121 Produktdokumentasjon Mamut Webforms 39 av 48 Databasen som blir brukt er av typen Microsoft SQL Server (MSSQL). MSSQL er en relasjonell modell database utviklet av Microsoft for bruk med Windows kompatible applikasjoner. Under følger en liste over definerte tabeller og felter i databasen. Legg merke til at alle felter er i utgangspunktet NOT NULL og blir ikke nevnt eksplisitt i definisjonen. Null felter blir definert med betegnelsen Nullable. Forms FormId Integer PK, AI Name Varchar (250) UK DateCreated Datetime DateLastEdit Datetime Nullable CountryId Integer FK [Countries: CountryId], ON UPDATE: CASCADE, ON DELETE: RESTRICT CategoryId Integer FK [Categories: CategoryId], ON UPDATE: CASCADE, ON DELETE: RESTRICT Redirect Varchar (250) UseReply Tinyint Reply From Varchar (250) Reply Bccto Varchar (250) Reply Subject Varchar (250) Reply Text Varchar (MAX) EnableNoLeadDetection Tinyint Fields Felter som assosieres med skjemaer. FieldId Integer PK, AI FormId Integer FK [Forms: FormId], ON UPDATE: CASCADE, ON DELETE: CASCADE Active Tinyint Name Varchar (100) FieldType Integer Order Integer Required Tinyint DataType Integer CodeGenerationSettings Tabell som lagrer tidligere brukte innstillinger for generering av kode. CodeGenerationSettingId Integer PK, AI

122 Produktdokumentasjon Mamut Webforms 40 av 48 FormId Integer FK [Forms: FormId], ON UPDATE: CASCADE, ON DELETE: CASCADE TemplateStyle Integer Width Integer SubmitButton Varchar (100) SubmitButtonType Integer SubmitButtonImg Varchar (200) SubmitButtonImgHover Varchar (200) SubmitButtonOnclick Varchar (255) FormOnsubmit Varchar (255) UseAjaxForValMessages Tinyint CleanFillFieldsScript Tinyint Categories Kategorier skjemaer kan bli segmentert etter. CategoryId Integer PK, AI Name Varchar (250) UK Formdata Data for skjemaer (leads) FormdataId Integer PK, AI FormId Integer FK [Forms: FormId], ON UPDATE: CASCADE, ON DELETE: CASCADE DateSubmitted Datetime Url Varchar (250) Url hvor skjema ble fylt ut Project Varchar (250) GoogleUtmccn Varchar (250) FieldsFormdata Skjemadata fra feltene assosiert med skjema. Forklaring: En skjemadefinisjon har flere felter og når en bruker sender inn skjema med data så blir feltene i skjemaet brukeren fylte ut og verdiene av disse lagret her. Man kan da gjøre en kryssreferanse mellom feltene og verdiene som ble fylt ut av brukeren mot feltene som er definert i skjemaet. FieldFormdataId Integer PK, AI FormdataId Integer FK [Formdata: FormdataId], ON UPDATE: CASCADE, ON DELETE: CASCADE FieldType Integer Name Varchar (150)

123 Produktdokumentasjon Mamut Webforms 41 av 48 Value Varchar (250) FormdataExports Denne tabellen brukes for å flagge eksporterte leads som eksportert eller ikke eksportert. FormdataExportId Integer PK, AI FormdataId Integer UK, FK [Formdata: FormdataId], ON UPDATE: CASCADE, ON DELETE: CASCADE Exported Tinyint Exports Data om utførte eksporteringer. ExportId Integer PK, AI ExportDate DateTime NumLeads Integer Type Integer Result Integer CustomUrlParameters Her defineres egendefinerte url parametre som blir flettet inn sammen med skjema under innsending og assosiert med ett lead. CustomUrlParameterType Integer PK Name Varchar (250) CustomUrlParametersFormdata Paramaterdata assosiert med skjemadata. CustomUrlParameterFormdataId Integer PK, AI FormdataId Integer FK [Formdata: FormdataId], ON UPDATE: CASCADE, ON DELETE: CASCADE CustomUrlParameterType Integer FK [CustomUrlParameters: CustomUrlParameterType], ON UPDATE: CASCADE, ON DELETE: CASCADE Value Varchar (250) ProjectUrlParameters Her defineres hvilke url parametre som sjekkes for å finne Project verdien i skjemadata. ProjectUrlParameterId Integer PK, AI Name Varchar (250) Priority Integer

124 Produktdokumentasjon Mamut Webforms 42 av 48 Settings Her lagres globale konfigurasjoner. Samtlige urelatert funksjonalitet bruker denne tabellen til å lagre persistente data. Blant annet google utmccn, automatisk eksportering innstillinger og logging bruker denne tabellen. Name Varchar (250) PK Value Varchar (250) Users Brukere av systemet. UserId Integer PK, AI Username Varchar (100) Password Char (32) CookieLogin Felt for å lagre informasjon om persistente innlogginger ved bruk av cookies. CookieLoginId Char (23) PK UserId Integer FK [Users: UserId], ON UPDATE: CASCADE, ON DELETE: RESTRICT MachineName Varchar (100) Platform Varchar (100) Browser Varchar (100) Countries Landene som brukes i systemet. CountryId Integer PK Name Varchar (100) CountriesLanguages Tabell som binder tabellene Countries og Languages sammen. CountryId Integer PK, UK, FK [Countries: CountryId], ON UPDATE: CASCADE, ON DELETE: RESTRICT Languages Integer PK, FK [Languages: LanguageId], ON UPDATE: CASCADE, ON DELETE: RESTRICT Languages Språkene som brukes for å hente ressurser på språk. LanguageId Integer PK Name Varchar (100) CultureName Varchar(10)

125 Produktdokumentasjon Mamut Webforms 43 av 48 Resources Her lagres ressursstrenger. Internasjonalisering er også støttet. Name Varchar (250) PK Value Varchar (250) LanguageId Integer PK, FK [Languages: LanguageId], ON UPDATE: CASCADE, ON DELETE: RESTRICT ResourceCategoryId Integer PK, FK [ResourceCategories: ResourceCategoryId], ON UPDATE: CASCADE, ON DELETE: RESTRICT

126 Produktdokumentasjon Mamut Webforms 44 av Program CDen Hele systemet inkluderes på en CD som leveres sammen med prosjektrapporten. Innholdet på CDen kan brukes til å installere systemet, samt videreutvikle det om ønsket. Når en Program CD blir referert til i dokumentasjonen er det denne CDen det er snakk om. Følgende filer fra CDen er relevante for dataansvarlige og lesere av dette dokumentet: Filene som oppgjør nettstedet. Database filer som brukes til å opprette database strukturen og data. Service programmet som brukes til automatisk eksportering. Kildekoden til hele systemet.

127 Produktdokumentasjon Mamut Webforms 45 av Installeringer og rutiner 8.1 Installering av systemet 1. Installer IIS webserver. 2. Installer Microsoft SQL Server. 3. Kjør scriptet for å opprette database tabeller og data. a. Åpne Microsoft SQL Server Management Studio. b. Logg deg inn til databasen. c. Utvid Database seksjonen. d. Lokaliser og høyre klikk på korrekt database, velg deretter New Query. e. Naviger deg i Program CDen til mappen Database. f. Åpne scriptet Startup.sql, og kopier innholdet. g. Lim inn scriptet i spørringsvinduet du nettopp åpnet i Microsoft SQL Server Management Studio. h. Trykk på Execute og databasen skal bli opprettet. 4. Last opp filene til filserver. a. Åpne ditt favoritt FTP program. b. Logg deg inn med riktige kredensialer. c. Overfør filene i mappen Website fra Program CDen til filserveren. 5. Konfigurer konfigurasjonsfil med riktig database-, smtp-, ftpinfo også videre. Filen heter Web.config og finnes i rotmappen av nettstedet. Endre bare verdier som er kommentert mellom Modify here og End modify here. 8.2 Installering av Mamut Webforms Service 1. Installer Mamut Webforms service: a. Sørg for at du har kopiert innholdet i mappen Service på Program CDen til en mappe på maskinen du ønsker å kjøre servicen på. Det trenger ikke være samme maskin som kjører webserveren. b. Start command line. c. Kjør installutil.exe applikasjonen (finnes i mappen installutil for NET 4.0) med argumentene /i MamutWebformsServiceApplication.exe (finnes i bin mappen). Eksempel: ServiceMappe/installutil for NET 4.0/installutil.exe /i ServiceMappe/bin/MamutWebformsServiceApplication.exe 2. Kontroller konfigureringene i konfigurasjonsfilen. Filen heter MamutWebformsServiceApplication.exe.config og ligger i bin mappen sammen med MamutWebformsServiceApplication.exe. Endre bare verdier som er kommentert mellom Modify here og End modify here. 3. Start Mamut Webforms service (merk at dette gjelder for Windows Vista, derfor kan stegene under variere i din versjon): a. Åpne kontrollpanel. b. Naviger til system og vedlikehold. c. Åpne administrative verktøy. d. Trykk på Services snarveien. e. Naviger deg til servicen Mamut Webforms service. f. Trykk på Start the service. Til slutt burde du kontrollere eksporteringsinnstillingene. Disse kan endres gjennom Mamut Webforms på nettet.

128 Produktdokumentasjon Mamut Webforms 46 av Uinstallering av Mamut Webforms Service 1. Stopp Mamut Webforms service (merk at dette gjelder for Windows Vista, derfor kan stegene under variere i din versjon): a. Åpne kontrollpanel. b. Naviger til system og vedlikehold. c. Åpne administrative verktøy. d. Trykk på Services snarveien. e. Naviger deg til servicen Mamut Webforms service. f. Trykk på Stop the service. 2. Start command line. 3. Kjør installutil.exe applikasjonen (finnes i mappen installutil for NET 4.0) med argumentene /u MamutWebformsServiceApplication.exe (finnes i bin mappen). Eksempel: ServiceMappe/installutil for NET 4.0/installutil.exe /u ServiceMappe/bin/MamutWebformsServiceApplication.exe. 8.4 Debugging/lese feilmeldinger av service 1. Åpne kontrollpanel. 2. Naviger til system og vedlikehold. 3. Åpne administrative verktøy. 4. Åpne Event viewer. 5. Utvid Custom Views seksjonen og deretter Administrative Events. 6. Se etter feil med kilde (source) Mamut Webforms Service.

129 Produktdokumentasjon Mamut Webforms 47 av Referanseliste 9.1 Referanser Microsoft logo

130 Produktdokumentasjon Mamut Webforms 48 av Figurliste Figur 1 - Innholdsstruktur diagram... 7 Figur 2 Hovedmeny... 8 Figur 3 - Login... 9 Figur 4 - Change password Figur 5 - Create form Figur 6 - Edit form Figur 7 - Edit fields Figur 8 - Generate formcode Figur 9 - View formdata Figur 10 - List forms Figur 11 - Create category Figur 12 - Edit category Figur 13 - List categories Figur 14 - Analysis overview Figur 15 - Google Utmccn Figur 16 - Project URL parameters Figur 17 - Custom URL parameters Figur 18 - Export overview Figur 19 - Manual export Figur 20 - Automatic export basic settings Figur 21 - Automatic export advanced settings Figur 22 - Logging overview Figur 23 - Log Figur 24 - Log settings Figur 25 - Avhengigheter mellom forsamlingene Figur 26 - Mamut Webforms sin filstruktur som MVC2 applikasjon (NB: ikke samme struktur som hvordan brukeren opplever det) Figur 27 - Database diagram... 38

131 Testdokumentasjon Mamut Webforms 1 av 14 PROSJEKT NR Studieprogram: Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET Åpen Telefon: Telefaks: TESTDOKUMENT HOVEDPROSJEKTETS TITTEL System for generering av webskjemaer for Mamut ASA DATO ANTALL SIDER / BILAG 14 PROSJEKTDELTAKERE Kjetil Hårtveit, s INTERN VEILEDER Alfred Bratterud OPPDRAGSGIVER Mamut ASA KONTAKTPERSON Espen Johannessen SAMMENDRAG Systemet som er utviklet brukes til å genererer webskjemaer. Hensikten med systemet er å øke datakvalitet ved å fjerne manuelle rutiner, redusere svinn av leads og øke salg gjennom bedre oppfølging av leads. Systemet er utviklet med Microsoft teknologier C#/ASP.NET med MSSQL og Windows Service. 3 STIKKORD Mamut Webforms Webskjemagenerering.NET

132 Testdokumentasjon Mamut Webforms 2 av 14 Innholdsfortegnelse 1. Introduksjon Prototypetesting Første prototype test Live test Enhetstesting Testplan Testresultater Testdekning... 14

133 Testdokumentasjon Mamut Webforms 3 av Introduksjon Dette dokumentet inneholder beskrivelse av og resultater fra all testing som har blitt utført som del av systemutviklingen. Det skiller hovedsakelig mellom to typer tester: prototypetester og enhetstester. Prototypetestingen foregår manuelt ved simpelthen å bruke systemet. Her testes systemets funksjonalitet, samt andre egenskaper som brukervennlighet og programflyt. Enhetstestene blir utført automatisk og de tester programmets moduler. Ved utvikling av systemet ble det ikke brukt en utviklingsmetode basert på tester (såkalt Test Driven Development), men den trinnvise fossefallsmetoden. Dette medførte at enhetstestingen ble noe satt i skyggen og ble ikke implementert før senere i utviklingen. En annen grunn til dette er at jeg ikke hadde mye erfaring med å lage enhetstester på dette stadiet og måtte derfor sette meg inn i det først.

134 Testdokumentasjon Mamut Webforms 4 av Prototypetesting Som en del av kvalitetssikringen av systemet utførte vi prototype tester i ett produksjonsmiljø. Formålet med testene var å luke ut bugs, la brukerne bli kjent med grensesnittet og generelt øke kvaliteten på systemet før det lanseres. Ikke minst håpet jeg å få god tilbakemelding om både eksisterende og ny funksjonalitet. 2.1 Første prototype test Beskrivelse Hva testes Testutførelse Testpersoner Sted Gjennomførelsesdato Denne testen vil bli utført i lokalene hos Mamut med et par potensielle brukere av systemet. Testen går i stor grad ut på å introdusere brukerne for systemet, samt luke ut bugs og få forslag til forbedringer. Vanlige oppgaver som vil bli utført av webutviklere og personer med ansvar innenfor markedsføring 1. Brukerne blir bedt om å gjennomføre en oppgave 2. Brukerne gjennomfører oppgaven til beste evne 3. Brukerne gir tilbakemelding og dette dokumenteres Webutvikler Ivar Steen og prosjektleder Espen Johannessen Mamut ASA 28. april 2011 Oppgaver og resultater Oppgave Resultat Mulige forbedringer Fikset? Logge inn og ut OK av systemet Opprette OK skjema Endre skjema info Ikke OK - Endre Redirect til thank you page eller hjelpetekst Ja - Fjerne Use html, må bruke html. Skriv at html må brukes, fyll inn html og body tags automatisk - Burde ha html formateringsverktøy for reply - Større reply- felt - Vis gjeldende tab (f.eks. gjør tab bakgrunn Endre skjema felter Ikke OK - hvit) Legge til active bokser på alle felt og required - Legg til textarea felt datatype Generer skjema Ikke OK - Fikse anførselstegn bug ved bruk av Ja Ja

135 Testdokumentasjon Mamut Webforms 5 av 14 kode og flett inn på nettside Opprette Ikke OK kategori Endre kategori OK Google Utmccn Ikke OK - Opprette url parametere Endre og fjerne url parametere Endre brukerdefinerte url parametre Eksportere leads til CSV Endre automatisk eksportering innstillinger Endre logging innstillinger OK OK OK rollover images - Fix IE design ved generering av skjema - Vis html koden av skjema i samme vindu, f.eks. under (trenger ikke åpne nytt vindu) - Husk gamle kodegenererings innstillinger - Generer html kommentarer Start skjema og Slutt skjema slik at det er lett å se hvor skjemaet starter/slutter - Left align skjema ved default Fix bug ved henting av utmccn verdi. Det kan være flere utmz cookier fra flere domener, kan dette forårsake problemet? Ikke OK - Sluttdato må inkludere siste dagen i tillegg, altså være dato til og med og ikke bare til Ikke OK - Endre etikett to til leads to - Presisere at automatisk eksportering eksporterer til sftp server - Legg til hjelpetekst på samtlige innstillinger - Ønsker: Flytte sftp innstillinger til database OK Nei, verdihentingen er ikke pålitelig Ja Ja 2.2 Live test Beskrivelse Hva testes Testutførelse Denne testen er ment for å prøve ut systemet i ett ordentlig produksjonsmiljø. Ett skjema vil bli generert med systemet og det vil bli lagt inn på en kampanjeside på Mamut sitt nettsted. Noe trafikk vil bli dirigert til denne kampanjesiden og her ønsker vi å finne ut om systemet prosesserer innsendt skjemadata på korrekt vis. I tillegg testes Mamut Webforms Servicen som utløser automatisk eksportering. All funksjonalitet inkludert skjemagenerering og prosessering, automatisk eksportering og ingen leads detektering med service og alle systemadministreringsfunksjoner. 1. Forbered systemet for produksjonstest

136 Testdokumentasjon Mamut Webforms 6 av Generer og flett inn skjema inn på landingssider 3. Sett opp automatisk eksportering 4. Observer systemets opptreden og resultater Testpersoner - Webutviklere Ivar Steen og Kjetil Hårtveit - Prosjektleder Espen Johannessen Sted Gjennomførelsesdato Mamut ASA 11. mai 2011 Oppgaver og resultater Oppgave Resultat Mulige forbedringer Fikset? Endring av OK skjema info Generering av skjema Ikke OK - Når man trykker på Preview så poster ajax ved en feiltagelse skjemaet som blir generert, istedenfor skjemaet med generer kode instilinger. Gi generer kode skjemaet en ID referer til denne i javascriptene. Ja - Strip quote og single quotes signs fra rollover image. Skriv advarsel tekst om dette Innfletting av skjema på landingsside Legge til og endre kategorier Prosessering av innsendte skjemadata Endring av analyseringsinnstillinger Endring av automatisk eksportering innstillinger Automatisk eksportering laster opp fil til sftp server Servicen installeres, startes og uinstalleres uten feil OK OK Ikke OK - Æ, ø og å blir gjort om til spørsmålstegn. Sjekk om ISO enkodingen kan være årsaken OK OK OK Ikke OK - Servicen får en feil ved start og blir dermed terminert. Fjern konfigurasjonsinnstillingen requesturl som ikke lenger brukes - Service timerene ser ikke ut til å fungere riktig. Bytt System.Timers.Timer klassen med System.Threading.Timer Ja Nei, timerne fungerer ser ikke ut til å fungere

137 Testdokumentasjon Mamut Webforms 7 av 14 Feil loggføres Ikke OK - Jeg tror loggføringen fungerer, men den bruker omgivelsesvariabelen Current Working Directory for å dynamisk skrive til loggfil. Dette gjør at lokalisasjonen til loggfilen blir ukonsekvent. Bør gjøre det mulig å spesifisere sti i konfigen Ingen lead detektering feil utløses når skjema ikke har fått lead innen spesifisert tidsrom Ikke OK - Feilen utløses på riktig tidspunkt, men mekanismen er bygd for å sende uansett om ingen feil ble utløst. Gjør slik at funksjonen exiter om ingen feil blir utløst Ja Ja

138 Testdokumentasjon Mamut Webforms 8 av Enhetstesting Enhetstestene for Mamut Webforms og delsystemene er laget med RhinoMocks oppå testrammeverket NUnit. For å kjøre testene brukes det eksterne programmet Gallio Icarus Test Runner. Grunnen til at ett eksternt testkjøringsprogram brukes er fordi at den innebygde testkjøreren i Visual Studio ikke fungerer med NUnit. 3.1 Testplan Følgende områder bør testes: Essensiell funksjonalitet i systemet Funksjonalitet som er viktig for at brukeropplevelsen er flytende og korrekt Mulige sikkerhetsbrudd og input/output Forretningslogikk Datatransaksjoner mellom fysiske entiteter (system og database og eventuelle andre entiteter) Funksjonalitet som bør testes Her følger en omfattende, subjektiv (tolk det som veiledning) liste over funksjonalitet jeg mener bør dekkes av enhetstester. Merk at noe av dette er det allerede skrevet tester for. Generelt Klasser som bruker refleksjon skal kaste MissingMemberException (eller en liknende variasjon av dette, slik som MissingPropertyException etc.) om det er mulighet for at en member ikke finnes og det kan skape kludder i systemflyten Test at SQL transactions fungerer som forventet Forms (List all) Pagination dropdown boksen skal vise korrekt start og slutt nummer (F.eks og ) ved flere sider Riktig antall mengde skjemaer blir vist Sorteringen viser skjemaer som forventet (id -> asc, name -> desc osv) Om en sortering allerede er valgt så skal man kunne sortere andre veien ved å trykke på den igjen og visa versa (om den er asc så vil neste trykk bli desc, om den er desc så vil den bli asc). Om man velger Show all i pagination boksen så skal alle skjemaene lastes inn Om man velger Show all i pagination boksen så skal Show all vises som valgt (selected) Forms (edit fields) Om man velger checkbox så skal verdien på required lagres som 0 uansett Form (ProcessForm) Test at felt Idene ekstrakteres fra navn (nøkkel) verdien i formcollection Prosessering vil avsluttes og rulles tilbake om skjema id ikke eksisterer i databasen Prosessering vil avsluttes og rulles tilbake om felt id ikke er gyldig Prosessering vil avsluttes og rulles tilbake om ikke alle essensielle felt er funnet

139 Testdokumentasjon Mamut Webforms 9 av 14 Test at google utmccn verdien hentes Test at project verdien hentes Test at project verdien hentes basert på prioritet Test at brukeren redirectes til skjemaets redirect verdi Test at tilbakemelding sendes General.Helper Teste at ObjectToSelectListItemList selecter verdien som samsvarer med selected argumentet HtmlHelper extensions Teste at GetDisplayFormatAttribute metoden klarer å hente attributen fra modell propertyen DBResource Test at cachen fylles opp om den ikke er fylt opp Test at ressurshåndtereren systematisk leter etter den beste språkmatchen. Dvs: 1. Sjekk om ressursen finnes i gjeldende språk 2. Sjekk om ressursen finnes i default språk 3. Sjekk om ressursen finnes i invariant språk FileLogger Test å skrive til fil Test å lese fil Test at log sendes med ExecuteExport Test generering av CSV fil Test lagring av CSV fil på server Test opplasting av CSV til ftp server Repository Hente data Legge inn data Fjerne data Oppdatere data UrlHelperExtensions Test at RedirectToAction overloadene fungerer. BaseController Test at RedirectToAction overloadene fungerer. CookieLogin Test at cookie logins bare blir validert om alle verdier stemmer (maskinnavn, browser og platform) Test at cookie blir lagret hos klienten. Test at cookie informasjon blir lagret på serveren. Test at cookie blir fjernet.

140 Testdokumentasjon Mamut Webforms 10 av 14 Business Logic Test alt. Service Test kalkulering av eksport start dato basert på intervalltype og tidspunkt. Test kalkulering av eksport slutt dato basert på intervalltype og tidspunkt. Test at hvis det er nye innstillinger så blir innstillingene oppdatert. Test at hvis timeren allerede kjører og det ikke er nye endringer så endres intervallen til ordentlig intervall. Test at intervalshortening fjerner tid fra realinterval ved første kjøring etter oppdatering Test at intervalshortening legger til tid i realinterval om kjøringen ikke er nylig endret JavaScript Test at klientside valideringer fungerer o Valid phonenum o Valid o Required Test at ajax kall for å hente valideringsressurser fungerer. Test at ajax kall henter valideringsressurser med hensyn til språk argument.

141 Testdokumentasjon Mamut Webforms 11 av Testresultater Resultatene av alle testene i testprosjektet er samlet i en testrapport utformet av Gallio Icarus Test Runner. Rapporten følger under:

142 Testdokumentasjon Mamut Webforms 12 av 14

143 Testdokumentasjon Mamut Webforms 13 av 14

144 Testdokumentasjon Mamut Webforms 14 av Testdekning Det strebes alltid etter å dekke som mye som mulig av systemet med enhetstester, men det er ett faktum at dette sjeldent er mulig. Derfor har jeg valgt å prioritere tester for funksjonalitet som har mest innvirkning på systemets kvalitet og funksjoner som er spesielt avanserte (det blir lettere å vedlikeholde koden om det er skrevet tester for den). I skrivende stund mangler det tester for prosessering av skjemadata, samt en del eksporteringsfunksjonalitet.

145 Brukerdokumentasjon Mamut Webforms 1 av 31 PROSJEKT NR Studieprogram: Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET Åpen Telefon: Telefaks: BRUKERDOKUMENT HOVEDPROSJEKTETS TITTEL System for generering av webskjemaer for Mamut ASA DATO ANTALL SIDER 31 PROSJEKTDELTAKERE Kjetil Hårtveit, s INTERN VEILEDER Alfred Bratterud OPPDRAGSGIVER Mamut ASA KONTAKTPERSON Espen Johannessen SAMMENDRAG Systemet som er utviklet brukes til å generere webskjemaer. Hensikten med systemet er å øke datakvalitet ved å fjerne manuelle rutiner, redusere svinn av leads og øke salg gjennom bedre oppfølging av leads. Systemet er utviklet med Microsoft teknologier C#/ASP.NET med MSSQL og Windows Service. 3 STIKKORD Mamut Webforms Webskjemagenerering.NET

146 Brukerdokumentasjon Mamut Webforms 2 av 31 Innholdsfortegnelse 1. Introduksjon Om manualen Ordforklaring Om systemet Målet med systemet Hva kan systemet gjøre? Introdusering i bruk av systemet Brukerveiledning Webutvikleroppgaver Hvordan oppretter man skjema? Hvordan generer man skjemakode? Hvordan fletter man inn skjema på nettside? Markedsføreroppgaver Hvordan henter man URL parameter ved skjemainnsending og registrerer det som prosjektkode? Hvordan henter man egendefinerte URL parametre ved skjemainnsending? Hvordan eksporterer man leads manuelt? Hvordan henter endrer man tidspunktet for automatisk eksportering? Hvordan endrer man hvor lang tid det tar før No lead detection feil utløses? Referanse Seksjon: User Login Change password Seksjon: Forms Create form List all Edit info Edit fields Generate code Form data Seksjon: Categories Create category List all Edit category Seksjon: Analysis Google Utmccn Project url parameters Custom url parameters Seksjon: Export Manual export Automatic export basic settings Automatic export advanced settings Seksjon: Logging Settings Seksjon: Demo Landingsside Update form Stikkordliste... 31

147 Brukerdokumentasjon Mamut Webforms 3 av Introduksjon 1.1 Om manualen Denne manualen er beregnet på brukere av Mamut Webforms systemet. Det er hovedsakelig to forskjellige typer brukere som vil bruke dette systemet: webutviklere og markedsførere involvert i sporing og innsamling av leads. Det forutsettes at de er kjent med det gamle CMS systemet Mamut bruker og for markedsførere forutsettes det at de er kjent med noe Google analytics terminologi. Manualen er delt inn i to hoveddeler: brukerveiledning og referanse. Brukerveiledningen inneholder prosedyrer og rutiner for å fullføre enkelte oppgaver, mens referansen viser en oversikt over alle funksjonene i systemet. 1.2 Ordforklaring Ord/uttrykk Skjema Kategori Lead Utmccn Url parameter Betydning Ett webskjema som ofte inkluderes på landingssider for å registrere informasjon for brukere. Skjemaer kan bli gruppert etter kategorier. En individuell skjemainnsending gjennom ett webskjema med informasjon som gjør at innsenderen kan oppfølges som en potensiell kunde. En cookie verdi som brukes av Google Analytics som sier noe om hvordan brukeren har funnet frem til nettstedet. En parameter i spørredelen av en URL. En url parameter er den uthevede delen av denne eksempel urlen:

148 Brukerdokumentasjon Mamut Webforms 4 av Om systemet 2.1 Målet med systemet Mamut ASA ønsket ett å få utviklet ett nytt system for å generere webskjemaer for innsamling av lead fra kampanjeaktiviteter. Det eksisterende CMS systemet og den eksisterende rutinen for registrering av leads hadde svakheter som både hadde negativ virkning på det totale salget og tilgjengelige ressurser. Det nye systemet har som mål å strømlinjeforme og automatisere leadinnsamlingen så mye som mulig og dermed løse opp flokene som er tilstede. Oppsummert skal det gi følgende fordeler: Ressursbesparelser gjennom automatisering av rutineoppgaver. Øke datakvalitet ved å fjerne manuelle rutiner. Gir bedre informasjon i forhold til hvilke prosjekter som selger. Reduserer svinn av leads. Øke salget gjennom bedre oppfølging av leads. 2.2 Hva kan systemet gjøre? Følgende aktiviteter er mulige i Mamut Webforms: Innlogging og utlogging av systemet. Endring av brukerpassord. Opprettelse og håndtering skjema. o Generering av kode. o Visning av innhentet data. Opprettelse og håndtering av kategorier. Automatisk og manuell eksportering av leads (skjemadata) til CSV format med fast kolonnebredde. Endre innstillinger for lagring av informasjon for analyseringsbruk. Endre innstillinger for loggføring av systemtilbakemeldinger.

149 Brukerdokumentasjon Mamut Webforms 5 av Introdusering i bruk av systemet Som tidligere nevnt er det hovedsakelig to typer brukere av systemet: webutviklere og markedsførere. Webutviklere oppretter, fletter inn og vedlikeholder webskjemaer mens markedsførere konfigurerer innstillinger for sporing og innsamling av leads. Markedsførere, men også potensielt brukere innenfor salg, har nytte av å kontrollere og eksporterer skjemadata. Under vises kjernen i bruk av systemet, fra opprettelsen av webskjema til leadinnsamlingen. Vanlig hendelsesforløp ved bruk av Mamut Webforms

150 Brukerdokumentasjon Mamut Webforms 6 av Brukerveiledning 3.1 Webutvikleroppgaver Hvordan oppretter man skjema? 1. Navigerer deg til menyen der det står Forms. 2. Trykk på Create i undermenyen. 3. Fyll inn ønskede skjema detaljer. 4. Trykk på Create knappen for å opprette skjema. Referanse: Create form Hvordan generer man skjemakode? 1. Sørg for at du har generert ett skjema. For hjelp les her: Hvordan oppretter man skjema? 2. Navigerer deg til skjemaet du ønsker å generere kode for gjennom Forms (list all) siden. 3. Trykk på Code tabben. 4. Konfigurer ønskede genererings innstillinger. 5. Trykk på View Source knappen for å generer skjemakoden. Tips: Preview knappen viser deg hvordan skjemaet ser ut i HTML. Tips 2: Highlights content lenken merker den genererte skjemakoden for deg automatisk. Referanse: Create form List all Generate code Hvordan fletter man inn skjema på nettside? 1. Først trenger du å generere koden for skjemaet. For hjelp les her: Hvordan generer man skjemakode? 2. Merk og kopier skjemakoden. 3. Lim inn koden i nettsidens kildekode (eller gjennom ditt favoritt CMS system) der du ønsker å plassere skjemaet. Referanse: Generate code

151 Brukerdokumentasjon Mamut Webforms 7 av Markedsføreroppgaver Hvordan henter man URL parameter ved skjemainnsending og registrerer det som prosjektkode? 1. Naviger deg til Analysis elementet i menyen. 2. Trykk på Project URL parameters i undermenyen. 3. Legg til en ny URL parameter verdi eller endre en eksisterende parameter. Etter dette vil URL parameteren hentes ved fremtidige skjemainnsendinger og registreres i Project feltet. Referanse: Project url parameters Hvordan henter man egendefinerte URL parametre ved skjemainnsending? 1. Naviger deg til Analysis elementet i menyen. 2. Trykk på Custom URL parameters i undermenyen. 3. Legg til en ny URL parameter verdi eller endre en eksisterende parameter. Etter dette vil URL parameteren hentes ved fremtidige skjemainnsendinger og registreres til det tilknyttede CustomParameter feltet. Referanse: Custom url parameters Hvordan eksporterer man leads manuelt? 1. Naviger deg til Export elementet i menyen. 2. Trykk på Manual export i undermenyen. 3. Oppgi ønskede filtreringsinnstillinger. 4. Trykk på Export knappen. 5. Lagre eller åpne den genererte CSV filen. Referanse: Manual export Hvordan henter endrer man tidspunktet for automatisk eksportering? 1. Naviger deg til Export elementet i menyen. 2. Trykk på Automatic export settings i undermenyen. 3. Lokaliser feltet Run export.

152 Brukerdokumentasjon Mamut Webforms 8 av Endre intervall og tidspunkt etter ønske. 5. Trykk på Update for å lagre innstillingene. Forandringen vil bli reflektert i Mamut Webform Servicen så fort den snakker med databasen, derfor kan det hende at du ikke opplever en øyeblikkelig endring. Referanse: Automatic export basic settings Hvordan endrer man hvor lang tid det tar før No lead detection feil utløses? 1. Naviger deg til Logging elementet i menyen. 2. Trykk på Settings i undermenyen. 3. Lokaliser feltet No lead detection trigger time. 4. Endre antall timer du vil det må gå før No lead detection feilen utløses. Referanse: Settings

153 Brukerdokumentasjon Mamut Webforms 9 av Referanse 4.1 Seksjon: User Login Side for å logge seg inn på systemet Brukernavn. Passord. Om du ønsker å bli logget inn automatisk neste gang du besøker siden.

154 Brukerdokumentasjon Mamut Webforms 10 av Change password Her kan man endre passordet sitt. 1 Gammelt, nytt og bekreftelse på nytt passord.

155 Brukerdokumentasjon Mamut Webforms 11 av Seksjon: Forms Create form Her kan man opprette nytt skjema Skjemaets navn. Landet skjemaet skal bli knyttet til. Kategorien skjemaet skal knyttes til.

156 Brukerdokumentasjon Mamut Webforms 12 av List all Denne siden lister opp alle skjemaene som er opprettet. 1 Her kan du velge antall skjemaer som skal vises på en gang. Velg verdien show all om du vil at alle skjemaene skal vises samtidig. 2 3 Her kan du søke på skjemaets ID. Du kan velge å sortere skjemaene på alle de forskjellige kolonnene enkelt ved å trykke på en av dem. Ved å trykke på en kolonne som allerede er valgt vil det sorteres reversert. ID: Skjemaets ID. Name: Skjemaets navn. Category: Kategorien skjemaet hører til. Country: Landet skjemaet hører til. Date created: Når skjemaet ble opprettet. Last submittion: Når siste lead ble sendt inn med webskjema. Total submits: Totalt antall leads registrert. 4 For å gå til side med detaljer for skjemaet siden trykk på skjema navnet.

157 Brukerdokumentasjon Mamut Webforms 13 av Edit info Her kan man endre generell informasjon og oppførsel vedrørende ett spesifikt skjema Her vises generell informasjon om skjemaet. Her kan du endre skjemaets navn. Her kan du endre kategorien skjemaet hører til. Her kan du spesifisere en side hvor brukeren blir omsendt etter å ha sendt inn webskjema. Hvis feltet er tomt vil brukeren bli sendt tilbake til siden skjemaet befant seg på. Her kan du spesifisere en tilbakemelding-/takk som sendes til brukeren etter å ha innsendt skjema. Om No lead detection skal brukes på dette skjemaet. Hvis ja så vil en feil utløses om skjemaet ikke har fått inn ett lead innen ett spesifisert antall timer.

158 Brukerdokumentasjon Mamut Webforms 14 av Edit fields Her endrer man skjemaets felter Om feltet skal være aktivt. Uaktive felt blir ikke generert med Generate code funksjonen. Her kan man endre hvert enkelt felts navn. Dette navnet brukes ved generering av skjemakode på Generate code siden. Engelsk navn på feltet, slik at man alltid kjenner feltets betydning selv når skjemaet bruker ett annet språk. Hvilken rekkefølge feltet vil vises ved generering av skjemakode på Generate code siden. Feltets skjematype. Dette sier hvordan feltet skal tolkes og har direkte sammenheng med hva slags valideringer og liknende som knyttes til feltet. Om skjemaet må fylles ut ved innsending av skjemaet. Konkret betyr dette at en validering vil skrike opp om ingen verdi finnes i feltet.

159 Brukerdokumentasjon Mamut Webforms 15 av Generate code Her genererer man koden for skjema. 1 Hva slags mal som skal brukes for skjemaet. Simple Inside: Vanlig mal med feltnavnene som felt tekst. Simple Outside: Vanlig mal med feltnavnene til venstre for feltene, mens feltene står tomme. 2 Om det skal legges til ett script på feltene som vasker verdien når man trykker på feltet, og at den originale verdien settes på feltet om verdien er tom. Dette gjelder bare for Simple Inside malen. 3 4 Bredden på skjemaet. Her kan man spesifisere hvordan innsendingsknappen skal se ut. Text: Vanlig submit innsendingsknapp og tekst. Image: Innsendingsknappen er ett bilde og det kan også spesifiseres et rollover bilde Kode som legges til i onclick attributtet på innsendingsknappen. Kode som legges til i onsubmit attributtet på skjemaet. Om ajax kall skal brukes for å hente valideringsmeldinger.

160 Brukerdokumentasjon Mamut Webforms 16 av Genererer skjemakode og viser det i kildekode form. Genererer skjemakode og viser det i HTML form. Merker skjemakoden som er generert.

161 Brukerdokumentasjon Mamut Webforms 17 av Form data Her vises all data som er blitt innsendt med skjema Leadets ID. Datoen leadet ble sendt inn. Hovedfeltene i skjema. Valgfrie felter. Nettadressen skjemaet befant seg på når leadet ble sendt inn. Prosjektverdien som hentes fra nettadressen. Hvilke parametre den sjekker kan spesifiseres på Project url parameters siden. Google analytics utmccn verdien som hentes fra cookie. Egendefinerte url parametre. Disse kan spesifiseres på Custom url parameters siden.

162 Brukerdokumentasjon Mamut Webforms 18 av Seksjon: Categories Create category Her kan man opprette kategorier. 1 Navnet på kategorien.

163 Brukerdokumentasjon Mamut Webforms 19 av List all Her vises alle kategoriene som er opprettet i systemet. 1 Her kan du velge antall kategorier som skal vises på en gang. Velg verdien show all om du vil at alle kategoriene skal vises samtidig. 2 Du kan velge å sortere skjemaene på alle de forskjellige kolonnene enkelt ved å trykke på en av dem. Ved å trykke på en kolonne som allerede er valgt vil det sorteres reversert. ID: Kategoriens ID. Name: Kategoriens navn. 3 For å gå til side med detaljer for skjemaet siden trykk på skjema navnet.

164 Brukerdokumentasjon Mamut Webforms 20 av Edit category Her kan man endre kategorier. 1 Navnet på kategorien.

165 Brukerdokumentasjon Mamut Webforms 21 av Seksjon: Analysis Google Utmccn Her kan man endre innstillinger for lagring av Google Analytics sin utmccn cookie verdi. 1 Om Google Analytics sin utmccn verdi skal lagres med hver skjemainnsending eller ikke.

166 Brukerdokumentasjon Mamut Webforms 22 av Project url parameters Her kan man endre innstillinger for henting av prosjektkoden fra URLen ved skjema innsending Om parameteren skal slettes. Navnet på parameteren som skal letes etter i URLen. Parameterens prioritet. Hensikten med denne verdien er å unngå kollisjoner hvis to eller flere parametre finnes i URLen. Lavere tall tilsier høyere prioritet.

167 Brukerdokumentasjon Mamut Webforms 23 av Custom url parameters Her kan man spesifisere egendefinerte parametre som skal bli hentet fra URLen ved skjema innsending. 1 2 Navn på parameter som skal letes etter i URLen. Type definisjonen til parametrene.

168 Brukerdokumentasjon Mamut Webforms 24 av Seksjon: Export Manual export Her kan man eksportere leads til CSV fil og filtrere disse på visse verdier Hvilke land eksporteringen skal filtreres på. Hvilken kategori eksporteringen skal filtreres på. Start dato for eksporteringen. Slutt dato for eksporteringen.

169 Brukerdokumentasjon Mamut Webforms 25 av Automatic export basic settings Her kan man endre basiske innstillinger for automatisk eksportering av leads Med hva slags intervall den automatiske eksporteringen skal foretas. Om bare tidligere ueksporterte leads skal eksporteres, eller om alle leads innenfor tidsrommet mellom forrige eksportering og den gjeldende eksporteringen skal inkluderes. Her kan man kontrollere om automatisk eksportering skal være aktiv eller ikke.

170 Brukerdokumentasjon Mamut Webforms 26 av Automatic export advanced settings Her kan man endre avanserte innstilinger for automatisk eksportering av leads. 1 Tilkoblingsinnstillinger for SFTP serveren som det lastes opp filer til ved automatisk eksportering. Host: Hostnavn. Username: Brukernavn. Port: Porten som brukes. Destination directory: Stien filene lastes opp til på SFTP serveren. Private key: Den private nøkkelen som brukes til å verifisere tilkoblingen Hvor ofte servicen skal sende spørring til databasen for oppdateringer. Hvis en e-post konto er spesifisert her så vil leads bli sendt til denne kontoen i tillegg til opplastningen. Parameter verdi som er nødvendig for å starte automatisk eksportering på webserveren. URLen som vil bli spørret av servicen for å foreta automatisk eksportering. Denne knappen oppdaterer request urlen automatisk. Den tar domenet og trigger parmeter verdien til betraktning og lager en gyldig request url.

171 Brukerdokumentasjon Mamut Webforms 27 av 31 7 Denne knappen sjekker at SFTP innstillingene er korrekte.

172 Brukerdokumentasjon Mamut Webforms 28 av Seksjon: Logging Settings Her kan man endre innstillinger for loggføring. 1 2 Hvis oppgitt så sendes nye logginnføringer til denne e-post kontoen. Her kan man spesifisere hva slags loggtyper som skal bli sendt med e-post. Database errors: Feil under kommunikasjon med database. Export errors: Feil under automatisk eksportering. Service errors: Feil som oppstår i servicen. No lead detection errors: Feil som utløses når skjema ikke har fått leads innenfor en spesifisert tidsramme. 3 Hvor lang tid det må gå før en feil utløses hvis ikke skjema har fått en skjemainnsending.

173 Brukerdokumentasjon Mamut Webforms 29 av Seksjon: Demo Landingsside Demo landingssiden er ment for å teste skjemaer før de blir offentliggjort. 1 2 Lenken tar deg tilbake til Mamut Webforms systemet. Her inkluderes skjemaet som er lagret på Update form siden.

174 Brukerdokumentasjon Mamut Webforms 30 av Update form Her kan man endre skjemakoden som blir brukt på Landingsside siden. 1 Koden i dette feltet blir brukt på Landingsside siden. En vanlig prosedyre er først å generere skjemakoden for ett skjema, for å så kopiere og lime inn koden i dette feltet. Deretter kan man gå på landingssiden for å teste skjemaet både visuelt og funksjonelt.

PROSESSDOKUMENTASJON

PROSESSDOKUMENTASJON PROSJEKT NR.: 10-30 Studieprogram: Anvendt Datateknologi Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET: Papir og elektronisk Telefon: 22 45 32 00

Detaljer

Hovedprosjektet i Data Høgskolen i Oslo våren 2010

Hovedprosjektet i Data Høgskolen i Oslo våren 2010 Hovedprosjektet i Data Høgskolen i Oslo våren 2010 Kevin Holmvik s147777 Nikolai Godager s147790 Einar Drivdal s147782 Chau Quoc Quo Do s147792 PROSJEKT NR.: 10-30 Studieprogram: Anvendt Datateknologi

Detaljer

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus Forprosjektrapport Gruppe 2 Hovedprosjekt 2014, Høgskolen i Oslo og Akershus 1 INNHOLD 2 Presentasjon... 2 2.1 Gruppen medlemmer... 2 2.2 Oppgave... 2 2.3 Oppdragsgiver... 2 2.4 Veileder... 2 3 Sammendrag...

Detaljer

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen.

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen. Artist webside Innhold Artist webside...1 Gruppe medlemmer...1 Oppdragsgiver...1 Kontaktperson...2 Veileder...2 Oppgaven...2 Muligheter...2 Sammendrag...2 Dagens situasjon...2 Mål og rammebetingelser...3

Detaljer

Del IV: Prosessdokumentasjon

Del IV: Prosessdokumentasjon 1 2 Forord Dette dokumentet omhandler detaljert beskrivelse av vår arbeidsprosess gjennom hele perioden med prosjektet. Prosessdokumentasjonen er en viktig del av sluttrapporten, og er delt opp i følgende

Detaljer

Kravspesifikasjon. Kravspesifikasjon Gruppe nr 10 Hårgalleriet. DATO 08. februar 2011 ANTALL SIDER 8 INTERN VEILEDER Tor Krattebøl

Kravspesifikasjon. Kravspesifikasjon Gruppe nr 10 Hårgalleriet. DATO 08. februar 2011 ANTALL SIDER 8 INTERN VEILEDER Tor Krattebøl Kravspesifikasjon HOVEDPROSJEKTETS TITTEL Bestillingssystem for frisørsalong PROSJEKTDELTAKERE Endre Gulbrandsen (s150690) DATO 08. februar 2011 ANTALL SIDER 8 INTERN VEILEDER Tor Krattebøl OPPDRAGSGIVER

Detaljer

Kravspesifikasjon. Forord

Kravspesifikasjon. Forord Kravspesifikasjon Forord Kravspesifikasjonen skal beskrive applikasjonens funksjonalitet og betingelsene som oppdragsgiver krever. Det skal også hjelpe utviklerne med å begrense applikasjonen slik at den

Detaljer

LocalBank Prosjektbeskrivelse

LocalBank Prosjektbeskrivelse LocalBank Prosjektbeskrivelse INNHOLD MÅL... 2 STRUKTUR... 2 IMPLEMENTASJON AV ILOCALBANKREPOSITORY... 3 GUI... 4 EXCEPTION... 4 KODE... 4 NOEN KLASSER OG SPESIELLE EMNER SOM DE VISER... 5 KLASSE DIAGRAMMER...

Detaljer

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk Produktdokumentasjon Madison Møbler Administrasjonsside og Nettbutikk 1 1. Forord 1.1 Dokumentasjonen Dette er en teknisk dokumentasjon på produktet som er utviklet. Denne er tiltenkt personer med teknisk

Detaljer

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas Prosjekt nr. 2011 22 Testrapport Hovedprosjektets tittel Implementering av plugin og utvikling av wizard for Det Norske Veritas Prosjektdeltakere Magnus Strand Nekstad s156159 Jørgen Rønbeck s135779 Dato

Detaljer

Kravspesifikasjon. Høgskolen i Oslo, våren 2011 Sted og dato: Oslo, 9. februar 2011. Gruppemedlemmer

Kravspesifikasjon. Høgskolen i Oslo, våren 2011 Sted og dato: Oslo, 9. februar 2011. Gruppemedlemmer Kravspesifikasjon Høgskolen i Oslo, våren 2011 Sted og dato: Oslo, 9. februar 2011 Gruppemedlemmer Adeel Yousaf Khan s141459 Mats Klingenberg Naustdal s148155 Nur M. Ahmed s148108 Thomas Wiborg s161335

Detaljer

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 2016. Pillbox Punchline

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 2016. Pillbox Punchline Forprosjektrapport Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 2016 Pillbox Punchline Gruppe 8 André Østhagen Bye, s198607 Annika Hammervoll, s198611 Hanne Rygge, s198613

Detaljer

Hovedprosjekt 2011. Høgskolen i Oslo. Gruppe 24. Tore Holmboe (s155547) Vegard Kamben (s148147) Anders Fohlin Kjøde (s155551) Haakon Nygård (s155535)

Hovedprosjekt 2011. Høgskolen i Oslo. Gruppe 24. Tore Holmboe (s155547) Vegard Kamben (s148147) Anders Fohlin Kjøde (s155551) Haakon Nygård (s155535) Hovedprosjekt 2011 Høgskolen i Oslo Gruppe 24 Tore Holmboe (s155547) Vegard Kamben (s148147) Anders Fohlin Kjøde (s155551) Haakon Nygård (s155535) Stian Pettersen (s144449) en RSS-leser på tvers av touchenheter

Detaljer

Forprosjektrapport. Gruppe 26. Digitalt læreverktøy for Cappelen Damm

Forprosjektrapport. Gruppe 26. Digitalt læreverktøy for Cappelen Damm Hovedprosjekt i informasjonsteknologi 2016 Høyskolen i Oslo og Akershus Forprosjektrapport Digitalt læreverktøy for Cappelen Damm Gruppe 26 Sofia Aittamaa - s198580@stud.hioa.no Petter Lysne - s198579@stud.hioa.no

Detaljer

VEDLEGG 1 KRAVSPESIFIKASJON

VEDLEGG 1 KRAVSPESIFIKASJON VEDLEGG 1 KRAVSPESIFIKASJON INNHOLDSFORTEGNELSE Forord... 2 1 Systembeskrivelse... 2 2 Mål for systemet... 3 3 Funksjonelle krav... 4 4 Ikke-funksjonelle krav... 5 5 Use-case diagram... 6 6 Rammekrav...

Detaljer

Forprosjektrapport. Presentasjon. Sammendrag. Tittel Informasjonsplatform for NorgesGruppen

Forprosjektrapport. Presentasjon. Sammendrag. Tittel Informasjonsplatform for NorgesGruppen Forprosjektrapport Presentasjon Tittel Informasjonsplatform for NorgesGruppen Oppgave Utvikle en informasjonsplatform for butikkene i NorgesGruppen Periode 3. Januar 14. Juni Gruppemedlemmer Joakim Sjögren

Detaljer

Bachelorprosjekt 2015

Bachelorprosjekt 2015 Bachelorprosjekt 2015 Høgskolen i Oslo og Akershus Tam Ha (s171513) Arslan Yousaf (s189135) Gabriel Noraker Alfarrustad (s161910) Eivind Lund (s180381) Phillip Padiernos Næss (s162951) Forprosjekt Prosjektets

Detaljer

1 Inledning. 1.1 Presentasjon. Tittel Informasjonsplattform for NorgesGruppen. Oppgave Utvikle en informasjonsplattform for butikkene i NorgesGruppen

1 Inledning. 1.1 Presentasjon. Tittel Informasjonsplattform for NorgesGruppen. Oppgave Utvikle en informasjonsplattform for butikkene i NorgesGruppen Kravspesifikasjon 1 Inledning 1.1 Presentasjon Tittel Informasjonsplattform for NorgesGruppen Oppgave Utvikle en informasjonsplattform for butikkene i NorgesGruppen Periode 3. Januar 14. Juni Gruppemedlemmer

Detaljer

KRAVSPESIFIKASJON. Gruppe 2. Hovedprosjekt, Høgskolen i Oslo og Akershus. Våren 2014 KRAVSPESIFIKASJON 1

KRAVSPESIFIKASJON. Gruppe 2. Hovedprosjekt, Høgskolen i Oslo og Akershus. Våren 2014 KRAVSPESIFIKASJON 1 KRAVSPESIFIKASJON Gruppe 2 Hovedprosjekt, Høgskolen i Oslo og Akershus Våren 2014 KRAVSPESIFIKASJON 1 CONTENTS 1. Forord... 3 2. Presentasjon... 3 2.1 Gruppens medlemmer... 3 2.2 Oppdragsgiver... 3 2.3

Detaljer

Testrapport for Sir Jerky Leap

Testrapport for Sir Jerky Leap Jasmine Garry (s135600) Line Sørensen (s135590) Fredrik Hoem Grelland (s135595) Tor Anders Gustavsen (s127668) 1 1. Forord Dette dokumentet inneholder informasjon og redegjøring av tester foretatt i forbindelse

Detaljer

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013. Testrapport

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013. Testrapport Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013 Testrapport 1 INNHOLDSFORTEGNELSE 1 INNHOLDSFORTEGNELSE... 1 2 Innledning... 2 3 Formål med testing... 3 3.1 Funksjonalitet...

Detaljer

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Oblig 5 Webutvikling. Av Thomas Gitlevaag Oblig 5 Webutvikling Av Thomas Gitlevaag For oppgave 1 og 2 skal dere levere en funksjonell webside på deres hjemmeområde. Dere skal også levere alle phps-filene slik at man for en hver side kan slenge

Detaljer

Produktrapport Gruppe 9

Produktrapport Gruppe 9 Forord Dette dokumentet er ment for personer som skal vedlikeholde, endre eller utvikle systemet. Produktdokument innholder informasjoner om programmets funksjoner og hvordan de fungerer. Før bruk av dette

Detaljer

Hovedprosjekt i ingeniørfag, data, våren 2015. Oslo 19.01.2015. Gruppe 23 Torstein Frogner, Bernt Kristoffer Helland, Vahid Khairkhah, Jonas Myren Mo

Hovedprosjekt i ingeniørfag, data, våren 2015. Oslo 19.01.2015. Gruppe 23 Torstein Frogner, Bernt Kristoffer Helland, Vahid Khairkhah, Jonas Myren Mo Hovedprosjekt i ingeniørfag, data, våren 2015 Oslo 19.01.2015 Gruppe 23 Torstein Frogner, Bernt Kristoffer Helland, Vahid Khairkhah, Jonas Myren Mo Forprosjektrapport Presentasjon Tittel: Pizzaplutselig.no

Detaljer

Kravspesifikasjon Innholdsfortegnelse

Kravspesifikasjon Innholdsfortegnelse Kravspesifikasjon Innholdsfortegnelse 1.Introduksjon... 2 1.1 Medlemmer:... 2 1.2 Oppdragsgiver:... 2 1.3 Kontaktsperson hos Retriever:... 2 1.4 Veileder:... 2 1.5 Bakgrunn... 3 2. Om Kravspesifikasjonen...

Detaljer

KRAVSPESIFIKASJON FORORD

KRAVSPESIFIKASJON FORORD KRAVSPESIFIKASJON FORORD Hensikten med kravspesifikasjonen er å gi oppdragsgiver og utviklere en enighet og forståelse av funksjonaliteten til applikasjonen som skal produseres. en definerer i tillegg

Detaljer

Læringsplattform for IT-fag basert på HTML5 utviklet i CakePhp

Læringsplattform for IT-fag basert på HTML5 utviklet i CakePhp Læringsplattform for IT-fag basert på HTML5 utviklet i CakePhp { En selvstendig plattform som kan brukes til å formidle kurs på nett med dagsaktuell teknologi. Oppgave 5, av Fredrik Johnsen Oppgavestiller

Detaljer

Publiseringsløsning for internettsider

Publiseringsløsning for internettsider Publiseringsløsning for internettsider Hva er Edit? Edit er et verktøy for publisering og vedlikehold av nettsider. Tidligere har det å vedlikeholde en nettside vært en tungvinn prosess, men nå kan alle

Detaljer

Dokument 1 - Sammendrag

Dokument 1 - Sammendrag Dokument 1 - Sammendrag Automatnett - Nytt CMS-verktøy for Uno-X Automat Fakultet for teknologi, kunst og design Høgskolen i Oslo og Akershus, 2013 Innholdsfortegnelse Sammendrag 1 1. Innledning 1 2. Om

Detaljer

Lotus Traveler - Manual for installasjon

Lotus Traveler - Manual for installasjon Lotus Traveler - Manual for installasjon Innholdsliste Nedlasting...2 Installasjon...3 Konfigurering...4 Problemer...5 Nedlasting 1) Åpne nettleseren på mobilen din. På de fleste Nokia-telefoner har denne

Detaljer

Katalogsynkronisering i skyen

Katalogsynkronisering i skyen Katalogsynkronisering i skyen Å opprette og ivareta bruker og personalinformasjon i flere forskjellige systemer kan være både tidskrevende og kostbart. ID Manager Katalogsynkronisering er en struktur-

Detaljer

Hovedprosjekt 2013. Gruppe 27. Forprosjektrapport [GILJE AS] Lars Gjestang - Hiran Piapo - Bård Skeie

Hovedprosjekt 2013. Gruppe 27. Forprosjektrapport [GILJE AS] Lars Gjestang - Hiran Piapo - Bård Skeie 2013 Hovedprosjekt 2013 Gruppe 27 Forprosjektrapport [GILJE AS] Lars Gjestang - Hiran Piapo - Bård Skeie Innhold 1. Presentasjon... 2 2. Sammendrag... 2 3. Dagens Situasjon... 2 4. Mål og rammebetingelser...

Detaljer

Eksamen i Internetteknologi Fagkode: IVA1379

Eksamen i Internetteknologi Fagkode: IVA1379 Høgskolen i Narvik Side 1 av 5 Eksamen i Internetteknologi Fagkode: IVA1379 Tid: Mandag, 07.06.04, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 4 oppgaver

Detaljer

Forprosjektrapport for Agresso R&D Ansettelsessystem 31.01.07. Hovedprosjekt våren 2007. Skrevet av:

Forprosjektrapport for Agresso R&D Ansettelsessystem 31.01.07. Hovedprosjekt våren 2007. Skrevet av: Forprosjektrapport for Agresso R&D Ansettelsessystem Hovedprosjekt våren 2007 31.01.07 Skrevet av: Anders Hartvoll Ruud Christian Årving Leif Martin Næss Sahdia Fayyaz Moghal 1 Sammendrag Prosjektittel:

Detaljer

Visma CRM Nyheter og forbedringer Side 1

Visma CRM Nyheter og forbedringer Side 1 Visma CRM Nyheter og forbedringer Side 1 NYHETER OG FORBEDRINGER Visma CRM Nyheter og forbedringer Side 2 Oslo, juni 2011 1. Sirkulasjon All informasjon i dette dokumentet kan endres uten varsel og innebærer

Detaljer

Kravspesifikasjon. Forord

Kravspesifikasjon. Forord Forord Kravspesifikasjonen skal gi en oversikt og forståelse over det planlagte systemets funksjonalitet. Dokumentet skal gi både utviklere og oppdragsgivere innblikk i hvordan og hva systemet skal levere.

Detaljer

Installasjonsveiledning. Mamut. Oppdatering til versjon 12.1

Installasjonsveiledning. Mamut. Oppdatering til versjon 12.1 Mamut Installasjonsveiledning Oppdatering til versjon 12.1 Detaljert steg-for-steg veiledning i hvordan installere/oppdatere ditt datax-program fra Mamut 2 FØr installasjon serverinstallasjon EttEr installasjon

Detaljer

Nyheter i Office 2016 NYHETER, FUNKSJONER, FORKLARING

Nyheter i Office 2016 NYHETER, FUNKSJONER, FORKLARING Nyheter i Office 2016 NYHETER, FUNKSJONER, FORKLARING 1 Word 1.1 Gjør ting raskt med Fortell meg det Du vil legge merke til en tekstboks på båndet i Word 2016 med teksten Fortell meg hva du vil gjøre.

Detaljer

PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004

PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004 PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004 VERSJON: PROSJEKTPLAN (1.0) 24. SEPTEMBER, 2004 prosjektplan.doc GRUPPE 12 PROSJEKTPLAN: PROSJEKTLEDELSE: USE CASE: KVALITETSSIKRING: ANDRÉ

Detaljer

1. Intro om SharePoint 2013

1. Intro om SharePoint 2013 Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Intro om SharePoint 2013 Stein Meisingseth 09.08.2013 Lærestoffet er utviklet for faget LO205D Microsoft SharePoint 1. Intro om SharePoint

Detaljer

Kravspesifikasjon. Vedlegg A

Kravspesifikasjon. Vedlegg A Vedlegg A Kravspesifikasjon Dette dokumentet beskriver krav til applikasjonen som skal designes i prosjektet Nettverksbasert applikasjonsovervåking. Det beskrives her både krav til selve applikasjonen

Detaljer

Presentasjon. Kristian Hewlett- Packard 29.05.2012

Presentasjon. Kristian Hewlett- Packard 29.05.2012 2012 Presentasjon Kristian Hewlett- Packard 29.05.2012 1 Innledning Denne innledningen inneholder informasjon om gruppen, samt bakgrunn og mål for oppgaven og en introduksjon til temaet. 1.1 Gruppen Vår

Detaljer

Mamut. Installasjonsveiledning. Oppdatering til versjon 12.1. Detaljert steg-for-steg veiledning i hvordan oppdatere ditt datax-program fra Mamut

Mamut. Installasjonsveiledning. Oppdatering til versjon 12.1. Detaljert steg-for-steg veiledning i hvordan oppdatere ditt datax-program fra Mamut Mamut Installasjonsveiledning Oppdatering til versjon 12.1 Detaljert steg-for-steg veiledning i hvordan oppdatere ditt datax-program fra Mamut 2 sjekkliste OPPDAteRiNG AV Ditt system Sjekkliste før du

Detaljer

Utvikle en prototype for en digital versjon av helsekort for gravide. Programvareleverandør av ehelse-løsninger for helsevesenet

Utvikle en prototype for en digital versjon av helsekort for gravide. Programvareleverandør av ehelse-løsninger for helsevesenet Kravspesifikasjon Hovedprosjekt 2014 Institutt for informasjonsteknologi, Høgskolen i Oslo og Akershus Presentasjon Tittel: Oppgave: Gruppemedlemmer: Digitalt Helsekort for Gravide Utvikle en prototype

Detaljer

KRAVSPESIFIKASJON. Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni.

KRAVSPESIFIKASJON. Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni. KRAVSPESIFIKASJON Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni. Prosjektgruppe: 27 Prosjektmedlem: Ole Almenning Stenhaug Veileder.

Detaljer

Funksjonskravene er delt opp i to deler, krav til spillsekvens og generelle funksjonskrav.

Funksjonskravene er delt opp i to deler, krav til spillsekvens og generelle funksjonskrav. Kravspesifikasjon I dette kapittelet foreligger kravspesifikasjonen som ble utformet tidlig i prosjektprosessen. Dette er den opprinnelige kravspesifikasjonen. Det har igjennom prosjektprosessen vært naturlig

Detaljer

HOVEDPROSJEKT 2010 - HIO IU - DATA FORPROSJEKTRAPPORT GRUPPE 18

HOVEDPROSJEKT 2010 - HIO IU - DATA FORPROSJEKTRAPPORT GRUPPE 18 HOVEDPROSJEKT 2010 - HIO IU - DATA FORPROSJEKTRAPPORT GRUPPE 18 INNHOLDSFORTEGNELSE 1. PRESENTASJON 2. SAMMENDRAG 3. DAGENS SITUASJON 4. MÅL OG RAMMEBETINGELSER 5. LØSNINGER \ ALTERNATIVER 6. ANALYSE AV

Detaljer

Forsendelse i Zirius

Forsendelse i Zirius Forsendelse i Zirius Forsendelse er en måte for å sende data fra Zirius til kunde eller andre systemer på en automatisert måte. Dette kan for eksempel være Ordrebekreftelse på epost eller Fakturajournal

Detaljer

Ble ferdig med prosjektskisse. Sett på forskellige rammeverk for php. Lager milepæl for to uker.

Ble ferdig med prosjektskisse. Sett på forskellige rammeverk for php. Lager milepæl for to uker. Logg 22 oktober 2013 Vi skriver status rapport og starter også med å skrive logg idag. Vi har vært i kontakt med mange firmaer uten alt for mye interesse fra deres side. Vi fortsetter å søke etter oppgave.

Detaljer

Vedlegg Side 83 av 155

Vedlegg Side 83 av 155 4 Side 83 av 155 Innholdsfortegnelse 1 Kravspesifikasjon... 86 2 Kravspesifikasjon 2.0... 92 3 Domenemodell... 98 4 UseCase Diagram Oversikt... 102 6 Detaljert beskrivelse av UseCase Diagram... 106 Webapplikasjon...

Detaljer

Mamut Open Services. Mamut Kunnskapsserie. Kom i gang med Mamut Online Survey

Mamut Open Services. Mamut Kunnskapsserie. Kom i gang med Mamut Online Survey Mamut Open Services Mamut Kunnskapsserie Kom i gang med Mamut Online Survey Kom i gang med Mamut Online Survey Innhold MAMUT ONLINE SURVEY... 1 KOM I GANG MED MAMUT ONLINE SURVEY... 3 MAMUT-BRUKERE: OPPRETT

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 10 Frist: 2014-04-11 Mål for denne øvinga:

Detaljer

Forprosjekt. Accenture Rune Waage, rune.waage@accenture.com, 91605634

Forprosjekt. Accenture Rune Waage, rune.waage@accenture.com, 91605634 Forprosjekt Presentasjon Gruppe 19: Event-planlegger Andreas Berglihn s169991 Harald R. Svendsen s127142 Gruppe Gruppe 19 Andreas Berglihn, s169991 Harald R. Svendsen s127142 Oppgave Eventplanlegger Utvikle

Detaljer

1. Forord... 2 2. Innholdsfortegnelse... 3 3 innledning... 5. 4. Funksjonelle egenskaper og krav... 7. 5. Spesifikke krav av delsystemer...

1. Forord... 2 2. Innholdsfortegnelse... 3 3 innledning... 5. 4. Funksjonelle egenskaper og krav... 7. 5. Spesifikke krav av delsystemer... Side 1 1. Forord Dette dokumentet er en kravspesifikasjon og har blitt utarbeidet av arbeidsgiver og prosjektgruppen. Dokumentet består av ni kapitler. Det vil først bli presentert hvem prosjektgruppen

Detaljer

Kravspesifikasjon. Leserveiledning Kravspesifikasjonen består av følgende deler: Presentasjon Om bedriften

Kravspesifikasjon. Leserveiledning Kravspesifikasjonen består av følgende deler: Presentasjon Om bedriften Kravspesifikasjon Presentasjon Hovedprosjektet gjennomføres ved Høgskolen i Oslo, avdelingen for ingeniørutdanning. Målet med oppgaven er å utvikle en online webshop for bestilling av postkasser. Dette

Detaljer

TESTRAPPORT INTRANETT, CMA ASSET MANAGEMENT AS. Dataingeniørutdanningen, Høgskolen i Oslo GRUPPE 15. Kenneth Ådalen. Vegard Gulbrandsen

TESTRAPPORT INTRANETT, CMA ASSET MANAGEMENT AS. Dataingeniørutdanningen, Høgskolen i Oslo GRUPPE 15. Kenneth Ådalen. Vegard Gulbrandsen TESTRAPPORT INTRANETT, CMA ASSET MANAGEMENT AS GRUPPE 15 Kenneth Ådalen Vegard Gulbrandsen Kien Trung Nguyen Dataingeniørutdanningen, Høgskolen i Oslo Våren 2009 2 S i d e FORORD I dette dokumentet tar

Detaljer

1. Generelt. FM-OA, Kompletterende undervisning. 1.1. Innledning. 1.2. Stikkord. 1.3. Prosessen. Spec 2, datert 12.12.2005

1. Generelt. FM-OA, Kompletterende undervisning. 1.1. Innledning. 1.2. Stikkord. 1.3. Prosessen. Spec 2, datert 12.12.2005 1. Generelt 1.1. Innledning Det skal utvikles en databasert løsning for å lette arbeidet rundt tilskudd til kompletterende undervisning i fagene norsk, samfunnsfag og kristendomskunnskap med religions-

Detaljer

Presentasjon... 3. Sammendrag... 4. Dagens situasjon... 5. Mål og rammebetingelser... 5. Moduler... 6. Løsning og alternativer...

Presentasjon... 3. Sammendrag... 4. Dagens situasjon... 5. Mål og rammebetingelser... 5. Moduler... 6. Løsning og alternativer... Innholdsfortegnelse Presentasjon..................................................... 3 Sammendrag.................................................... 4 Dagens situasjon.................................................

Detaljer

FORPROSJEKT RAPPORT PRESENTASJON

FORPROSJEKT RAPPORT PRESENTASJON FORPROSJEKT RAPPORT PRESENTASJON Tittel: Oppgave: Appenes App Utvikle en Windows 8.1 Applikasjon for Tablet, og en Windows 8 Phone App og en backend. Periode: 06.01.2013-27.05.2013 Gruppemedlemmer: Athavan

Detaljer

// Mamut Business Software Nyheter i Mamut Business Software og Mamut Online

// Mamut Business Software Nyheter i Mamut Business Software og Mamut Online // Mamut Business Software Nyheter i Mamut Business Software og Mamut Online Innhold Nyheter i Mamut Business Software versjon 18.0 2 Netthandel 2 Regnskap 2 Salg 4 Systemforbedringer 5 Nyheter i Mamut

Detaljer

3. Kravspesifikasjon. Experior - rich test editor for FitNesse -

3. Kravspesifikasjon. Experior - rich test editor for FitNesse - 3. Experior - rich test editor for FitNesse - 3.1. Forord Dette dokumentet inneholder krav til funksjonalitet i Experior og hvordan denne skal integreres inn i selve FitNesse. I tillegg spesifiseres krav

Detaljer

1 INNLEDNING... 2. 1.1 Om Altinn... 2. 1.2 Skjemaer som støttes... 2 2 INSTALLASJON OG OPPSTART... 3. 2.1 Nedlasting... 3. 2.2 Registrering...

1 INNLEDNING... 2. 1.1 Om Altinn... 2. 1.2 Skjemaer som støttes... 2 2 INSTALLASJON OG OPPSTART... 3. 2.1 Nedlasting... 3. 2.2 Registrering... INNHOLD Mamut for Altinn INNHOLD 1 INNLEDNING... 2 1.1 Om Altinn... 2 1.2 Skjemaer som støttes... 2 2 INSTALLASJON OG OPPSTART... 3 2.1 Nedlasting... 3 2.2 Registrering... 5 2.3 Opprett en bruker... 7

Detaljer

1. SQL datadefinisjon og manipulering

1. SQL datadefinisjon og manipulering Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL datadefinisjon og manipulering Tore Mallaug 7.10.2008 Lærestoffet er utviklet for faget Databaser 1. SQL datadefinisjon og manipulering

Detaljer

Kandidat nr. 1, 2 og 3

Kandidat nr. 1, 2 og 3 Kandidat nr. 1, 2 og 3 Rapport 1 IT202E Bacheloroppgave i Informatikk Vår 2011 Mobilapplikasjonsutvikling med Scrum 1 Innhold Innledning... 3 Overordnet Prosjektplan... 3 Produktbacklog... 5 Sprint planning

Detaljer

Båtforening på nett. Produktrapport

Båtforening på nett. Produktrapport Båtforening på nett Hovedprosjekt våren 2009, Høgskolen i Oslo Prosjektgruppe 36 Vegard Skipnes, Rade Vuckovic & Frode Sørensen Produktrapport 1 Sammendrag Denne rapporten er en del av Hovedprosjektet

Detaljer

Dokumentstyring og Maler

Dokumentstyring og Maler Arbeide med : Dokumentstyring og Maler i Fenistra Eiendom Dokument kontroll Versjon 1.0 Release dato 28.10.2003 Sist Endret dato 28.10.2003 Innhold 1. Forutsetninger... 3 2. Hensikt... 3 3. MS Word Maler

Detaljer

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester.

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester. 1 Forord Hensikten med kravspesifikasjonen er å gi oppdragsgiver og utviklere en enighet og forståelse av funksjonaliteten til applikasjonen som skal produseres. en definerer i tillegg prosjektets rammer

Detaljer

PowerOffice Server Service

PowerOffice Server Service PowerOffice Server Service 20 14 Po we ro ffice AS - v4.5.1 PowerOffice SQL - PowerOffice Server Service Alle rettigheter reservert. Ingen deler av dette arbeidet kan reproduseres i noen form eller på

Detaljer

Web fundamentals. Web design. Frontend vs. Backend 17.01.2008. Webdesign 17. januar 2008 3. Monica Strand

Web fundamentals. Web design. Frontend vs. Backend 17.01.2008. Webdesign 17. januar 2008 3. Monica Strand Web fundamentals Webdesign 17. januar 2008 Monica Strand Webdesign 17. januar 2008 1 Web design Fagområdet Web design inneholder flere disipliner Grafisk design Informasjonsdesign Brukergrensesnittdesign

Detaljer

Oblig 4 Webutvikling. Oppgave

Oblig 4 Webutvikling. Oppgave Oblig 4 Webutvikling Oppgave Lag din egen Wordpress- site der du tester ut CMS- systemet. Det å lage egne templates fra bunnen kan være noe komplisert, så det holder for dette prosjektet om dere modifiserer

Detaljer

Digitale eller trykte utgaver av håndboken kan i sin helhet distribueres fritt til alle brukere av EPiServer CMS.

Digitale eller trykte utgaver av håndboken kan i sin helhet distribueres fritt til alle brukere av EPiServer CMS. Copyright Denne håndboken er beskyttet av opphavsrettsloven. Endring av innhold eller delvis kopiering av innhold er ikke tillatt uten tillatelse fra opphavsrettsinnehaveren.. Digitale eller trykte utgaver

Detaljer

S y s t e m d o k u m e n t a s j o n

S y s t e m d o k u m e n t a s j o n S y s t e m d o k u m e n t a s j o n Monitorering av produksjonsløyper ved Nasjonalbiblioteket - Project BAKE Utarbeidet av: Einar Wågan Kristian Akerhei Studium: Informasjonssystemer Innlevert: 26.5.2015

Detaljer

Forprosjekt - Gruppe 12. Hovedprosjekt av

Forprosjekt - Gruppe 12. Hovedprosjekt av FORSIDE A V D E L I N G F O R I N G E N I Ø R U T D A N N I N G H Ø G S K O L E N I O S L O O G A K E R S H U S Forprosjekt - Gruppe 12 Hovedprosjekt av S AJ ID, OZAI RE (S 1711 9 7), S VEEN, S IMEN (S171208),

Detaljer

20% 47% 75% Juletilbud til Mamut-kunder. Utnytt hele potensialet til medarbeiderne. Optimaliser lønnsomheten i usikre tider!

20% 47% 75% Juletilbud til Mamut-kunder. Utnytt hele potensialet til medarbeiderne. Optimaliser lønnsomheten i usikre tider! Juletilbud til Mamut-kunder Optimaliser lønnsomheten i usikre tider! Kunnskap en sikker investering Kjøp kurs og spar 47%. Ta kursene i 2009. Les mer side 4 47% Utnytt ny funksjonalitet på oppgradering

Detaljer

Testrapport. Studentevalueringssystem

Testrapport. Studentevalueringssystem Testrapport Studentevalueringssystem 1 Forord 1.2 Forord Dette prosjektet er et hovedprosjekt i data ved Høgskolen i Oslo, avdeling for ingeniørutdanning, og gjennomføres i samarbeid med Ingeniøravdeling

Detaljer

PowerOffice Mobile Server

PowerOffice Mobile Server PowerOffice Mobile Server 20 14 Po we ro ffice AS - v20 12.1.0 PowerOffice SQL - PowerOffice Mobile Server Alle rettigheter reservert. Ingen deler av dette arbeidet kan reproduseres i noen form eller på

Detaljer

Forprosjekt gruppe 13

Forprosjekt gruppe 13 Forprosjekt gruppe 13 Presentasjon Tittel: Oppgave: Periode: Gruppemedlemmer: Veileder: Oppdragsgiver: Kontaktperson: Mobilbillett i HTML5 Utvikle en mobil billettautomat innenfor kategorien dedikert web

Detaljer

P L A N I A 8 S Y S T E M K R A V PLANIA 8 SYSTEM KRAV. Plania 8 Systemkrav.docx 27.04.2015 1 av 8

P L A N I A 8 S Y S T E M K R A V PLANIA 8 SYSTEM KRAV. Plania 8 Systemkrav.docx 27.04.2015 1 av 8 PLANIA 8 SYSTEM KRAV Plania 8 Systemkrav.docx 27.04.2015 1 av 8 INNHOLD 1 INNLEDNING... 1-3 1.1 Generell beskrivelse... 1-3 1.1.1 Plania DESKTOP og Plania WEB... 1-3 2 SYSTEMKRAV... 2-4 2.1 Krav til ulike

Detaljer

En internett basert og fleksibel database som kan tilpasses til ethvert behov, og som vil vokse med bedriften/institusjonen.

En internett basert og fleksibel database som kan tilpasses til ethvert behov, og som vil vokse med bedriften/institusjonen. Utstyr databasen En internett basert og fleksibel database som kan tilpasses til ethvert behov, og som vil vokse med bedriften/institusjonen. Systemet funksjoner: Registrering og behandling av utstyr.

Detaljer

Huldt & Lillevik Ansattportal. Installere systemet

Huldt & Lillevik Ansattportal. Installere systemet Huldt & Lillevik Ansattportal Installere systemet Innholdsfortegnelse Innholdsfortegnelse Installere Ansattportal... 3 Tekniske krav (Windows og web)... 3 Servere og nettverk... 3.NET Rammeverk 3.5 må

Detaljer

Denne rapporten er beregnet for dataansvarlig på Grefsenhjemmet, den som skal installere, vedlikeholde og modifisere systemet.

Denne rapporten er beregnet for dataansvarlig på Grefsenhjemmet, den som skal installere, vedlikeholde og modifisere systemet. Produktrapport Forord Denne rapporten er beregnet for dataansvarlig på Grefsenhjemmet, den som skal installere, vedlikeholde og modifisere systemet. Dataansvarlig eller supporter trenger informasjon om

Detaljer

4.1. Kravspesifikasjon

4.1. Kravspesifikasjon 4.1. Kravspesifikasjon Dette delkapittelet beskriver nærgående alle deler av systemet, hvordan det er tenkt ferdigutviklet med fokus på oppdragsgivers ønsker. 4.1.1. Innledning Informasjon om hvordan kravspesifikasjonens

Detaljer

Prosessrapport. Utvikling av moduler til CMS for bonefish.no. Gruppe 08-23

Prosessrapport. Utvikling av moduler til CMS for bonefish.no. Gruppe 08-23 Utvikling av moduler til CMS for bonefish.no Gruppe 08-23 Prosessrapport for hovedprosjektet utvikling av moduler til CMS for bonefish.no ved Høgskolen i Oslo, avdeling for Ingeniørutdanning våren 2008.

Detaljer

Scan Secure GTS 5.1 + PAS

Scan Secure GTS 5.1 + PAS Scan Secure GTS 5.1 + PAS Installasjonsmanual For versjon 5.1.7 og nyere Denne installasjonsmanualen er konfidensiell Den er kun ment til bruk for system administrator Den skal ikke benyttes av brukere

Detaljer

User Input / Output Handling. Innocent Code kap 3-4 INF-329 Øystein Lervik Larsen oysteinl@ii.uib.no 7/11-05

User Input / Output Handling. Innocent Code kap 3-4 INF-329 Øystein Lervik Larsen oysteinl@ii.uib.no 7/11-05 User Input / Output Handling Innocent Code kap 3-4 INF-329 Øystein Lervik Larsen oysteinl@ii.uib.no 7/11-05 Oversikt Bruker-input (kap. 3) Hva er input? Validering av input Behandle ugyldig input Farer

Detaljer

KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress

KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress Sist oppdatert 05.06.2015 Innholdsfortegnelse 1. Hva er Wordpress?... 3 2. Hvordan logger jeg inn i kontrollpanelet?...

Detaljer

Feilsøking i BO. Olav Syse, konsulent. Jan Terje Hansen, service manager. Be business intelligent

Feilsøking i BO. Olav Syse, konsulent. Jan Terje Hansen, service manager. Be business intelligent Feilsøking i BO Olav Syse, konsulent Jan Terje Hansen, service manager Hovedfokus: Business Intelligence 900 ansatte i Norge, Sverige, Danmark, Finland, Estland, Latvia, Litauen og Polen 135 ansatte i

Detaljer

Presentasjon av bachelorprosjekt 2009/2010 for Morten Hegstad og Kim Lilleberg. Prosjektnummer 2E

Presentasjon av bachelorprosjekt 2009/2010 for Morten Hegstad og Kim Lilleberg. Prosjektnummer 2E Presentasjon av bachelorprosjekt 2009/2010 for Morten Hegstad og Kim Lilleberg Prosjektnummer 2E 1. Innholdsfortegnelse 1. Innholdsfortegnelse 2 2. Norske Hus Boligsystem AS 3 3. Problemstillingen 3 4.

Detaljer

Design og dokumentasjon

Design og dokumentasjon Design og dokumentasjon Information Architecture Peter Morville& Louis Rosenfeld Kapittel 12 29.01.2015 Håkon Tolsby 1 Ny fase i prosjektet Fokusskifte: Fra planlegging til produksjon Fra overordnet arkitektur

Detaljer

Innstallasjon og oppsett av Wordpress

Innstallasjon og oppsett av Wordpress Del 1 - Installasjon og oppsett Innstallasjon og oppsett av Wordpress Wordpress har blitt en veldig populær publiseringsplattform for websider. Uten særlige tekniske ferdigheter kan man sette opp profesjonelle

Detaljer

Høgskolen i Oslo og Akershus

Høgskolen i Oslo og Akershus Høgskolen i Oslo og Akershus Gruppe 2 Forprosjektrapport Presentasjon Oppdragsgiver: Prosjekttittel: Definisjon: Accenture Shera Shera er en «event»-applikasjon til Android der man kan registrere arrangementer

Detaljer

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive, 1. Last ned og installer XAMPP. 2. Sjekk at alt fungerer. 3. MySQL. Vi begynner med databaseserveren, MySQL. Gå til DOS klarmelding eller ledetekst (finnes under tilbehør på startmenyen om du ikke som

Detaljer

ChiCMS Hovedprosjekt ved Høgskolen i Oslo 2011

ChiCMS Hovedprosjekt ved Høgskolen i Oslo 2011 TESTRAPPORT Forord Denne testrapporten har som formål å beskrive all testing som er utført på systemet, både under utviklingen og etter ferdigstilling. Målet for testingen er for å verifisere at vi har

Detaljer

Prosessrapport Prosjekt nr. 2007-11 SSP Installasjon AS. Dato: 25.mai 2007 Antall sider: 11 Intern veileder: Kjetil Grønning. Kontaktperson: Kai Evjen

Prosessrapport Prosjekt nr. 2007-11 SSP Installasjon AS. Dato: 25.mai 2007 Antall sider: 11 Intern veileder: Kjetil Grønning. Kontaktperson: Kai Evjen Prosjekt nr. 2007-11 Prosessrapport Tittel: Informasjonssystem SSPI Prosjektdeltakere: Hans Petter Kristiansen, s130182 Espen Skaarer, s123590 Dato: 25.mai 2007 Antall sider: 11 Intern veileder: Kjetil

Detaljer

Hurtigstartveiledning. ActivEngage. Hurtigstartveiledning

Hurtigstartveiledning. ActivEngage. Hurtigstartveiledning Hva er nytt? 2 Registrering 4 Avstemming 9 Avstemmingsresultater 16 Mer informasjon 17 TP1780-NO nummer 2 2010 Promethean Limited. Med enerett. Denne veiledningen følger med produktet. Den kan kun kopieres

Detaljer

Vedlegg 1: Oversikt over noen mulige leverandører

Vedlegg 1: Oversikt over noen mulige leverandører Vedlegg 1: Oversikt over noen mulige leverandører OwnCloud / Owncloud Enterprise Owncloud er en open-source løsning, der det også finnes en enterprise-løsning. Owncloud støtter stort sett alle mulige bakenforliggende

Detaljer

Memo - Notat. Oppsummering - status etablering av Smak av kysten. Kopi til: Dato: 16.05.2007 Referanse:

Memo - Notat. Oppsummering - status etablering av Smak av kysten. Kopi til: Dato: 16.05.2007 Referanse: Memo - Notat Notat til: Notat fra: Alexandra Krage Angell Erik Svendsen Kopi til: Dato: 16.05.2007 Referanse: Oppsummering - status etablering av Smak av kysten Fase/aktiviteter Tidsbruk i timer Reell

Detaljer

AP221 Use Case SBL Finn aktive, mottatte og arkiverte elementer

AP221 Use Case SBL Finn aktive, mottatte og arkiverte elementer AP221 Use Case SBL arkiverte elementer arkiverte elementer Dette use case beskriver hvordan bruker kan finne aktive, mottatte og arkiverte elementer. Med aktive elementer menes innsendingstjenester som

Detaljer

Prosjektstyring med Projectfronter (En innføring i grunnleggende Projectfronter-funksjonalitet)

Prosjektstyring med Projectfronter (En innføring i grunnleggende Projectfronter-funksjonalitet) Olav Dæhli: 06.10.05 Prosjektstyring med Projectfronter (En innføring i grunnleggende Projectfronter-funksjonalitet) Fronters systemer består av tre sentrale moduler, Classfronter, Teamfronter og Projectfronter

Detaljer