HOVEDPROSJEKT. i data ved Høgskolen i Oslo våren YXD-Kurdistan. 21. mai Medlemsregister for YXD-Kurdistan. Eva Hadler Vihovde

Størrelse: px
Begynne med side:

Download "HOVEDPROSJEKT. i data ved Høgskolen i Oslo våren YXD-Kurdistan. 21. mai Medlemsregister for YXD-Kurdistan. Eva Hadler Vihovde"

Transkript

1 HOVEDPROSJEKT i data ved Høgskolen i Oslo våren 2007 PROSJEKT NR PROSJEKTTITTEL Medlemsregister for YXD-Kurdistan PROSJEKTDELTAKERE Asad Fattahi Ernad Fajkovic OPPDRAGSGIVER YXD-Kurdistan DATO 21. mai 2007 ANTALL SIDER / BILLAG 101 INTERN VEILEDER Eva Hadler Vihovde KONTAKTPERSON Yassin Azari YXD-Kurdistan (Den Demokratiske Unionen for Iransk-Kurdiske Studenter i Norge) ( ه ک ه تی خو ندکارانی د مۆکراتی کوردستانی ي ران نورو ژ)

2 Forord Denne rapporten beskriver vårt arbeid med hovedprosjekt i data ved Høgskolen i Oslo, avdeling for ingeniørutdanning våren Hovedprosjektet er utført i samarbeid med oppdragsgiver YXD-Kurdistan (Den Demokratiske Unionen for Iransk-Kurdiske Studenter i Norge). Produktet er en løsning som medlemmer og webansvarlige i studentforeningen kan styre gjennom en nettleser. I tillegg er produktet tilpasset to forskjellige språk, norsk og kurdisk. Dette har vært en utfordring på grunn av den store forskjellen mellom språkene. Det som er nytt i forhold til andre kurdiske nettsider er at hvem som helst kan sette seg inn i systemet og bruke det uten noe programmeringserfaring. Vi har brakt en ny og moderne teknologi til det kurdiske språket og håper at mange andre kan ha nytte av vårt produkt. Dette dokumentet består av fem dokumenter som er satt sammen til ett. Det består av del I som er prosessdokumentasjon, del II som er kravspesifikasjonen, del III er produktdokumentasjon, del IV er testrapport og del V er brukerveiledning. Prosess- og produktdokumentasjon har sine egne forord og innholdsfortegnelse. Dokumentet er i første omgang laget for sensor og oppdragsgiver, men vi håper at andre også kan ha nytte av å lese det. Vi vil til slutt benytte anledningen til å takke følgende personer: Vår veileder Eva Hadler Vihovde for gode innspill og veiledning, Nils Einar Eide for hjelp og veiledning i ASP.NET, og alle fra studentforeningen som har vært med på å teste systemet og kommet med gode ideer til hvordan ting kunne gjøres bedre. Oslo, 21. mai 2007 Asad Fattahi Ernad Fajkovic I

3 Overordnet innholdsfortegnelse FORORD...I OVERORDNET INNHOLDSFORTEGNELSE... II Del I: Prosessdokumentasjon... 1 Del II: Kravspesifikasjon Del III: Produktdokumentasjon Del IV: Testrapport Del V: Brukerveiledning II

4 Del I Prosessdokumentasjon 1

5 Forord Dette dokumentet er en del av en hovedprosjektoppgave ved Høgskolen i Oslo, avdeling for ingeniørutdanning i perioden oktober 2006 mai Dokumentet er først og fremst beregnet for sensor, veiledere og andre som måtte være interessert i hvordan prosjektarbeidet har forløpt og hvordan vi har kommet frem til sluttproduktet. Dokumentet beskriver hver fase i arbeidsprosessen; planlegging, metodologi og utviklingsprosess. Oppdraggiveren for prosjektet har vært Den Demokratiske Unionen for Iransk- Kurdiske Studenter i Norge (YXD-Kurdistan) som er en kurdisk studentforening som ble opprettet i juni 2006 i Norge. Vi kom i kontakt med oppdragsgiveren gjennom en av gruppas medlemmer, som også er medlem i studentforeningen. Produktet i dette prosjektet er en webapplikasjon som skal gi brukerne mulighet til å lese studentforeningens nyheter, gjestebok, skrive innlegg i gjesteboka, lese medlemmers blogger, lage sin egen blogg, chatte med påloggede bruekere og laste ned kurdiske aviser. Se produktdokumentasjonen for full oversikt av systemet og dets funksjonalitet. Dette dokumentet, og alle andre dokumenter som ble utarbeidet i løpet av prosjektperioden, vil være tilgjengelig for nedlasting og utskrift fra vår hovedprosjekthjemmeside: For de som ønsker å prøve applikasjonen selv, kan gjøre dette ved å gå inn på hjemmesiden (adressen ovenfor) og klikke på knappen "demo". Dere vil da bli overført til testserveren for applikasjonen. Følgende brukernavn og passord kan benyttes: Medlem: Administrator: brukernavn: medlem passord: medlem@ brukernavn: admin passord: admin@ Vennligst ta kontakt med oss dersom det skulle oppstå problemer under testkjøring av programmet. Kontaktinformasjon er tilgjenglig på hjemmesiden. Prosessdokumentasjon 2

6 Innholdsfortegnelse Forord Sammendrag Innledning Om gruppemedlemmene Om oppdragsgiveren Dagens situasjon Mål Rammebetingelser Språk Utviklingsmiljø Planlegging og metode Valg av oppdragsgiver Planleggingsfasen Prosessmodell Intern organisering Prosjektansvarskart Arbeidsverktøy Verktøy Teknologi Dagbok Veileder oppgaver/samarbeid Oppdragsgiver oppgaver/samarbeid Gruppesamarbeid Om utviklingsprosessen Utvikling av produktet Forprosjektfasen Utvikling av forprosjektdokumenter Kravspesifikasjon ER diagram Oppsett av arbeidsmaskin Design- og implementeringsfasen Design av databasemodellen Design av brukergrensesnittet Avslutningsfasen Problemer og utfordringer Forbedringer Kravspesifikasjon og dens rolle Utvikling av kravspesifikasjon Kravspesifikasjonenes rolle i utvikling Endringer i kravspesifikasjon Kravspesifikasjonen og dagens produkt Oppsummering og konklusjoner Oppsummering...19 Prosessdokumentasjon 3

7 6.2 Hva har vi lært? Vurdering av eget arbeid Hva kunne vi ha gjort annerledes? Produktets fremtid Kilder...21 Prosessdokumentasjon 4

8 1 Sammendrag Dette prosjektet er utviklet av to studenter som et hovedprosjekt ved Høgskolen i Oslo, avdeling for ingeniørutdanning i perioden oktober 2006 mai Oppgaven har gått ut på å utvikle en webapplikasjon for oppdragsgiverens nettside ( Hensikten med oppgaven var å gi studentforeningen en nettside som er enklere å administrere og mer interaktiv for deres medlemmer. Vårt produkt er en applikasjon som gir dynamisk distribusjon av informasjon. Med dette mener vi at brukerne av systemet skal kunne legge til, endre eller fjerne innholdet på sidene fra et brukergrensesnitt. Systemet kan deles opp i tre lag; presentasjonslag, applikasjonslag og databaselag. Presentasjonslaget består av alle visuelle komponenter som man ser på siden (bilder, tekst, knapper, tekstfelt, etc.). Koden for presentasjonslaget har vi delt i tre forskjellige filtyper; *.css (definerer stilen for designet), *.master (felles ramme for alle sidene) og *.aspx (selve layouten og designet). Mesteparten av koden som ligger i disse filene kan man se i nettleseren ved å åpne kildekoden til siden. Programkoden (applikasjonslaget) har vi i separate filer (*.aspx.cs), såkalte code-behind filer. Hver code-behind fil er knyttet til en aspx-side med samme navn og kan kun benyttes av denne siden. Mens de globale metodene, som er tilgjengelig for hele applikasjonen, er lagt i en egen mappe (App_Code). Verken code-behind filene eller de globale metodene er tilgjengelige for brukeren. Den siste delen av systemet er databaselaget. Her lagres alt data som brukerne publiserer. All tekst lagres i databasen, mens bilder og filer lastes opp til egne mapper på serveren og den relative stien og navnet på filen lagres i databasen. Vi har også delt applikasjonen inn i tre forskjellige roller; administrator, medlem og anonym. Den sistnevnte er ikke implementert som en egen rolle i systemet siden det er enkelt å finne ut om brukeren er anonym eller ikke. Men vi vil fortsatt nevne den for at leseren skal få en bedre forståelse av applikasjonen. På figuren under kan vi se hvor mye av systemet hver av rollene har tilgang til. Vi ser også at brukere i alle tre roller kan lese fra databasen og skrive til den. Figur 1.1 Rollefordeling i systemet Prosessdokumentasjon 5

9 2 Innledning Dette kapittelet gir en beskrivelse av prosjektgruppa, oppdragsgiveren og deres ønsker for produktet, samt rammebetingelser og mål for oppgaven. 2.1 Om gruppemedlemmene Gruppen består av to studenter ved Høgskolen i Oslo, avdeling for ingeniørutdanning, som har samarbeidet tidligere i flere andre prosjekter ved skolen. Vi valgte å jobbe sammen i dette prosjektet på grunn av den gode erfaringen vi hadde fra de tidligere prosjektene og fordi vi begge hadde store ambisjoner med hovedprosjektet. Frem til det siste semesteret har vi jobbet mest med Java. Vi ønsket derfor å jobbe med noe nytt i dette prosjektet, noe vi ikke hadde jobbet med tidligere. Vi diskuterte to forskjellige muligheter med oppdragsgiveren. Den ene var å bruke JavaServer Faces (JSF) og den andre var å bruke ASP.NET. Begge teknologiene var nye for oss. Vi lærte litt om JSF i valgfaget "Webapplikasjoner" i høstsemesteret og vi tok valgfaget "Webprogrammering i.net" i vårsemesteret. Vi kunne med andre ord ingenting om ASP.NET før det siste semesteret. Så vi måtte lære så mye som mulig om denne teknologien underveis. Vi tok begge to ansvar for dokumentasjon og programmering. Hvis en av oss hadde oppdatert noe, så sendte han det til den andre. På den måten hadde vi hele tiden en oppdatert versjon av både applikasjonen og dokumentasjonen. Vi jobbet selvsagt med forskjellige oppgaver når vi jobbet hver for oss, så vi ikke skulle gjøre det samme begge to. 2.2 Om oppdragsgiveren YXD-Kurdistan er en kurdisk studentforening som ble opprettet i juni 2006 i Norge. Organisasjonen er en del av en større studentforening som finnes i andre land med hovedkontor i Nord-Irak. YXD-kurdistan i Norge har mer enn 60 medlemmer. Unionen er et mellomledd mellom kurdiske studenter og faginstitutter på universiteter og høyskoler. Organisasjonen jobber for integrering av kurdiske studenter i Norge, hjelper elever ved å delta i prosjekter i samarbeid med forskjellige videregående skoler i Oslo, holder seminarer for forfattere og studenter og deres familie og venner, og hjelper med faglige kunnskaper for kurdiske og ikke kurdiske organisasjoner i Norge. 2.3 Dagens situasjon Studentforeningen har en eksisterende nettside ( som er bygget opp av PHP og MySQL. Den virker kun som en informasjonskilde for medlemmer og andre besøkende. Når vi kontaktet organisasjonen var de veldig åpne for nye idéer. Vi diskuterte forskjellige muligheter for nettsiden som ville gjøre den mer appellerende for deres medlemmer. Til slutt ble vi Prosessdokumentasjon 6

10 enige om en løsning - denne er beskrevet mer detaljert i resten av dette dokumentet. 2.4 Mål Hovedmålet med oppgaven er å lage et medlemsregistersystem for YXD. Systemet skal gjøres sikkert ved å kombinere ferdige løsninger i ASP.NET 2.0 (som blant annet krypterer innloggingsdata) og innloggingskontroll og rollefordeling. Resultatmålet vårt er å lage en webapplikasjon som skal være brukervennlig og enkel å oppdatere og utvikle i fremtiden. Både medlemmene og administratoren skal kunne bruke systemet uten å ha behov for spesielle datakunnskaper. Oppgavens læringsmål er å bli kjent med nye teknologier og å kunne bruke disse til å lage en mer avansert, men brukervennlig, nettside. 2.5 Rammebetingelser Punktene nedenfor er korte sammendrag fra rammer som ble satt i samarbeid med oppdragsgiveren, for en fullstendig oversikt bør leseren lese gjennom kravspesifikasjonen Språk Vi har tilpasset hele applikasjonen til det norske og det kurdiske språket. For å få til dette har vi måttet lage en todelt applikasjon. Slik at hver funksjon ble lages to ganger, en på norsk og en på kurdisk. Vi synes at dette var en fornuftig fremgangsmåte, spesielt på grunn av den store forskjellen på de to språkene. Dersom vi hadde gjort det motsatt, at vi tilpasset språket til applikasjonen, så hadde vi endt opp med et produkt som likner på mange av dagens kurdiske nettsider, hvor bare teksten er oversatt til kurdisk mens resten av siden egentlig er ment for et annet språk. Vi har sett mange eksempler på dette, og det er verken pent eller brukervennlig Utviklingsmiljø Vi har sett på to muligheter til å løse denne oppgaven på. Den ene var å lage applikasjonen i ASP.NET og den andre var å bruke JavaServer Faces (JSF). Vi har diskutert dette med oppdragsgiveren, men har ikke fått noen spesifikke krav når det gjelder plattform, verktøy eller språk. De hadde derimot noen ønsker: Applikasjonen skal være forholdsvis enkel å teste og sette ut i drift. Det skal ikke være vanskelig å endre applikasjonen senere. Programmeringsspråket skal være forholdsvis kjent og utbredt, slik at det ikke vil være noe problem å finne utviklere som kan vedlikeholde og videreutvikle systemet. Det viktigste argumentet for mange, når det gjelder valg av utviklingsmiljø, er vanligvis hvilke som er gratis og hvilke som koster penger. Svaret vi fikk fra oppdragsgiveren var at det ikke spilte så stor rolle for dem hvilke av de to vi brukte, siden de uansett betaler for et webhotell. Uansett hvilken av dem vi valgte å bruke, måtte de kjøres på en helt annen server enn den studentforeningen bruker i dag. Valget vårt ble til slutt ASP.NET med C# som løsning på denne oppgaven. Utviklingsmiljøet vi vil benytte oss av er Microsoft Prosessdokumentasjon 7

11 Visual Studio Generelt sett er JSF- og.net-løsninger ganske like i kvaliteten av deres løsninger. En av grunnene til at vi valgte.net er at det er mer populært og har dermed flere utviklere tilgjengelig enn hva tilfellet er for JSF. I tillegg har ASP.NET flere verktøy som passer utmerket for denne typen av applikasjoner. Prosessdokumentasjon 8

12 3 Planlegging og metode Dette kapittelet tar for seg hvordan vi planla arbeidet fra idéfase til ferdig produkt og hvilke arbeidsmetoder som ble brukt. 3.1 Valg av oppdragsgiver Gruppen ble introdusert til studentforeningen gjennom ett av gruppemedlemmene, Asad Fattahi, som er medlem i foreningen. Vi kontaktet YXD-Kurdistan tidlig på høsten og tilbød dem å utvikle nettsiden deres med flere spennende funksjoner som medlemmene deres kunne benytte seg av. 3.2 Planleggingsfasen Planleggingen av prosjektet begynte i oktober. Vi visste fra samtaler med oppdragsgiver omtrent hva de ville ha. Så for å få en oversikt over oppgaven, begynte vi med å lage en røff skisse av applikasjonen. Vi forsette så med å lage en forprosjektrapport og en fremdriftsplan. Deretter begynte vi å sette sammen en kravspesifikasjon sammen med oppdragsgiveren. Siden studentforeningen ikke hadde noen kravspesifikasjon vi kunne jobbe med, så måtte vi selv lage en kravspesifikasjon med de krav vi selv følte var naturlig for denne oppgaven. Deretter forklarte vi det vi hadde skrevet i kravspesifikasjonen og diskutere med oppdragsgiver hva som skal være med og hva som ikke skal være med. Vi har måttet gå tilbake til kravspesifikasjonen et par ganger for å gjøre noen endringer som oppdragsgiveren kom med i ettertid. Men disse har vært enkle å implementere siden det bare var noen småting som skulle forandres. Vi bestemte oss for å delegere oppgavene mellom oss etter hvor vi hadde størst kompetanse. Se ansvarskart under avsnitt Når vi begynte å programmere benyttet vi tradisjonell bottom-up programmering der vi programmerte en funksjon, testet og gikk videre. Dette var en naturlig måte å gjøre det på med tanke på hvordan sidene i ASP.NET er bygget opp. Mesteparten av de funksjonene som vi skulle utvikle passer best dersom de ligger på hver sin side. Siden hver side har en egen codebehind fil som inneholder programkoden for den siden, så er det veldig enkelt å separere funksjonene fra hverandre. Det er derfor veldig enkelt å legge til nye funksjoner eller fjerne eksisterende funksjoner Prosessmodell Som styringsmodell for vårt prosjekt har vi valgt Rational Unified Process (RUP). Dette er en styringsmodell som er blitt standard for de fleste tunge aktørene i programvareindustrien. RUP beskriver: Hvem som gjør hva, hvordan og når Retningslinjer Prosessdokumentasjon 9

13 Maler/Mønstre Verktøyhjelp Fremdrift RUP er delt inn i fire faser: Idéfase Utdypningsfase Konstruksjonsfase Overgangsfase I løpet av denne fasen ble visjon, forretningscase og omfang av prosjektet klarlagt. I løpet av denne fasen ble mesteparten av arkitekturen ferdig. På slutten av konstruksjonsfasen skal betaversjonen av vår tjeneste være klar til utprøving hos oppdragsgiver. På slutten av denne fasen skal vi ha en endelig versjon av tjenesten. RUP er både iterativ og inkrementell. Hvert delprodukt som vi lager underveis i prosjektet vil ha flere utgaver. RUP er også en Use Case drevet prosess. En Use Case-modell dokumenterer kravene. Den viser hva systemet gjør for hvem, og viser nytteverdi for aktøren. Use case diagrammet er under kapittel 7.1 i kravspesifikasjonen Intern organisering Vårt prosjekt har blitt styrt som en matriseorganisasjon, dvs. at styringen har gått på tvers av medlemmene i gruppen. Asad ble valgt som prosjektansvarlig, han er også den som har hatt mest kontakt med oppdragsgiver. Ernad har vært prosjektsekretær, han har hatt ansvar for dokumentasjonsstyring. Se også prosjektansvarskart i neste punkt Prosjektansvarskart Det var en god hjelp å ha ansvarsroller, men begge tok ansvar for det som måtte gjøres av arbeid på tvers av ansvarsområdene. ANSVARSOMRÅDE Prosjektleder Hovedansvarlig for programmering Hovedansvarlig for back-up Ansvarlig for modellering Webansvarlig Hovedansvarlig for brukergrensesnitt Hovedansvarlig for dokumentasjon ANSVARLIG Asad Asad Asad Begge to Ernad Ernad Ernad Prosessdokumentasjon 10

14 3.3 Arbeidsverktøy Siden oppdragsgiveren ikke hadde noen krav til arbeidsverktøy, så stod vi ganske fritt for å velge de verktøyene som vi skulle benytte oss av i utviklingsperioden Verktøy Her har vi beskrevet verktøy som vi har benyttet i prosjektet. Vi har nevnt hvilke av disse verktøyene som er gratis og hvilke som ikke er det, for å vise at selv de som ikke er studenter kan utvikle den samme applikasjonen uten ekstra kostnader. Dette er også viktig for oppdragsgiveren å vite dersom de senere skulle ansette noen til å vedlikeholde og/eller videreutvikle systemet. Microsoft Visual Studio 2005 Dette var hovedverktøyet for utviklingen av applikasjonen. Vi brukte Visual Studio til å skrive ASP, HTML, C#, SQL og til å lage CSS stiler for sidene. Visual Studio var gratis for oss fordi vi som studenter kan laste ned gratisversjonen. Men det finnes flere gratisalternativer for Visual Studio, som for eksempel Microsoft Visual Web Developer 2005 Express Edition. Internet Information Services 5.1 Internet Information Services (IIS) er et webserverprogram for Windows plattformen. IIS ble brukt som en testserver på arbeidsmaskinen som vi har satt opp på skolen. Vi benyttet den for å se hvordan applikasjonen ville oppføre seg på en server. IIS er gratis, men kan ikke installeres på XP Home. IBM Rational Rose Data Modeler Professional Edition v Rational Rose ble brukt til Use Case modellering. Dette programmet er ikke gratis, men kan brukes i en prøveperiode på 30 dager. Det finnes også noen gratisprogrammer for modellering. DB Designer 4 Vi brukte DB Designer til å designe databasemodellen (ER diagrammet). Dette programmet er gratis. Adobe Photoshop CS Vi brukte Photoshop til redigering av alle grafiske komponenter i prosjektet. Dette programmet er ikke gratis, men kan benyttes i en prøveperiode på 30 dager. Det finnes også gode gratisverktøy som kan brukes til bilderedigering, men vi er mer vant med dette. TextPad TextPad er et verktøy for mer avansert tekstredigering enn det som er mulig med Notepad (standard editor i Windows). Vi brukte TextPad til rask redigering av html, css, ASP og C# kode. Dette er nyttig når man trenger å endre noen få linjer med kode og har ikke tid til (eller ikke vil bruke tid på) å starte Visual Studio. TextPad kan man laste ned og bruke gratis. Microsoft Office Word Microsoft Office Word ble brukt til å lage dokumentene og rapportene gjennom prosjektperioden. Prosessdokumentasjon 11

15 Microsoft Office Excel Microsoft Office Excel ble brukt til å lage fremdriftsplan ettersom Excel-arkene allerede er delt opp i rader og kolonner som gjør det enklere å lage diverse planer. I stedet for Microsoft Office kan man også bruke Open Office til å lage dokumenter og regneark. Open Office har mange av de samme funksjonene som MS Office, men den er gratis. Webmail og MSN Messenger/Yahoo! Messenger Grunnen til at vi benyttet både MSN og Yahoo! er at vi har forskjellige e-post kontoer. MSN Messenger og Yahoo! Messenger er to programmer som har gjort samarbeidet betraktelig enklere, spesielt i slutten av prosjektperioden. Ved hjelp av disse programmene kunne vi snakke/chatte med hverandre over Internet når vi satt hjemme og jobbet. Men fordi de to programmene ikke har støtte for filoverføring seg imellom, så måtte vi bruke skolens webmail til å sende filer mellom hverandre. Både MSN og Yahoo! Messenger er gratis Teknologi Her har vi beskrevet følgende teknologier som vi har benyttet i prosjektet. C# C# (uttales C sharp) er et programmeringsspråk for objektorientert programmering. Språket er basert på programmeringsspråkene C++ og Java. ASP Active Server Pages (ASP) er en teknologi for å lage websider som inneholder server-side scripts. HTML En ASP side består av både ASP kode og HTML (Hypertext Markup Language) kode. CSS CSS (Cascading Style Sheets) er stilark for HTML. Ved hjelp av CSS får man en mer oversiktlig layout på websidene. Stilarkene er også mye enklere å gjøre endringer på. SQL SQL (Structured Query Language) er et språk som benyttes til å formulere og kjøre operasjoner mot databaser. Vi trengte ingen innføring i dette ettersom vi var kjent med det fra relasjonsdatabase kurset fra pensumet vårt. 3.4 Dagbok Ettersom vi var kun 2 på gruppa så hadde vi konstant kontakt med hverandre og holdt hverandre oppdatert. Vi valgte å føre dagboka i slutten av uka, på fredager. Den inneholder hvilke oppgaver vi skulle gjøre den uka, hva som ble gjort og viktige merknader. Dagboka ble publisert på nettsiden til hovedprosjektet og er arrangert etter ukenummer. 3.5 Veileder oppgaver/samarbeid Prosessdokumentasjon 12

16 I forbindelse med prosjektarbeidet har vi hatt faste møter, hvor vi kunne få oppfølging fra veilederen. Vårt samarbeid med veileder har gått ut på å få godkjent ulike ideer, samt få svar på spørsmål relatert til prosjektoppgavens gjennomføring. Utviklingen av systemet, og dokumentasjonen har gått veldig bra, men det var likevel fint å kunne få veileder til å se over ting og si ifra om noe burde vært gjort annerledes. 3.6 Oppdragsgiver oppgaver/samarbeid Gjennom hele prosjektperioden har vi vært i kontakt med oppdragsgiveren og det har vært en god dialog mellom gruppen og oppdragsgiveren. Selv om utviklingsmiljøet vårt var på skolen, så var oppdragsgiver alltid i kontakt med oss via e-post. Og siden et av gruppemedlemmene var medlem i studentforeningen, så fikk gruppen kontakt med oppdragsgiver personlig om det var noe som måtte drøftes. 3.7 Gruppesamarbeid Med kun to medlemmer på gruppen har samarbeidet vært veldig bra. Det har vært god forståelse for hverandres meninger, og begge har hatt mulighet til å komme med sine innspill. Vi fordelte noen av arbeidsoppgavene etter hvor vi hadde størst kompetanse, men mesteparten av oppgavene ble gjort av begge to. Ved tid til annen gikk vi gjennom ting og foreslo hva som var bra og dårlig. Vi merket også den negative siden ved å være to på gruppen. Arbeidsmengden har vært mye større enn det vi var vant med fra tidligere prosjekter. Spesielt ved slutten av prosjektperioden. Prosessdokumentasjon 13

17 4 Om utviklingsprosessen Dette kapittelet beskriver enkelte av utfordringene vi møtte og hvordan de ble løst. 4.1 Utvikling av produktet Hovedsakelig begynte utviklingen av nettstedet etter at mesteparten av planleggingen var satt. Selv om vi hadde begynt å utvikle noen av funksjonene allerede før planleggingsfasen var ferdig, så regnet vi ikke disse som en del av nettstedet. Det var mer for å prøve ut den nye teknologien. Vi var ganske ivrige med å sette i gang med kodingen fordi vi ikke hadde gjort noen liknende oppgaver tidligere. Etter at spesifikasjonene og modellene av systemet var klare, følte vi at det grunnleggende for å bygge opp prosjektet var på plass. Men vi forventet at det ville dukke opp endringer etter hvert. Det første vi gjorde var å bygge opp databasestrukturen, da all data som blir benyttet av systemet ville bli lagret her. Deretter startet vi utviklingen av nettstedet. Det ble lagt vekt på å få gjennomført alle punktene som oppdragsgiver hadde definert i kravspesifikasjonen. 4.2 Forprosjektfasen I forprosjektfasen brukte vi mest tid på å få på plass detaljene og strukturen i systemet. Det var viktig for oss å være mest mulig forberedt før vi gikk løs på kodingen av systemet. Det er også viktig å være klar over at vi ikke kunne være forberedt på alt fordi vi visste veldig lite om.net teknologien på denne tiden Utvikling av forprosjektdokumenter Selve innhentingen av informasjon for prosjektet ble gjort fortløpende, mens den grunnleggende informasjonen var ferdigsatt etter møtet med oppdragsgiveren. På dette grunnlaget fikk vi en oversikt over hva slags forventinger oppdragsgiveren hadde til prosjektet og dens fremtid. Basert på informasjonen vi samlet inn lagde vi en forprosjektrapport ettersom de viktigste elementene var ferdigsatt. Vi brukte tid til å lage forprosjektrapporten ettersom både arbeids- og fremdriftsplanene ville bygges på den Kravspesifikasjon Vi laget kravspesifikasjonen uti fra den informasjonen vi samlet inn under de første samtaler med oppdragsgiver. Den første utgaven skrev vi på egenhånd, og presenterte senere på et møte med oppdragsgiver. Deretter gikk vi grundig gjennom punktene i kravspesifikasjonen og endret det som måtte endres og fikk svar på enkelte ting vi ikke var sikre på. Se kapittel 5 for mer informasjon om kravspesifikasjonen, eller Del II i dette dokumentet for fullstendig kravspesifikasjon. Prosessdokumentasjon 14

18 4.2.3 ER diagram Når kravspesifikasjonen var revidert begynte vi arbeidet med å sette opp databasen for hele systemet. Vi lagde et ER-diagram for tabellene og databaserelasjonene i systemet Oppsett av arbeidsmaskin (arbeidsmiljø) Vi hadde et fast arbeidssted på skolen, så vi kunne jobbet både hjemme og på skolen. Vi sørget for at programmene var installert både på våre private maskiner og på skolemaskinen. Men etter hvert som applikasjonen ble tyngre, fikk vi mer og mer problemer med maskinen på skolen. Den var helt enkelt for gammel og treg. Det tok en evighet for Visual Studio å starte og kjøre applikasjonen. Vi har derfor brukt våre egne maskiner, både hjemme og på skolen. Det var ingen forskjell på programvaren, vi brukte akkurat de samme programmene som vi hadde på skolemaskinen. 4.3 Design- og implementeringsfasen Dette kapittelet tar for seg designet av databasen og brukergrensesnittet Design av databasemodellen I løpet av den perioden da vi jobbet med kravspesifikasjonen begynte vi å få en "følelse" av hvordan systemet skulle fungere. Så vi syntes at det var best å vente med å designe databasemodellen til vi ble ferdige med kravspesifikasjonen. For da ville vi ha et mer helhetlig bilde av systemet og dets funksjoner. På den måten kunne vi forhindre en del endringer av databasen senere i utviklingsperioden. Vi begynte først med å sette opp et ER diagram med de viktigste tabellene slik at vi kunne få oversikt over det grunnleggende. Deretter utvidet vi dette diagrammet til en mer utfyllende modell av databasen, med kolonnenavn, indekser, nøkler, relasjoner, etc. Vi har også tatt med tabellene som blir generert av Visual Studio, siden disse er veldig viktige i applikasjonen. Selve ER diagrammet kan man finne under kapittel 7.2 i kravspesifikasjonen Design av brukergrensesnittet Som vi har nevnt tidligere, så begynte vi veldig tidlig med kodingen av de enkelte funksjonene i applikasjonen. Det var litt rotete i begynnelsen, siden vi ikke hadde fått på plass et brukergrensesnitt. Dette var en slags eksperimenteringsfase for oss, hvor vi tenkte mest på funksjonaliteten og logikken bak de enkelte funksjonene. Grunnen til at det ble gjort på denne måten var for å teste de to teknologiene, JSF og.net, mot hverandre. Når vi først hadde bestemt oss for hvilket utviklingsspråk vi skulle benytte oss av, kunne vi sette i gang med den "offisielle" applikasjonen. Brukergrensesnittet kom på plass noen uker uti utviklingsperioden. Vi prøvde ut flere forskjellige designmaler før vi kom frem til en design som vi begge likte og som vi syntes passet for denne applikasjonen. Når vi viste frem produktet med det nye designet til oppdragsgiveren så var de kjempefornøyde og vi fikk mye ros for det arbeidet vi hadde gjort så langt. Dermed anså vi brukergrensesnittet som ferdig. Figur 4.1 på neste side er en skisse av grensesnittet, den er ganske selvforklarende. Prosessdokumentasjon 15

19 Figur 4.1 GUI skisse 4.4 Avslutningsfasen Da vi gikk over til avslutningsfasen, hvor vi skulle teste og finjustere applikasjonen, var det en funksjon som vi ikke var ferdige med, nemlig forumet. Det var nok tid igjen til å gjøre ferdig denne, men helt siden vi viste frem applikasjonen til oppdraggiveren har vi fått flere krav om endringer. Dette gjelder mest småting (linker, ekstra paneler, opplasting av aviser, mm.) som er enkle å implementere, men som tar tid. Så vi bestemte oss for å forklare situasjonen til oppdragsgiveren og høre hva de mente. Vi fikk som svar at de heller ville ha de endringene som de kom med i ettertid enn forumet. Dette var selvfølgelig en god nyhet for oss, for nå kunne vi bruke mer tid på testing av systemet. Noe vi håper vil bidra til et mer solid og stabilt produkt. 4.5 Problemer og utfordringer Vi har møtt mange utfordringer på veien, spesielt på begynnelsen på grunn av manglende kunnskaper om de nye teknologiene. Men dette har heldigvis også hjulpet oss til å forstå og lære mye mer om de nye verktøyene og språkene. Det var også bra at vi begge hadde valgfaget i.net samtidig som vi holdt på med dette prosjektet. Vi lærte utrolig mye i løpet av de første månedene takket være det faget, og vi hadde samtidig en lærer vi kunne snakke med dersom vi hadde problemer. Oppdragsgiveren var også veldig hjelpsom. De hjalp oss Prosessdokumentasjon 16

20 ved å diskutere om forskjellige alternativer og løsninger på de problemene vi fikk underveis. De største problemene vi hadde var med noen av de nye verktøyene vi brukte. For eksempel Visual Studio og IIS, som vi ikke hadde noe kjennskap til før dette prosjektet. Vi brukte mye tid på å konfigurere dem og finne frem til de innstillingene som vi trengte. Det verste er når vi får en feilmelding som vi aldri har sett før. Da tar det litt tid før man har funnet ut hva meldingen betyr og hvordan man fikser den. 4.6 Forbedringer Vi mener at vi har oppfylt de krav som oppdragsgiver hadde satt, men det er alltid muligheter for forbedringer. Systemet er utviklet etter kravspesifikasjonen og fungerer utmerket. Vi har sagt oss villige til å fortsette å utvikle applikasjonen en stund til, noe oppdragsgiveren ikke hadde noen innvendinger til. Prosessdokumentasjon 17

21 5 Kravspesifikasjon og dens rolle Dette kapittelet forteller litt kravspesifikasjonen og dens betydning for prosjektarbeidet. 5.1 Utvikling av kravspesifikasjon Som vi har påpekt tidligere i denne rapporten har ikke oppdragsgiveren hatt noen ferdig spesifikasjon av kravene for produktet. Vi har derfor måttet samle inn så mye informasjon som mulig om det produktet de var ute etter, slik at vi kunne sette opp et førsteutkast av kravspesifikasjonen. Vi vet fra tidligere prosjekter at kravspesifikasjonen er særdeles viktig for utviklingen av produktet, ikke bare i begynnelsen men gjennom hele utviklingsprosessen. Det var derfor viktig for oss å lage denne så detaljert som mulig. Når førsteutkastet av spesifikasjonen var ferdig, så vi nøye gjennom den sammen med oppdragsgiver. Det har blitt en del endringer siden førsteutkastet, og kravspesifikasjonen har gått mye frem og tilbake mellom oss og oppdragsgiver. Grunnen til dette var at oppdragsgiver ikke hadde helt klare krav til det endelige produktet. Så når vi skulle sette de tekniske detaljene for produktet, måtte vi sjekke med oppdragsgiver om disse var godkjent eller om det skulle gjøres på en annen måte. 5.2 Kravspesifikasjonens rolle i utvikling Kravspesifikasjonen har fungert som en veldig god kontrakt mellom oss og oppdragsgiveren. Den ble brukt i særdeles stor grad i design- og utviklingsfasen, men også senere i prosjektet. Den har vært en sentral kilde under utviklingen og vi brukte kravspesifikasjonen som en spilleregel til å oppnå de forskjellige målene. 5.3 Endringer i kravspesifikasjon De fleste endringene som har forekommet var i begynnelsen, under utviklingen av kravspesifikasjonen. Dette var stort sett mindre justeringer av de enkelte funksjonene i applikasjonen. Den eneste store endringen som har forekommet, var å fjerne diskusjonsforumet fra applikasjonen og i stedet lage en side for opplasting av aviser (PDF- og Word-dokumenter), og en side for publisering av linker. 5.4 Kravspesifikasjonen og dagens produkt Som vi nevnte tidligere, så har kravene i kravspesifikasjonen blitt endret en del siden begynnelsen av prosjektet. Disse endringene har alle kommet fra oppdragsgiveren underveis i utviklingsperioden. Og for å kunne følge fremdriftsplanen har vi måttet holde tempoet oppe, vi har derfor ikke hatt mye tid til å gå tilbake hele tiden for å dokumentere alle disse endringene i kravspesifikasjonen. Prosessdokumentasjon 18

22 6 Oppsummering og konklusjoner Her kommer en oppsummering av prosjektarbeidet, det vi har lært og den erfaringen vi har tilegnet oss i løpet av prosjektperioden. 6.1 Oppsummering Hovedprosjektet har uten tvil vært vellykket på flere områder. Vi er meget fornøyde med valg av oppdragsgiver og engasjementet fra kontaktpersonen i studentforeningen. Vi er også fornøyde med det produktet som vi har utviklet og den lærdommen vi har tilegnet oss i de forskjellige teknologiene, som vi vet brukes i høy grad i arbeidslivet. Det har vært både oppturer og nedturer. Vi fikk en litt vanskelig start siden vi valgte å jobbe med en ny teknologi, men vi har heldigvis fått god bruk for de systemutviklingsteknikker som vi har lært oss opp gjennom årene på ingeniøravdelingen på høgskolen. Til tider kan vi også ha følt at arbeidsmengden har vært stor og at tiden ikke alltid strakk til, men vi har ikke blitt presset av oppdragsgiver til å jobbe ekstra mye av den grunn. Læreviljen og nysgjerrighet har vært stor drivkraft til at vi har utviklet et produkt som begge parter er meget fornøyd med. Etter hvert ble vi også mer kjent med miljøet rundt oss, og da gikk det bare den positive retningen. 6.2 Hva har vi lært? Dette har vært et stort utviklingsprosjekt som har først og fremst gitt oss mye erfaring i hvordan det er å utvikle et produkt fra en idé til selve implementeringen. Det har vært veldig mye å gjøre, men til gjengjeld har vi løst en oppgave slik det var forventet. Selv om vi til å begynne med følte at vi hadde alt planlagt, vet vi nå at det alltid kan dukke opp et problem. Erfaringsmessig stemmer dette, men vi har lært å løse problemer som dukker opp, slik at vi klarer å fokusere på det som skal gjøres. Et godt eksempel på dette er databasen. Vi trodde vi hadde en god oversikt over hvordan databasen ville være, men ettersom vi begynte med utviklingen av systemet måtte vi endre databasen flere ganger. Dette har ført til at vi sitter igjen med en erfaring av at selv et godt planlagt prosjekt vil forandres ettersom prosjektet utformer seg. Av alle de fagene vi har hatt på skolen i løpet av disse tre årene mener vi at hovedprosjektet har gitt oss mest lærdom på så kort tid. Vi har blitt kjent med nye og spennende teknologier som er veldig aktuelle. Men vi er veldig glad for at vi gjennomgikk de mindre utviklingsprosjektene tidligere i utdanningen. De har gitt oss nok erfaring og kunnskap til å kunne utføre et stort og omfattende prosjekt som dette. Prosessdokumentasjon 19

23 6.3 Vurdering av eget arbeid Vi er også fornøyde med vår egen innsats. Vi har jobbet som et team og ikke enkelte individer, og hvis vi har hatt behov for hjelp så har vi stilt opp for hverandre. Interessen og ambisjonene har vært like høye og begge har jobbet mot å skape et så godt som mulig produkt og lære mest mulig under hele prosjektet. Gruppearbeid er noe vi har god erfaring med fra tidligere i studiet, og dette er blitt enda mer forsterket etter dette prosjektet. Selv om det kan være stor kontrast mellom hvordan folk arbeider, så har vi klart å fordele arbeidet slik at vi har nådd våre mål. 6.4 Hva kunne vi ha gjort annerledes? Selv om vi er veldig fornøyde med det arbeidet vi har gjort og hvordan utviklingsprosessen har forløpt, så er det to ting vi skulle ønske vi hadde gjort annerledes. Vi skulle ha disponert tiden bedre slik at vi kunne skrive en mer utfyllende dokumentering enn det vi har gjort. En annen ting er at vi skulle hatt en person til på gruppa. Prosjektet viste seg å være mye større enn det vi hadde forventet oss og vi følte ofte at tiden ikke strakk til. 6.5 Produktets fremtid Vi har laget et veldig godt grunnlag for et interaktivt nettsted som studentforeningen kan benytte seg av til å gi sine medlemmer et sted hvor de kan samle seg og utveksle tanker og meninger. Produktet vi har laget har enorm potensial for videreutvikling. Det er en type applikasjon som kan utvides med massevis av funksjonalitet. Her er noen eksempler; oppretting av bildealbum, opplasting av video- og musikkfiler, intern meldingstjeneste, e-post tjeneste, avstemninger, brukerdefinerte layout (bakgrunnsbilder og farger), tekstmeldingstjeneste mot mobiltelefoner og andre funksjoner som er tilpasset mobile enheter, og mye mer. Vi har sagt oss villige til å jobbe videre på dette produktet etter at hovedprosjektet er ferdig, noe som er virket veldig interessant for oppdragsgiveren. Prosessdokumentasjon 20

24 7 Kilder Bøker: Programming ASP.NET - 3rd Edition (Jesse Liberty & Dan Huritz) Core C# and.net (Stephan C. Perry) Databaser (Kjell Toft Hansen & Tore Mallaug) ASP.NET 2.0 With C# (Chris Hart, Johan Kauffman, David Sussman, Chris Ullman) Beginnning C# 2005 Databases (James Huddleston) Database Processing (David M. Kroenke) Nettkilder: Prosessdokumentasjon 21

25 Del II Kravspesifikasjon 22

26 1 Prosjektfakta Prosjekttittel: Medlemsregister for YXD-Kurdistan Prosjektnummer: Gruppemedlemmer: Oppdragsgiver: Kontaktperson: Intern veileder: Asad Fattahi Ernad Fajkovic YXD-Kurdistan (Den Demokratiske Unionen for Iransk-Kurdiske Studenter i Norge) Yassin Azari Eva Hadler Vihovde Prosjektperiode: Oktober 2006 mai 2007 Kravspesifikasjon 23

27 2 Bakgrunn Dette kapittelet sier litt om bakgrunnen for prosjektoppgaven. 2.1 Oppdragsgiver YXD-Kurdistan er en kurdisk studentforening som ble opprettet i juni 2006 i Norge. Organisasjonen er en del av en større studentforening som finnes i andre land med hovedkontor i Nord-Irak. YXD-kurdistan i Norge har mer enn 60 medlemmer. Unionen er et mellomledd mellom kurdiske studenter og faginstitutter på universiteter og høyskoler. Organisasjonen jobber for integrering av kurdiske studenter i Norge, hjelper elever ved å delta i prosjekter i samarbeid med forskjellige videregående skoler i Oslo, holder seminarer for forfattere og studenter og deres familie og venner, og hjelper med faglige kunnskaper for kurdiske og ikke kurdiske organisasjoner i Norge. 2.2 Dagens situasjon Studentforeningen har en eksisterende nettside ( som er bygget opp av PHP og MySQL. Den virker kun som en informasjonskilde for medlemmer og andre besøkende. Etter at vi kontaktet organisasjonen og diskuterte forskjellige webapplikasjonsmuligheter til nettsiden deres, som ville være mer appellerende for deres medlemmer, syntes de at det var på tide med noe nytt. Kravspesifikasjon 24

28 3 Systembeskrivelse 3.1 Mål Hovedmålet med oppgaven er å lage et medlemsregistersystem for YXD. Systemet skal gjøres sikkert (ved å bruke en innebygd regisstreringswizard i ASP.NET 2.0 som blant annet krypterer innloggingsdata og ved å bruke innloggingskontroll og rollefordeling) og alt personlig data skal lagres i en database. Resultatmålet vårt er å lage en webapplikasjon som skal være brukervennlig (uansett hvor avansert det måtte være under overflaten) og enkel å oppdatere og utvikle i fremtiden. Både medlemmene og administratoren skal kunne bruke systemet uten å ha behov for spesielle datakunnskaper. Oppgavens læringsmål er å bli kjent med nye teknologier og å kunne bruke disse til å lage en mer avansert, men brukervennlig, nettside. Kravspesifikasjon 25

29 4 Krav til funksjonalitet Systemet skal gjøre det mulig for brukere å registrere seg på nett. Det skal sjekke svake passord og utføre diverse andre inputvalideringer fra brukeren. Brukere skal kunne bevege seg kun på de sider i systemet som de har tillatelse til. 4.1 Sikkerhet Tilgang Alle medlemmer skal ha tilgang til sine private sider ved å logge inn på systemet med brukernavn og passord. Brukervalidering Hvert medlem har et unikt brukernavn og passord som blir evaluert av systemet hver gang de prøver å få tilgang til en side i applikasjonen. Inputvalidering Alt input blir validert av systemet for å forhindre datakorrupsjon. ASP.NET web controllers (RequiredRieldValidator, RegularExpressionValidator og CompareValidator) skal brukes i applikasjonen. Errorhandling Noen Error og Exceptions skal behandles av systemet via utskrift av feilmeldinger på skjermen (tilpasset for den aktuelle feilen som har oppstått). I tilfelle det oppstår andre feil skal systemet videreføre brukerne til en annen side, som f.eks. Error.aspx/Feilmelding.aspx. På den måten vil de ikke se kompilatorgenererte feilmeldinger i tilfelle det skulle oppstå en uforutsett feil Databasesikkerhet Brukere Hver gang systemet henter, legger inn, sletter og endrer data, er det på oppdrag fra en bruker. Systemet skal tillate eller forhindre handlinger avhengig av hvilke brukere som initierer kommandoene. Objektrettigheter Definerer hvilke operasjoner en bruker har rett til å utføre på et gitt databaseobjekt. Systemrettigheter Spesifiserer hvilke operasjoner en bruker har rett til å utføre på tjeneren. Kravspesifikasjon 26

30 4.1.2 Roller Det skal være tre typer roller i systemet: bruker, medlem og administrator. Bruker Vanlige brukere på nettet som ikke er identifisert av systemet har leserettighet bare for bestemte sider. Medlem Har tilgang til sine private opplysninger og mulighet for oppdatering av profil og egne data i databasen. Administrator Administrator har tilgang til alle data i systemet. Administratoren kan slette og oppdatere medlemsprofilene og andre data i databasen og i systemet. 4.2 Paneler Systemet skal ha to paneler: administratorpanel og medlemspanel. Administratorpanel Administratorpanelet skal, som navnet tilsier, brukes av administratoren. Dette panelet skal inneholde flere sider som skal hjelpe administratoren med å utføre de administrative oppgavene i systemet. Dette er oppgaver som redigering/oppdatering av medlemsprofiler, ordboka, nyhetssiden og andre deler av systemet. Medlemspanel Fra medlemspanelet skal medlemmene ha tilgang til sin egen profil og blogg, og en felles gjestebok, chat og ordbok. De skal naturligvis også kunne lese andre medlemmers blogg. 4.3 Nyhetsoppdatering Siden det er bare administratoren som skal kunne redigere/oppdatere nyhetssiden, så vil denne bare være tilgjengelig fra administratorpanelet. Det skal være mulig å velge publiseringsdato og -periode. For medlemmene skal nyhetene vises som en liste med titler (nyhetsoverskrifter) og de skal kunne se hele nyhetsinnholdet ved å velge en av titlene (ved hjelp av f.eks. knapper, hyperlinker eller ikoner). Det skal også være mulig å se hvor mange som har lest hvert enkelt nyhetsinnlegg. Kravspesifikasjon 27

31 4.4 Chat Chattesiden skal være felles for alle medlemmene. Når det gjelder funksjonalitet så har vi ikke fått noen detaljerte krav til chatten, bortsett fra at flere skal kunne bruke den samtidig (samtalene skal altså ikke være bare mellom to personer). Resten blir slik som man forventer av en chat; et område hvor alle meldingene vises sammen med brukernavnet for personen som skrev meldingen, en liste med alle personer som er inne i chatten og et felt hvor man skriver inn meldingene. 4.5 Ordbok Systemet skal ha en norsk-kurdisk ordbok (med oversettelse kun fra norsk til kurdisk). Denne er ment som et hjelpemiddel ved skriving av blogg, gjestebokinnlegg, chat, og bør derfor være tilgjengelig fra flere steder i systemet. Det er ikke krav om å legge inn alle ord i ordboken, men det skal være mulig for administratoren å oppdatere den. 4.6 Søkefunksjon Søkefunksjonen skal kunne benyttes til å utføre søk i databasen som er tilgjengelig for medlemmer. Søk i nyhetssiden skal gjøre det enklere å finne de temaene man er interessert i. Dette er spesielt viktig når nyhetssiden blir altfor stor til at man kan lese gjennom alle nyhetstitlene for å finne frem til riktig tema. 4.7 Blogg Medlemmer skal kunne publisere og rediger tekster i bloggen deres. Disse bloggene skal også være tilgjengelig for brukere som ikke er medlem hos YXD. 4.8 Gjestebok Det skal være én gjestebok for hele systemet hvor alle brukere kan legge inn beskjeder/hilsener. Innlegg som skrives i gjesteboka publiseres ikke før administrator har godkjent innholdet. Kravspesifikasjon 28

32 5 Rammebetingelser 5.1 Hvor Vi har fått tildelt en datamaskin i underetasjen ved siden av nettverksrommet (i Cort Adelersgate 30, ved ingeniøravdelingen i HiO) og skal bruke stedet som arbeidsplass. 5.2 Når Vi har satt opp tre dager til å jobbe med dette prosjektet. Arbeidsdagene skal være onsdag, torsdag og fredag fra klokken 10:15 til 17:00 (med mulige endringer). 5.3 Krav/ønske til utviklingsverktøy fra oppdragsgiver Helt fra begynnelsen har vi sett på to muligheter til å løse denne oppgaven på. Den ene var å lage applikasjonen i ASP.NET og den andre var å bruke Java Server Faces. Vi har diskutert dette med oppdragsgiveren, men har ikke fått noen spesifikke krav når det gjelder verktøy eller språk. De hadde derimot noen ønsker: Applikasjonen skal være forholdsvis enkel å teste og sette ut i drift. Det skal ikke være vanskelig å videreutvikle applikasjonen senere. Programmeringsspråket skal være forholdsvis kjent og utbredt, slik at det ikke vil være noe problem å finne utviklere som kan videreutvikle produktet. Kravspesifikasjon 29

33 6 Rammekrav Vi har valgt å bruke ASP.NET(Active Server Pages) med C# som løsning for denne oppgaven. Utviklingsmiljøet vi vil benytte oss av er Microsoft Visual Studio En av grunnene til at vi valgte.net er at det er mer populært og har dermed flere.net utviklere tilgjengelig enn hva tilfellet er for JSF (som er ganske ferskt på markedet). I tillegg er Java- og.net-løsninger ganske like i kvaliteten av deres løsninger. C# (c-sharp) er et nytt objektorientert programmeringsspråk på Microsofts.NET- plattform. Språket bygger på C/C++ og Java. Blant annet finnes det arv, dynamiske operasjoner, innkapsling og interfaces. Men i motsetning til C++ har man innført automatisk ressurshåndtering (Garbage Collection), uten bruk av en "interpreter". Slik får man hastigheten man er vant med fra C/C++ miljøet. 6.1 Systemkrav Utviklingsplattform: Microsoft Windows XP Professional Microsoft Internet Information Services 5.1 Microsoft.Net Framework 2.0 Microsoft SQL Server Express Utviklingsmiljø: Microsoft Visual Studio.Net 2005 Utviklingsverktøy: ASP.NET C# SQL XML HTML CSS UML AJAX Nettleser: Microsoft Internet Explorer v.6.0 / Utviklingsmiljø og testing Vi har installert en IIS 5.1 server på maskinen for testing av koden på nett. Testingen av applikasjonen skal foregå både på Visual Studio sin egen utviklingsserver og på IIS serveren på maskinen. Vi skal bruke Internet Explorer v6.0/7.0 under testing (med sluttesting også på andre kjente nettlesere som f.eks. Firefox og Opera dersom vi får tid til dette). Kravspesifikasjon 30

34 7 Krav til systemkonstruksjon I dette prosjektet kommer vi til å bruke to hovedverktøy for å lage UML diagrammene for systemet. IBM Rational Rose Professional Data Modeler Edition for use case diagram og klassediagram og DB Designer 4 for ERdiagram. 7.1 Use case diagram Noen av use case diagrammene kan være litt vanskelige å lese fordi de er blitt forminsket for å få plass på siden. Diagrammene er tilgjengelige i full oppløsning på prosjektets hjemmeside. Kravspesifikasjon 31

35 Kravspesifikasjon 32

36 7.1.1 Use case tilfeller 1) Registrer Primær aktør: Bruker Sekundær aktør: Applikasjonen Applikasjonen viser et registreringsskjema. Brukeren fyller ut de obligatoriske feltene. Applikasjonen validerer input-verdiene. I tilfelle registreringen mislykkes vil en passende feilmelding vises. Dersom registreringen lykkes vil en passende melding vises og brukeren får tilsendt en bekreftelse på dette til den oppgitte e-postadressen. 2) Autentisitet (Logg Inn) Primær aktør: Bruker Sekundær aktør: Applikasjonen Medlemmene og administratoren må identifisere seg for å få tilgang til systemet. Dersom innlogging mislykkes vil en passende feilmelding vises. Ved innlogging har man mulighet til å få tilsendt passordet sitt i tilfelle man har glemt det. For at applikasjonen skal kunne gjenkjenne riktig person så må man svare på et sikkerhetsspørsmål (både spørsmålet og svaret skal hver bruker ha oppgitt under medlemsregistreringen). Systemet sjekker svaret, i tilfelle det er riktig sender systemet passordet per e-post (denne skal også ha blitt oppgitt under medlemsregistreringen). 3) Oppdater ordbok Primær aktør: Administrator Sekundær aktør: Applikasjonen Administratoren skal ha mulighet til å legge til nye ord i ordboka og oppdatere de ordene som er lagt inn i ordboka tidligere. Alle ordene skal lagres i databasen. 4) Oppdater nyheter/linker/tidskrifter/reklamer Primær aktør: Administrator Sekundær aktør: Applikasjonen Administratoren skal kunne legge til nyheter/linker/tidskrifter/reklamer. Data skal lagres i databasen (bildet/pdf/word filer skal lastes opp på serveren og stien til bildet skal legges i databasen). Administrator skal kunne fjerne eller oppdatere dataene. 5) Rediger gjestebok Primær aktør: Administrator Sekundær aktør: Applikasjonen Det skal være mulig for administratoren å fjerne upassende innlegg fra gjesteboka. Administratoren skal også kunne legge til nye innlegg i gjesteboka. Gjestebokinnlegg skal lagres i databasen. Kravspesifikasjon 33

37 6) Rediger Blogg Primær aktør: Medlem Sekundær aktør: Applikasjonen Medlem skal kunne legger inn ny innlegger eller oppdatere eksisterende innlegg. Applikasjonen utfører oppgaven i tilfelle mislykkes gir feilmelding. Blogginnlegg skal lagres i databasen. 7) Chat Primær aktør: Medlem, Administrator Sekundær aktør: Applikasjonen Alle medlemmer har tilgang til den samme chattsiden og skal kunne prate med alle som tar del i chatten. Medlemmer som logger seg på chatrommet skal vises som innlogget på rommet. 8) Endre passord Primær aktør: Medlem Sekundær aktør: Applikasjonen Et medlem kan skifte passord mens hun/han er innlogget. Applikasjonen verifiserer det nye passordet og gir passende feilmelding dersom passordet ikke var akseptert av systemet. Det nye passordet blir lagret i databasen og blir tilgjengelig for systemet umiddelbart. 9) Gjestebok Primær aktør: Bruker Sekundær aktør: Applikasjonen Alle brukere har tilgang til den samme gjesteboka og kan dermed legge inn beskjeder/hilsener til administrasjonen. Brukeren skriver inn to ganger et antispam tall som skal hindre spam fra roboter. Applikasjonen verifiserer skrevede informasjon fra brukeren og gir feilmelding i tilfelle mengdene informasjon. Applikasjonen lagrer informasjonen i databasen og gir melding til brukeren. Meldingen skal kontrolleres av administrasjonen før publisering. 10) Se Medlemsliste Primær aktør: Medlem Sekundær aktør: Applikasjonen Alle medlemmer har tilgang til å lese informasjon om alle medlemmer. 11) Les nyheter Primær aktør: Bruker Sekundær aktør: Applikasjonen Nyhetene vises som en liste med nyhetstitler/overskrifter og medlemmene skal kunne se hele innholdet ved å velge en tittel. Kravspesifikasjon 34

38 12) Søk Primær aktør: Medlem Sekundær aktør: Applikasjonen Medlemmene skal kunne søke etter informasjon som de har tilgang til. Applikasjonen skal skrive ut resultatene dersom finnes. 13) Søk i ordbok Primær aktør: Bruker Sekundær aktør: Applikasjonen En bruker skriver inn et norsk ord i søkefeltet for ordboka (som er lett tilgjengelig). Applikasjonen returnerer oversettelsen av dette ordet med kurdiske tegn. Kravspesifikasjon 35

39 7.1 ER diagram Diagrammet under består av tabeller fra to databaser; ASPNETDB og YXDDB. ASPNETDB er en database som blir generert av Visual Studio når innloggingsfunksjoner implementeres. Den andre er en som vi selv oppretter. Tabellnavn som begynner med "aspnet_" er fra ASPNETDB databasen. Kravspesifikasjon 36

40 Kravspesifikasjon 37

41 7.1 Databaseoversikt Nedenfor er en oversikt over de tabellene som er illustrert i ER diagrammet. Kravspesifikasjon 38

42 Del III Produktdokumentasjon 39

43 Forord Dette dokumentet er en del av en hovedprosjektoppgave ved Høgskolen i Oslo, avdeling for ingeniørutdanning i perioden oktober 2006 mai Hensikten med dette dokumentet er å gi en introduksjon og et overblikk over applikasjonen vi har laget. Det inneholder beskrivelser av systemet i sin helhet og av teknologien bak. Dokumentet er først og fremst beregnet for programutviklere og andre som måtte være interessert i hvordan systemet er bygget opp. Dokumentet er skrevet på et nokså detaljert nivå, med den hensikt å sette leseren inn i strukturen og funksjonene i systemet. For å få full oversikt og best mulig forståelse av systemet anbefales det å se på prosessrapporten og kildekoden. Oppdraggiveren for prosjektet har vært Den Demokratiske Unionen for Iransk- Kurdiske Studenter i Norge (YXD-Kurdistan) som er en kurdisk studentforening som ble opprettet i juni 2006 i Norge. Vi kom i kontakt med oppdragsgiveren gjennom en av gruppas medlemmer, som også er medlem i studentforeningen. YXD-Kurdistan har en eksisterende nettside som er bygget opp av PHP og MySQL. Nettsiden er verken brukervennlig eller fleksibel. Studentforening har heller ikke personell som kan oppdatere sidene. For å gjøre nettopp dette må man gå inn i kildekoden og endre selve koden for siden, noe som krever kunnskap innen PHP og HTML. Vi har derfor laget et produkt som er brukervennlig og støtter både det kurdiske og det norske språket. Det kreves ikke mye dataferdigheter for å bruke systemet. Generell datakunnskap og litt erfaring med bruk av internett er nok. Dette gjelder både for studentforeningen og andre brukere av systemet. Medlemmer kan bla gjennom nyheter, gjesteboka, skrive innlegg i gjesteboka, se bloggen til andre medlemmer, lage sin egen blogg og chatte med andre påloggede medlemmer. Administratoren av systemet har tilgang til de samme sidene og funksjonene som medlemmer, men kan i tillegg bruke egne funksjoner som er beregnet for administrering av systemet. Blant annet redigering av gjestebok, medlemsinformasjon, nyheter, ordbok og registrering av nye brukere. I tillegg har vi gjort ordboka tilgjengelig hele tiden fra hvor som helst i systemet. Det vil si at de kan bruke hvilken som helst av de ovennevnte funksjonene og samtidig søke i ordboka. Produktet har fine sider med passelige farger som gjør det enkelt å navigere og finne frem informasjon på sidene. Det er veldig enkelt å utvide systemet i framtiden. Det er bare å legge inn nye sider og koble dem til en av mastersidene (norsk eller kurdisk). Og for å gjøre det enda enklere har vi separert programkoden (.cs filer), layout-koden (.aspx filer) og stilen (.css filer) fra hverandre. Dette dokumentet vil være tilgjengelig for nedlasting og utskrift fra vår hovedprosjekthjemmeside: Produktdokumentasjon 40

44 Innholdsfortegnelse Forord Innholdsfortegnelse Sammendrag Oppdragsgiver Bakgrunn Produktoversikt Systemkrav Teknologien HTML SQL CSS ASP.NET C# AJAX XML JavaScript Datastruktur Katalogstruktur Filstruktur Sikkerhet og roller Masterpages Databaser ASPNETDB YXDDB Oppbygging Brukere Språk Paneler Kurdiske sider Tilgang Funksjoner Blogg Chat Søk Innlegging av data Redigering av eksisterende data Registrering Login Ordbok Mail Gjestebok Hjelp Kilder Produktdokumentasjon 41

45 1 Sammendrag I dette kapittelet skal vi si litt om oppdragsgiveren i dette prosjektet, bakgrunnen for prosjektoppgaven og det produktet som vi har kommet frem til. 1.1 Oppdragsgiver YXD-Kurdistan er en kurdisk studentforening som ble opprettet i juni 2006 i Norge. Organisasjonen er en del av en større studentforening som finnes i andre land med hovedkontor i Nord-Irak. YXD-kurdistan i Norge har mer enn 60 medlemmer. Unionen er et mellomledd mellom kurdiske studenter og faginstitutter på universiteter og høgskoler. Organisasjonen jobber for integrering av kurdiske studenter i Norge, hjelper elever ved å delta i prosjekter i samarbeid med forskjellige videregående skoler i Oslo, holder seminarer for forfattere og studenter og deres familie og venner, og hjelper med faglige kunnskaper for kurdiske og ikke-kurdiske organisasjoner i Norge. 1.2 Bakgrunn Studentforeningens tidligere nettsted var også på kurdisk og norsk. Men nettsiden var ikke særlig brukervennlig eller enkel å vedlikeholde. Oppdragsgiveren nevnte spesielt to ting som de var mest misfornøyd med. Det ene var å oppdatere nettsiden. For eksempel det å publisere en ny artikkel på siden krevde at noen måtte endre selve kildekoden (html/php). Det er en enkel sak for noen som har erfaring med webutvikling og programmering, men siden kompetansen på området i studentforeningen er svært liten, ønsker de seg et system som enkelt kan oppdateres via en nettleser. Det andre var sikkerheten til nettstedet. De var veldig plaget over spam i gjesteboka, der roboter fyller ut gjesteboka og legger inn reklame og linker til andre sider. Hver uke måtte de fjerne hundrevis av slike innlegg. Dette førte til at gjesteboka til slutt måtte stenges. Styret i YXD-Kurdistan ønsket frem for alt et system som var brukervennlig både for medlemmer og for de som skal administrere systemet. 1.3 Produktoversik Produktet er en komplett løsning på alle problemer og krav fra YXD-Kurdistan. Det gir organisasjonen mulighet til å publisere nyheter, reklame (i form av tekst og bilder), kurdiske aviser (i form av Word- og pdf-filer), linker, vedtekter, og informasjon om styret. De kan også redigere, oppdatere og slette alle disse dataene. Systemet er tilpasset to brukergrupper (studentforeningen og medlemmer) og to helt forskjellige språk (norsk og kurdisk). Disse brukergruppene skal styre systemet gjennom en nettleser. Det betyr at administrator også skal kunne utføre alle nødvendige handlinger gjennom nettleseren. Som vi nevnte tidligere så hadde studentforeningen en del problemer med sikkerheten til det tidligere nettstedet. Dette har vi løst ved å implementere flere sikkerhetsfunksjoner. Spesielt for anonyme brukere, siden Produktdokumentasjon 42

46 de har tilgang til registreringsskjemaet og gjesteboka. Vi har beskyttet disse to funksjonene både mot roboter og useriøse brukere ved å implementere en rekke valideringer som de må få godkjent før informasjonen kan sendes videre. Deretter blir informasjonen gjennomgått av en administrator som skal godkjenne eller slette det som ble oppgitt. Her kommer en oversikt over alle funksjoner i systemet og hvilke brukere som har tilgang til dem. Anonym bruker: Medlem: Administrator: Lese studentforeningens nyheter Lese medlemmers bloggartikler Lese gjestebokinnlegg Skrive egne gjestebokinnlegg Registrere seg som medlem Søke i ordboka Se informasjon om studentforeningen og stryremedlemmene (Alle ovennevnte funksjoner) Publisere egne bloggartikler Søke i nyheter Se alle registrerte medlemmer Chatte med andre medlemmer Endre innloggingspassord og andre personlige opplysninger (Alle ovennevnte funksjoner) Publisere avisfiler (.doc og.pdf) Publisere linker Publisere reklame Publisere nyheter Registrere nye brukere Oppdatere ordboka Redigere aviser, linker, reklame, nyheter, brukerdata, gjestebokinnlegg og ordbok Alt som er nevnt i listen over er tilgjengelig både på norsk og kurdisk (bortsett fra chat-siden, denne er ment som en felles funksjon). 1.4 Systemkrav Systemet kan installeres på en Windows-server med MS SQL Vi har kjørt applikasjonen på en Windows XP Pro (SP2) maskin med IIS 5.1 (Internet Information Services) og MS SQL Express. For klienten stilles det ingen krav enn en nettleser og internettilgang. Produktdokumentasjon 43

47 2 Teknologien Dette kapittelet beskriver teknologien og utviklingsverktøyene som er benyttet. 2.1 HTML HTML (HyperText Markup Language) er et språk som brukes til å lage statiske websider. HTML alene står for det elemtære på websiden, altså utformingen/strukturen av sidene og elementene på sidene (knapper, tekstfelt, bilder, osv.). 2.2 SQL Structured Query Language (SQL) er et standardisert databasespråk for tilgang til relasjonsdatabaser, og i senere tid også objekt-relasjonsdatabaser. SQL er tilgjengelig på omtrent alle plattformer, inkludert Unix, Linux og Windows. Databasesystemer som Oracle og MS SQL benytter SQL. 2.3 CSS CSS (Cascading Style Sheets) er stilark for HTML. Ved hjelp av CSS får man en mer oversiktlig layout på websidene. Stilarkene er også mye enklere å gjøre endringer på. Med CSS kan man ta all designkode ut av en HTML-filene og definer dette i en egen fil. Dette gjør det blant annet lettere å jobbe parallelt med design og kode, samt at det ved et senere tidspunkt blir lettere å endre på designet. 2.4 ASP.NET 2.0 ASP.NET 2.0 er Microsofts siste generasjon av "Active Server Pages" teknologien. Både ASP og ASP.NET brukes blant annet av webdesignere for å lage dynamiske, database-drevne websider. ASP.NET er forskjellig fra sin forløper ASP på to viktige felt: Man kan kode i sidene i kompilert språk som VB, C++ og Perl Man kan benytte "code-behind" moduler, slik at man kan skille helt mellom koden og selve designet av sidene. Man kan uten videre mikse ASP.NET, ASP og andre typer sider på en og samme webområde. ASP.NET filer kjennes igjen ved at de har en.aspx filending. 2.5 C# C# (uttales c-sharp) er et nytt programmeringsspråk i c-familien. C# har sin bakgrunn i C og C++ og prøver å kombinere det beste fra C, C++, Java og også MS Visual Basic. Programmeringsspråket er designet spesielt for.net plattformen til Microsoft. Dette for å gjøre det enklere for programmerere å ta i Produktdokumentasjon 44

48 bruk denne plattformen. For de som har programmert i C++ eller java tidligere, vil man se likhetene mellom de ulike programmeringsspråkene og C#. C# er et hendelsesstyrt, objektorientert og visuelt programmeringsspråk. Programmene lages ved hjelp av IDE (Integrated Development Environment). Med en IDE kan programmereren lage, kjøre, teste og feilsøke (debugge) programkoden på en enkel og oversiktelig måte. På denne måten reduseres utviklingstiden av en applikasjon betraktelig. Denne måten å drive programutvikling på kalles for RAD (Rapid Application Development). 2.6 AJAX AJAX (Asynchronous JavaScript And XML) bygger på kjente teknologier som HTML, JavaScript og XML. Dette ligger også i navnet; forkortelsen Ajax står for Asynchronous JavaScript and XML. Med grunnleggende kunnskap om HTML kan du komme i gang med enkle Ajax-løsninger som gir merverdi til en side. Det er også mulig å programmere komplekse applikasjoner i Ajax. 2.7 XML XML (Extensible Markup Language) er et universelt format for strukturerte dokumenter og data. XML er en W3C (World Wide Web Consortium) anbefaling fra februar Det er utviklet fra et tidligere metaspråk som heter SGML, Standard Generalized Markup Language, og er et subset av SGML. 2.8 JavaScript JavaScript er et skriptspråk som kan kombineres med HTML. Et skriptspråk er et lettvekts-programmeringsspråk. JavaScript kan skrives rett i HTML-filen innenfor et script-element (<script type="text/javascript">...</script>). Det er også mulig å inkludere eksterne javascript-filer ved hjelp av srcatributtet i script-elementet. Produktdokumentasjon 45

49 3 Datastruktur Dette kapittelet beskriver sentrale strukturer i systemet. 3.1 Katalogstruktur Katalogstrukturen er laget med hensyn til to forskjellige språk og de roller og rettigheter som finnes i systemet. Produktdokumentasjon 46

50 Tabellen under gir en kort beskrivelse av de forskjellige katalogene i systemet. Katalog Innhold Tilgang ~/App_Code Kodekatalogen som inneholder bare C# koder Ingen og en XSD fil (XML Schema Definition). ~/App_Data Inneholder databasefiler. Applikasjon ~/newspapers Inneholder opplastede avisfiler. Alle ~/bin Inneholder to filer, CaptchaImage.dll og Ingen CaptchaImage.pdb, som tar for seg generering av antispam-bilder. ~/css Inneholder tre css-filer som styrer designet for Alle hele systemet. ~/kurdi Her ligger filer og kataloger for den kurdiske Alle delen av systemet. ~/kurdi/admin Denne mappen er det bare administrator som Administrator har tilgang til. ~/kurdi/member Her ligger filer som bare medlemmer har Medlemmer tilgang til. ~/masterpages Her ligger masterpage-filene for de kurdiske og Alle norske sidene. ~/norsk Denne mappen inneholder filer og kataloger for Alle den norske delen av systemet. ~/norsk/admin Denne mappen er det bare administrator som Administrator har tilgang til. ~/norsk/member Her ligger filer som bare medlemmer har Medlemmer tilgang til. ~/images I denne mappen lagres alle bildene i systemet, Alle både de som er en del av applikasjonen og de som blir lastet opp. Bildene er sortert i undermapper etter deres bruksområde. ~/chat Den mappen inneholder sidene for chatfunksjonen. Medlemmer Vi har ikke lagt denne Figur Filstruktur Alle aspx.cs filer har en aspx fil med samme navn. Førstnevnte inneholder C# kode for tilhørende aspx fil. Filene er ordnet etter språk, roller og bruksområde. For eksempel, alle norske sider er lagt under mappen ~/norsk, alle norske medlemssider er lagt under ~/norsk/member og alle norske administratorsider under ~/norsk/admin. De sidene, filene og mappene som er felles for begge språkene og alle rollene ligger under root-katalogen (~/). Produktdokumentasjon 47

51 ~/kurdi/admin/ ~/norsk/admin/ Fil Oppgave Filstruktur LeggeTilAvis.aspx Sørger for å legge til ny avisfil i katalogen ~/newspapers og legger inn nødvendige data i databasen. LeggeTilLink.aspx Sørger for å legge inn data om linker i databasen. LeggeTilReklame.aspx Sørger for å laste opp et bilde til katalogen ~/images/ads og legger inn nødvendige data i databasen. LeggeTilNyheter.aspx Sørger for å laste opp et bilde til katalogen ~/bilder/news og legger inn nyhetsdata i databasen. Medlemsliste.aspx Viser alt data om registrerte medlemmer. OppdaterNyheter.aspx Oppdaterer eksisterende nyhet i databasen. OppdaterOrdbok.aspx Legger inn nye ord og oppdaterer eksisterende ord i ordboken. RedigerAvis.aspx Oppdaterer data om eksisterende avis. RedigerGjestebok.aspx Sørger for å oppdatere registrerte meldinger i gjesteboka. RedigerLink.aspx RedigerMedlem.aspx RedigerOrdbok.aspx Sørger for å oppdatere registrerte linker i databasen. Redigerer data om registrerte medlemmer. Oppdaterer registrerte data i ordboka. RedigerReklame.aspx Oppdaterer Registrerte data om reklamen. Registrer.aspx Web.config.aspx Tabell Lager profil for registrerte medlemmer. Konfigurasjonsfil. Sørger for administratortilgang til katalogen. Produktdokumentasjon 48

52 ~/App_Code/ ~/App_Code/ChatEngine/ Fil Forklaring Filstruktur ChatEngine.cs Lister opp brukere som er logget inn på Chatrommet, mottar og sender meldinger, legger til og fjerner brukere fra chatlisten og kontakter chatserveren. IChatEngine.cs Brukergrensesnitt for chat. AssemblyInfo.cs Assembly fil for chatserveren. BlogEngine.xsd BlogEngine.xss Dataset-fil (xsd) for Blogg og er en kopi av de relasjonelle dataene I databasen. XML (xss) fil som inneholder data for dataset filen. ClassDiagram.cd Ingen spesiell oppgave i systemet. Tegner classediagram. Global.asax.cs Sørger for kanonisering av data. Helpers.cs KodeDAL.cs KodeSok.cs Bytter ut linjeskift med <br/> når tekst publiseres. Sørger for innlegging, oppdatering og publisering av data. Virker som kjerne for systemet. Søker data i databasen. Tabell ~/App_Data/ Fil Oppgave Filstruktur ASPNETDB.mdf Inneholder databasetabeller (Databasefil) YXDDB.mdf Inneholder databasetabeller (Databasefil) Tabell Produktdokumentasjon 49

53 ~/bin/ ~/css/ Fil Oppgave Filstruktur Tar for seg generering av anti-spam bilder. CaptchImage.dll CaptchImage.pdb kurdi.css norsk.css Shared.css Definerer stilen for designet på kurdiske sider. Definerer stilen for designet på norske sider. Definerer stilen for designet som er felles for både de norske og de kurdiske sidene. Tabell ~/kurdi/ og ~/norsk/ Fil Oppgave Filstruktur blog.aspx Viser alle registrerte blogger. blog_default.aspx Viser alle blogginnlegg for et medlem. blog_entry.aspx Viser blogg innlegg. default.aspx Indeksfil for katalogen. default.aspx.resx XML-fil som inneholder data for chat programet. contact.aspx Kontaktinformasjon. default.aspx Indeksfil for kurdi katalogen. forgot_password.aspx Skjema for glemt passord. guestbook.aspx Registrerer nye meldinger i gjesteboka og viser publiserte meldinger. guestbook_success.aspx Gir melding om vellykket innlegg. help_page.aspx Veiledningsside. kurdi.krd Inneholder kurdisk tekst. links.aspx Viser registrerte linker. login.aspx Innloggingsside. management.aspx Viser en liste over styremedlemmer. news.aspx Viser et nyhetsinnlegg. newscontents.aspx Viser alle publiserte nyheter. newspapers.aspx Viser publiserte aviser. registration.aspx Registrerer et nytt medlem. registration_success.aspx Gir melding om vellykket registrering. regulation.aspx Viser vedtekter. Tabell Produktdokumentasjon 50

54 ~/masterpages Fil Oppgave Filstruktur kurdi.master Masterpage for kurdiske sider. norsk.master Masterpage for norske sider. Tabell ~/users Fil Oppgave Filstruktur Defaultkurdi.aspx Tar for seg redigering og sletting av blogg artikler. Gjelder for kurdiske sider. Default.aspx web.config NewEntry.aspx Tar for seg redigering og sletting av blogg artikler. Gjelder for norske sider. Konfigurasjonsfil. Legger inn en ny artikkel i blogen. Gjelder for norske sider. NewEntryKurdi.aspx Legger inn en ny artikkel i blogen. Gjelder for kurdisk sider. Tabell ~/chat *.css Fil Oppgave Filstruktur Stilark for chat siden. AjaxFunctions.js Oppdaterer chatsiden og kommuniserer med chatserveren. niftycube.js Default.aspx Chat.aspx Global.* Server.* Tar for seg oppdatering av design i chatsiden. Registrerer brukernavn og videresender brukeren til Chat siden. Logger brukeren inn og ut av chatserveren. Sørger for kanonisering av data. Kommuniserer med klienter. Tabell Produktdokumentasjon 51

55 3.3 Sikkerhet og roller Det er tre nivåer for rettigheter i systemet. Disse rettighetene bestemmes etter hvilken rolle brukeren har: 1. Administrator 2. Medlem 3. Anonym Katalogene ~/kurdi/admin og ~/norsk/admin (se Tabell 3.1-1) er det bare administrator som har tilgang til. Det vil si at dersom en bruker skal kunne åpne filene i denne mappen, må han/hun være tilordnet rollen Administrator. For å få til dette, opprettet vi en web.config fil i admin-katalogen og skrev følgende rettigheter for den mappen: <authorization> <allow roles="administrator" /> <deny users="*" /> </authorization> Koden ovenfor betyr; tillat rollen Administrator og nekt alle andre. Samme type sikkerhetskontroll gjelder for medlemskatalogene. Alle brukere som er tilordnet rollen Medlem har tilgang til disse mens alle andre blir stående utenfor. Syntaks: <authorization> <deny users="?" /> </authorization> Koden for medlemskatalogen (forrige side) betyr; nekt alle ukjente brukere. Vi vet at de ukjente brukerne er alle brukere, bortsett fra medlemmer og admin. På denne måten kan vi på en veldig enkel måte stenge ute alle anonyme brukere. For å gjøre det enda sikrere og mer brukervennlig er alle linker og menyer tilpasset hver rolle. Slik at linker som for eksempel peker til medlemssider bare vises for medlemmer og linker som peker til admin-sider bare vises for admin. Administratorrollen er den eneste som kan se alle linker og sider. Dersom for eksempel en anonym bruker prøver å åpne en side for medlemmer ved å skrive inn stien i adressefeltet i nettleseren, så vil han/hun bare bli sendt loginsiden. Vi brukte LoginView og RoleGroups for å få til dette. Koden under viser hvordan dette er implementert for medlemsrollen: <asp:loginview ID="LoginView1" runat="server"> <RoleGroups> <asp:rolegroup Roles="Medlem"> <ContentTemplate> </ContentTemplate> </asp:rolegroup> </RoleGroups> </asp:loginview> 3.4 Masterpages Produktdokumentasjon 52

56 En masterpage er en template der vi kan plassere faste elementer, modifiserbare elementer, og vi kan plassere ut placeholdere som skal fylles av innholdssider som bruker templatefila. Masterpage gjør at design er samme i alle sider i systemet og det som skiller sider fra hverandre er koden som vi passerer mellom Content tager. Vi har brukt to masterpager for hele systemet. En for kurdisk og den andre for norsk delen. Se på neste side for skisse av masterpagene. Produktdokumentasjon 53

57 4 Databaser 4.1 ASPNETDB ASPNETDB er en ferdiglaget database av Microsoft. Grunnen til at vi har valgt å bruke denne databasen var at organisasjonen ville ha et sikkert Loginsystem og asp.net sitt Loginsystem inkludert databasen er et standard system som er test mot alle mulige situasjoner. I tillegg til Asp tabeller vi har lagt inn følgende tabeller i databasen: BlogEntries, Medlem, MedlemB. ASPNETDB-Tabeller aspnet_applications Inneholder registrerte data om applikasjoner som er registrert og er i bruk i systemet. Spesielle felt: ApplicationId (primary key) Produktdokumentasjon 54

58 aspnet_membership Inneholder data om registrerte medlemmer. Spesielle felt: UserId (primary key) aspnet_paths Inneholder informasjon om applikasjoner. Spesielle felt: PathId (primary key) aspnet_personalizationallusers Inneholder informasjon om begrensede sider. Spesielle felt: PathId (primary key) aspnet_personalizationperuser Produktdokumentasjon 55

59 Inneholder informasjon om begrensede sider per medlem. Spesielle felt: Id (primary key) aspnet_profile Inneholder data som lagret om alle egenskaper. Spesielle felt: UserId (primary key) aspnet_roles Inneholder data om eksisterende roller i systemet. Spesielle felt: RoleId (primary key) aspnet_schemaversions Inneholder data om eksisterende Skjema i systemet. Spesielle felt: Feature (primary key) IsCurrentVersio (primary key) aspnet_users Produktdokumentasjon 56

60 Inneholder data alle registrerte brukere også de som er slettet fra systemet. Spesielle felt: UserId (primary key) aspnet_usersinroles Inneholder data om brukere som er registrerte i roller. Spesielle felt: UserId (primary key) RoleId (primary key) aspnet_webevent_events Inneholder data om eventhandlere som er registrert i systemet. Spesielle felt: EventId (primary key) BlogEntries Produktdokumentasjon 57

61 Inneholder registrerte data om Blog. Spesielle felt: BlogEntryID (primary key) Subject (tema for bloggartikkelen) Medlem Inneholder data om registrerte medlemer. Spesielle felt: MedlemsID (primary key) Bilde (lagrer URL til opplastet bilde) VisProfil (defaultverdi er Nei. For å vise medlemsprofil i andre deler av systemet må administratoren endre VisProfil til Vis) News Produktdokumentasjon 58

62 Inneholder registrerte data om nyheter for norsk delen av systemet. Spesielle felt: ID (primary key) Bilde (lagret URL til bilde for nyheten i systemet) LinkInfo (lagret URL til mer informasjon) 4.2 YXDDB YXDDB er en database med mindre relasjoner. Databasen er en plass for å lagre tekstformatinformasjon for organisasjonen. YXDDB-Tabeller Avis Inneholder data om registrerte avis og link til filen i systemet. Spesielle felt: ID (primary key) Nummer (avisnummer) AvisURL (URL til avisfilen i systemet) VisAvis (Defaultverdi for VisAvis er Vis) Gestebok Produktdokumentasjon 59

63 Inneholder data om registrete meldinger i gjesteboka i norske delen av systemet. Spesielle felt: MeldingsID (primary key) ViMelding (Default verdi for Vismelding er nei. For å publisere meldingen må verdien være lik stingen Vis.) KurdiGuestbook Inneholder data om registrete meldinger i gjesteboka i kurdiske delen av systemet. Spesielle felt: MeldingsID (primary key) ViMelding (Default verdi for Vismelding er nei. For å publisere meldingen må verdien være lik stingen Vis.) KurdishNews Produktdokumentasjon 60

64 Inneholder registrerte data om nyheter for kurdiske delen av systemet. Spesielle felt: ID (primary key) Bilde (lagret URL til bilde for nyheten i systemet.) LinkInfo: (Lagret URL til mer informasjon.) Linker Inneholder registrerte data om registrerte linker både i kurdisk og norsk deler av systemet. Spesielle felt: ID: Primarykey Organisasjon: Lagret informasjon om linken på norsk. KurdiskNavn: Lagret informasjon om linken på kurdisk. Link: Url til kilden. Bilde: Lagret URL til bilde i systemet. VisLink: Default verdi er Vis. Ordbok Inneholder registrerte data om ordboken. Spesielle felt: OrdID: Primarykey Norsk: Norsk ord Referanse: Ord referanse (Kurdisk). Kurdisk: Oversatt til kurdisk. Nforklaring: Forklaring på norsk. Kforklaring: Forklaring på kurdisk. Reklame Produktdokumentasjon 61

65 Inneholder registrerte data om reklamer både på kurdisk og norsk. Spesielle felt: ID: Primarykey Tekstkurdisk: Reklametekst på kurdisk. Tekstnorsk: Reklametekst på norsk. Bilde: Url til opplastede bile i systemet. visrkleme: Default verdi er Vis. Produktdokumentasjon 62

66 5 Oppbygging 5.1 Brukere Brukere i YXD-Kurdistan systemet er delt i tre typer: a. Anonyme brukere b. Medlemmer c. Administrator a. Anonyme brukere Anonyme brukere er besøkende brukere som er ikke identifisert av systemet og deres tilgang er begrenset. De kan lese nyheter, søke etter nyheter, oversette ord fra norsk til kurdisk, skrive melding i gjesteboka, lese blogartikler og en del andre tilgjengelige informasjon i systemet. Anonyme brukere kan registrere seg i systemet. De kan ikke se linker og funksjoner som er laget for medlemmer. b. Medlemmer Etter at en bruker registrer seg på systemet, blir hennes/hans data verifisert av administrator og etter godkjenning av styre medlemsprofil blir opprettet og kontoinformasjon blir sendt per e-post. Medlemmer må logge seg inn på systemet for å kunne bruke funksjoner som er laget spesiell for dem. I tillegg til funksjoner som er tilgjengelig for anonyme brukere medlemmer kan se medlemslita, søke etter medlemsinformasjon, skrive blogg innlegg, redigere blogginlegg og skrive melding til andre medlemmer via chat-programmet. c. Administrator Administrator har kontroll over alle deler i systemet. Alle funksjoner som er laget for administrator er utilgjengelig verken for anonyme brukere eller medlemmer. I tillegg til alle funksjoner som andre brukere har tilgang til administrator kan: lage medlemsprofil, legge til/redigere reklame, legge til/redigere nyheter, redigere gjesteboka, legge til/redigere ord i ordboka, se full informasjon om medlemmer, redigere medlemslista, legge til/redigere avis og legge til/redigere linker. 5.2 Språk Systemet er bygget opp for to språk: kurdisk og norsk. All funksjoner som er implementert i systemet er tilgengelig både på kurdisk og norsk. Systemet støttet ikke vestlige bokstaver og det stilles ikke noe krav til klienter for å bruke systemet. De fleste kurdiske nettsidene ikke er brukervennlige og grunnen er at enten linjeskift er ikke lesbart eller kurdiske fonter blir ikke støttet av systemet. En stor forskjell mellom vårt produkt og andre kurdiske systemer er at alle datafelter blant dem: tekstbokser, labler, knapper, feilmeldinger,.. er kurdisk i systemet. Retningen av tekst både i skriving og publisering av tekst går fra høyre side til venstre. Det er motsatte for det norske siden. Vi er en av få som klart å lage et slik system ved hjelp av den nye teknologien i det kurdiske dataverden. Produktdokumentasjon 63

67 5.3 Paneler Vi har laget tre forskjellige paneler for alle brukere: a. Anonympanel b. Medlemspanel c. Administratorpanel Koden som står bak alle de tre panelene ligger i Masterpages. Hver type bruker har tilgang til sin type data og de ser ikke data som ikke har tilgang til. Med dette har vi laget et effektiv og trygd system slik at man kan skille mellom forskjellige type brukere og deres tilgang til data. Det er samme type tilgang både i norsk og kurdisk delen av systemet. Med denne teknikken har vi laget et sikkert system hvor organisasjonen kan trygd ha forskjellige type brukere i systemet. Under kan vi se teknikken som er brukt i systemet for å lage paneler: <asp:loginview ID="LoginView1" runat="server"> <!-- Anonympanel -- > <AnonymousTemplate> <asp:hyperlink ID="HyperLink27" runat="server" NavigateUrl="Default.aspx" Text="Test"> </asp:hyperlink> </AnonymousTemplate> <!-- Medlemspanel -- > <RoleGroups> <asp:rolegroup Roles="Medlem"> <ContentTemplate> <asp:hyperlink ID="HyperLink27" runat="server" NavigateUrl="~/protected/SearchNews.aspx" nyheter"> </asp:hyperlink> </ContentTemplate> </asp:rolegroup> <!-- Administratorpanel -- > <asp:rolegroup Roles="Administrator"> <ContentTemplate> <asp:hyperlink ID="HyperLink27" runat="server" NavigateUrl="~/admin/Test.aspx" Text="admin"> </asp:hyperlink> </ContentTemplate> </asp:rolegroup> </RoleGroups> </asp:loginview> a. Anonympanel Anonympanel er laget for anonyme brukere. De har tilgang til en brokdel av data og funksjoner som finnes i systemet. Anonympanel gir mulighet til anonyme brukere til å registrere seg på systemet og få tilgang til data som ikke er begrenset for dem. Anonympanelet skjuler andre paneler i seg og brukeren ser ikke det som står bak i koden. Hvis man ser på kildekoden som er kjørt av en nettleser kan man bare se koden som står bak den delen som er tilgjengelig for anonyme brukere. b. Medlemspanel Produktdokumentasjon 64

68 Medlemspanel er spesiell laget for medlemmer. Medlemspanel gir mulighet til medlemmer som er identifiserte av systemet for å bruke ekstra mer funksjonalitet som anonyme brukere ikke har tilgang til. Medlemmer kan bruke medlemspanel for å lese informasjon om andre medlemmer, lese og skrive melding til andre medlemmer via chatprogrammet, skrive og redigere artikkel i blogprogrammet og søke etter medlemmer i databasen. Medlemspanel er unik både i norsk og kurdisk delen av systemet. c. Administratorpanel Administratorpanel er spesiell laget for administrator for å administrere systemet. Administrator har fullkontroll over hele systemet. Hun/Han har all rettighet i panelet til å legge til/endre eller slette data i systemet. Det er laget linker i panelet for å utføre enkelte opperasjoner. Panelet er selvforklarende og trenger ikke forkunnskaper i data. Systemet klarer å laste opp/publisere filer og data og ingen mulighet for å bruke tagger i tekstfelter eller adresselinje for å gjøre opperasjoner. Administrator kan utføre alle mulige opperasjoner som finnes i systemet via få enkelte klikker. Vårt produkt klarer å lese både linje skift og mellomrom i tekstfeltene og problemet med å skrive html tager for å få linje skift i oppdatering av tekst finnes ikke i systemet. YXD- Administratorspanel er trygd og svært brukervennlig. 5.4 Kurdiske sider YXD-Kurdistansystem gir brukere mulighet til å bruke alle tilgjengelige data i kurdiske delen av nettsiden. Vi har valgt å bruke Unikurd web som er standard i kurdiske datamiljøet. Systemet støtter kurdisk språk og brukere kan lese og skrive fra høyre til venstre side uten feil. Alle meldinger, tekstbokser, knapper, labler og andre datafelter viser kurdiske bokstaver. Det er enkelt å flytte fra hver enkelt kurdiske side til norske sider. Brukere kan bevege seg innen tilgjengelige område i systemet. Oppdatering av kurdiske sider skjer via administratorpanel i kurdisk del av systemet. Tekster som blir lagt inn i databasen via administratorpanelet blir vist senere akkurat med samme innstillinger som har vært før. Vi vet at mange nettsider sliter med å publisere tekst med samme innstilling som teksten hadde før innleggingen. Vi har laget en classe i App_Code katalogen med bare en linje som returnerer tekst med linjeskift når blir oppdaget av systemet. HttpContext.Current.Server.HtmlEncode(body).Replace (System.Environment.NewLine.ToString(), "<br/>"); Slik vi har unngått å legge en hau av tekstlinjer opp I hverandre uten linjeskift og linjeavstand. Vi har brukt Unikurd peshiw Font for alle kurdiske knapper og linker. Fonten har en annen utseende og farge enn Unikurd web. Slik kan brukere skille mellom vanlige tekst og linker. Produktdokumentasjon 65

69 Vi har laget en norsk-kurdisk ordbok som er tilgjengelig for alle typer brukere i hele systemet. Logg inn system i den delen av systemet er på kurdisk og alt kommunikasjon forgår på kurdisk. Vi har lagt inn avis funksjon i systemet. Funksjonen er tilgjengelig for all brukere. Organisasjonen trykker ut avis hver måned. PDF/HTML versjonen blir tilgjengelig her i systemet. YXD-Kurdistan samarbeider med Det Kurdiske Ungdomsforbundet i Norge og PDKI og deres aviser blir publisert i YXD-Kurdistan nettside. Administratoren kan laste opp filer og publisere reklametekst for aviser bare med få klikk. 5.5 Tilgang Det er noen kataloger med begrenset tilgang i systemet. Det betyr at bare en type bruker har tilgang til katalogen og ikke alle. Filer i slike kataloger blir utilgjengelig for uvedkommende. Vi har lagt inn en web.config fil i katalogen og syrer vi tilgang gjennom config filen. Systemet er trygd fordi en bruker blir flere ganger sjekket før brukeren kommer til katalogen. Brukeren må logge seg inn eller får han ikke se linker som fører brukeren til katalogen. I neste runde blir brukeren sjekket i selve katalogen om brukeren er virkelig i riktig rolle eller blir nektet tilgang. Det gjør at organisasjonen kan stole på systemet og kan bruke det trygd. Produktdokumentasjon 66

70 6 Funksjoner 6.1 Blogg En blogg er en funksjon for en bruker til å publisere artikler. YXD-Kurdistan gir mulighet til medlemmer til å skrive og publisere artikkel og eventuell redigere eller slette eksisterende meldinger i systemet. Alle brukere kan lese blogg artikler. Blogg applikasjonen er ikke komplisert men en sikkert program i systemet. Vi har brukt samme database ASPNETDB og ASP.NET 2.0 s Membership system som er en standard metode for å administrere medlems kontoer. <membership defaultprovider="blogenginemembershipprovider"> <providers> <add name="blogenginemembershipprovider" type="system.web.security.sqlmembershipprovider" applicationname="myblogengine" connectionstringname="localsqlserver" minrequiredpasswordlength="6" minrequirednonalphanumericcharacters="0" /> </providers> </membership> Applikasjonsnavn er MyBlogEngine og den gjør at applikasjonen blir identifisert i alle deler av systemet. ConnectionString peker på ASPNETDB.MDF databasen. BlogEntries tabell er beskrevet over i database avsnittet. Vi har brukt DataSet som gir mulighet til å designe blog tabellen i databasen og gjør lettere å kommunisere med databasen. Hver DataSet er bygget opp av flere DataTable som hver av dem representerer en tabell i databasen. Hver DataTabel inkluderer en TableAdapter som gir mulighet til å lage metoder (Insert, update delete) som virker mellom DataTable og databasen. For å lage metoder for DataTable man kan høyre klikke på DataTable og velger Configure: Choose database: ASPNETDB Produktdokumentasjon 67

71 Choose a Command Type: Create new stored proscedures Generate the stored procedure. SELECT blogentryid, Subject,Body, DatePosted, UserId FROM BlogEntries be ORDER BY DatePosted DESC Create the Stored Procedures Produktdokumentasjon 68

72 Choose Methods to Generate Fill a DataTable, Method name: FillBlogEntries Returen a DataTable GetblogEntries Syste steg klikker vi Finish Vi har laget vår DataTable(BlogEntries) i vår DataSet som inneholder TableAdapter(BlogEngineTableAdapters.BlogEntriesTableAdapter) TableAdapteren har føgende metoder: GetBlogEntries, Insert, Update og delete. Vi har lagt to andre metoder i TableAdapteren vår: GetBlogEntry(blogEntryID), GetblogEntriesByUser(userID). Bloggfiler: Filer som er tilgjengelig for alle: Blog_default.aspx, blog_entry.aspx, blog.aspx. Filer som er tilgjengelig bare for medlemmer: Users/Default.aspx, Users/NewEntry.aspx. Alle brukere kan lese blog artikler men bare medlemmer kan skrive til blogen eller endre på eksisterende artikkel i blogen. 6.2 Chat Produktdokumentasjon 69

73 Chat funksjonen er en fri program på nettet som vi har integrert programmet i vårt system slik at den ble en del av systemet. Vi har endret på koden og lagt inn nye metoder i applikasjonen. 6.3 Søk Søkefunksjonen er delt i forskjellige deler. Noen del av søket er tilgjengelig for vanlige brukere men søk etter medlemsinformasjon er spesiell og medlammer og administrator har tilgang til funksjonen. Teknikken er slik at vi har laget en class i App_Code katalogen med navnet:kodesok.cs som virker som motor for søke funksjonen. På neste side ser dere et eksempel av koden. public static DataTable soker(string ord) { // Query Produktdokumentasjon 70

74 string sql select * from News where Tittel='" + ord + "'" + "or Ingress='" + ord + "' or LinkInfo='" + ord + "' or Forfatter='" + ord + "'"; // Pass connection string to connection // SqlConnection conn = new SqlConnection(connString); SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[ "ASPNETDBConnectionString"].ConnectionString); String klikk = ""; DataTable schema = new DataTable(); try { conn.open(); SqlDataAdapter da = new SqlDataAdapter(); da.selectcommand = new SqlCommand(sql, conn); //Create and fill dataset DataSet ds = new DataSet(); da.fill(ds, "News"); //Get data table reference schema = ds.tables["news"]; } catch (Exception er) { } finally { conn.close(); } return schema; }//End of method soker******************************* Metoden mottar string parameteren ord som er et søkeord. SQL query er skrevet og her kalte vi sql. Vi har opprettet kontakten med databasen via Connectionstring YXDDBConnectionString er definert i web.config filen. DataTable, SqlDataAdapter og Dataset blir opprettet. Etter at Queyen er kjørt i databasen DataTable blir returnert som retur verdi. Nå trenger vi en aspx og aspx.cs Class for å hente DataTable som ble returnert av metoden i klassen KodeSok. Nå åpner vi SearchNews.aspx og SearchNews.asp.x.cs. i Cs filen har vi en metode som mottar søke ordet ord. Se koden på neste side..public void hent(string ord) { DataTable schema = SO.KodeSok.soker(ord); int i = 1;String lenke = ""; Produktdokumentasjon 71

75 // Display info from each row in the data table. // Each row describes a column in the database table. foreach (DataRow row in schema.rows) { foreach (DataColumn col in schema.columns) { HtmlTableRow tr = new HtmlTableRow(); HtmlTableCell tc1 = new HtmlTableCell(); HtmlTableCell tc2 = new HtmlTableCell(); tc1.id = "tc" + i; tc2.id = "tc2" + i; if (col.columnname.equals("id")) { lenke = (String)row[col].ToString(); tc2.controls.add(new LiteralControl( "<a href='../yxdhome/nyhetsinnhold.aspx?id=" + lenke + "'>Link til mer informasjon</a> )); } if (col.columnname.equals("tittel")) { tc2.controls.add(new LiteralControl( "Tittel = " + row[col] + "")); } tr.id = "tr" + i; tr.controls.add(tc2); tabell.rows.add(tr); i++; } } }// DataTable er opprettet. Vi har brukt html skjema for å gå gjennom DataTable og hente ut data som er funnet av queryen. To if setninger er lagt inn. Den første finner Nyhets Iden og href sender brukeren til../yxdhome/nyhetsinnhold.aspx?id=******** der ID er lik lenke (er funnet i databasen). Den andre if setningen finer tittelen til nyheten. På slutten av koden legger vi alle html rader som er funnet inne i tabell med koden: tabell.rows.add(tr) tabell er en html tabell og ligger i SearchNews.aspx siden. Her er koden: <table id="tabell" runat="server" border="0" style="font-size:10pt; color:black; font-family:unikurd web;" bgcolor="#dce8e6"> </table> På den måten alle resultater blir skrevet ut som linker. Det er lik teknikk som vi brukte i alle andre søkefunksjoner. Bilde av søkefunksjonen: Produktdokumentasjon 72

76 6.4 Innlegging av data Vi har mange sider med innlegging av data i databasen, her presentrer vi bare et eksempel som likner på de andre. Vi brukte samme funksjon med litt endring i kurdiske delen av systemet. Vi velger å definere legg inn nyhetsfunksjonen. Funksjonen her et skjema hvor kan ta imot data og sender videre til systemet. Under ser der et bilde av skjemaet: Nederst på sida ser dere to radioknapper hvor man kan velge publiserings periode. Under ser dere bilde av de datafeltene hvis man har tykket på Angi periode radioknappen. Produktdokumentasjon 73

77 Det er mulighet for å legge inn bilde på nyhetssiden. Under ser dere et bilde av opplastningsvinduet. Administratoren har mulighet til å legge inn link til andre kilder på nettet hvis det er ønskelig. Administrator har ikke mulighet til å skrive html tager fordi systemet aksepterer ikke tagging. Alle mellomrom og linjeskift blir lest av systemet når innloggingen vellykket. Vi har tatt hensyn til administrator som ikke har forkunnskaper i data derfor laget vi en brukervennlig og enkelt Innleggingsfunksjoner. Under forklarer vi teknikken: Filen LeggTilNyheter.aspx.cs tar imot data fra administratoren. Det er opp til administratoren om hun/han skal velge publiseringsperiode eller ikke. Radioknappene gir mulighet til at man velger periode eller ikke, her er koden både i aspx og aspx.cs siden: <table border="0" cellpadding="0" cellspacing="0"> <tr> <td> <asp:radiobutton ID="uendeligRadioButton" runat="server" AutoPostBack="true" GroupName="publiseringsperiode" Produktdokumentasjon 74

78 Text="Uendelig" /><br /> </td> <td> <asp:radiobutton ID="angiPeriodeRadioButton" runat="server" AutoPostBack="true" GroupName="publiseringsperiode" Text="Angi periode" /><br /> </td> </tr> </table> if (uendeligradiobutton.checked == true) { fralabel.visible = false; tillabel.visible = false; fradagdropdownlist.visible = false; framaaneddropdownlist.visible = false; fraaardropdownlist.visible = false; tildagdropdownlist.visible = false; tilmaaneddropdownlist.visible = false; tilaardropdownlist.visible = false; } else { fralabel.visible = true; tillabel.visible = true; fradagdropdownlist.visible = true; framaaneddropdownlist.visible = true; fraaardropdownlist.visible = true; tildagdropdownlist.visible = true; tilmaaneddropdownlist.visible = true; tilaardropdownlist.visible = true; } Vi har brukt DropDownList i.aspx siden for å velge dato. Her er et eksempel kode: <asp:dropdownlist ID="fraAarDropDownList" runat="server"> <asp:listitem Value="">ÅÅÅÅ</asp:ListItem> <asp:listitem>2007</asp:listitem> <asp:listitem>2008</asp:listitem> <asp:listitem>2009</asp:listitem> <asp:listitem>2010</asp:listitem> </asp:dropdownlist> For å laste opp filer brukte vi et asp.net objekt (FileUpload) her er koden: <asp:fileupload ID="FileUpload1" runat="server" Width="300px" /> Etter at administratoren har klikket på knappen, metoden Button1_Click i LeggTilNyhet.aspx.cs blir kalt og kjørt av serveren. Under ser dere en kopi av metoden: protected void Button1_Click(object sender, EventArgs e) { // Setter datoen og tiden når knppen trykkes String datostempel = DateTime.Now.ToString(); // Henter verdier for publiseringsperiode fra DropDown-listene String fradag = fradagdropdownlist.selecteditem.value; String framaaned = framaaneddropdownlist.selecteditem.value; Produktdokumentasjon 75

79 String fraaar = fraaardropdownlist.selecteditem.value; String tildag = tildagdropdownlist.selecteditem.value; String tilmaaned = tilmaaneddropdownlist.selecteditem.value; String tilaar = tilaardropdownlist.selecteditem.value; String fradato = ""; String tildato = "1/1/2999"; int antall = Int32.Parse("0"); // Hvis det ikke ble valgt en verdi fra en av DropDown-listene // vil dato-strengene forbli tomme, // ellers settes verdiene sammen i strengene fradato og tildato if (!(fradag.equals("") framaaned.equals("") fraaar.equals("") tildag.equals("") tilmaaned.equals("") tilaar.equals(""))) { fradato = framaaned + "/" + fradag + "/" + fraaar; tildato = tilmaaned + "/" + tildag + "/" + tilaar; } // Tester om det finnes noe i tekstfeltet for opplasting av // bilder if (FileUpload1.HasFile == true) { // Setter hele destinasjonsstien på serveren og lagrer // filen String filepath = Server.MapPath("~/bilder/nyheter/" + FileUpload1.FileName); FileUpload1.SaveAs(filePath); String DB_FilePath = "~/bilder/nyheter/" + FileUpload1.FileName; // Kall på metoden oppdaternyhet i App_Code/KodeDal.cs DAL.KodeDAL.oppdaterNyhet(Tittel.Text, Ingress.Text, Nyhet.Text, DB_FilePath, datostempel, fradato, tildato,antall,linkinfo.text,forfatter.text); // Fjerner tekst fra tekstfeltene og tekstområdene Tittel.Text = ""; Ingress.Text = ""; Nyhet.Text = ""; LinkInfo.Text = ""; Forfatter.Text = ""; } else { // Sender tekst til databasen DAL.KodeDAL.oppdaterNyhet(Tittel.Text, Ingress.Text, Nyhet.Text, "0", datostempel, fradato, tildato, antall, LinkInfo.Text, Forfatter.Text); // Fjerner tekst fra tekstfeltene og tekstområdene Tittel.Text = ""; Ingress.Text = ""; Nyhet.Text = ""; LinkInfo.Text = ""; Forfatter.Text = ""; } }//*************************************************** FileUploade lagrer bildefilen i katalogen "~/bilder/nyheter/" og URLen som en string i databsen. Hvis alt går bra så serveren gjør en kal på metoden oppdaternyhet i ~/App_Code/KodeDal.cs filen. Her skal vi se litt nærmere på metoden oppdaternyhet. Metoden tar imot data via parameterfelter, legger inn data i SQL QUERYen, tar kontakt med databasen og legger inn data i hver celle i News tabellen i databasen. Produktdokumentasjon 76

80 public static int oppdaternyhet(string Tittel, String Ingress, String Nyhet, String Bilde, String Dato_innlegging, String Dato_publisering, String Dato_slutt, int AntallBes, String LinkInfo, String Forfatter) { //får inn dagensdato. Dato_innlegging = DateTime.Today.Date.ToString(); String query INSERT INTO [News] (Tittel, Ingress, Nyhet, Bilde, Dato_innlegging, Dato_publisering, Dato_slutt, AntallBes, LinkInfo, Forfatter) @Forfatter) "; using (SqlConnection myconnection = new SqlConnection(ConfigurationManager.ConnectionStrings[ "ASPNETDBConnectionString"].ConnectionString)) { myconnection.open(); using (SqlCommand mycommand = new SqlCommand(query, myconnection)) { mycommand.parameters.addwithvalue("@tittel", Tittel); mycommand.parameters.addwithvalue("@ingress", Ingress); mycommand.parameters.addwithvalue("@nyhet", Nyhet); mycommand.parameters.addwithvalue("@bilde", Bilde); mycommand.parameters.addwithvalue("@dato_innlegging", Dato_innlegging); mycommand.parameters.addwithvalue("@dato_publisering", Dato_publisering); mycommand.parameters.addwithvalue("@dato_slutt", Dato_slutt); mycommand.parameters.addwithvalue("@antallbes", AntallBes); mycommand.parameters.addwithvalue("@linkinfo", LinkInfo); mycommand.parameters.addwithvalue("@forfatter", Forfatter); mycommand.executenonquery(); mycommand.commandtext = } } return -1; } // End of OppdaterNyhet 6.5 Redigering av eksisterende data Vi har valgt å bruke ASP koder uten C# i redigerings funksjoner. De fleste redigeringsfunksjonene ligner på hverandre bortsett fra det som vi har brukt DetailsView i noen og GridView i den andre. Funksjonaliteten er nesten samme men måten å vise data på er forskjellige. Her skal vi se på RedigerMedlem.aspx filen. Under ser dere et bilde av selve siden som er kjørt via Internet Explorer: Produktdokumentasjon 77

81 Administratoren kan skrive inn nye data direkte i feltene og klikke på Update knappen for å oppdatere databasen. Administratoren kan slette hele raden i databasetabellen vi å klikke på Delete knappen som ikke er vist i bilde over. Nå skal vi kikke på en bit av ASP-koden som står bak funksjonen. <asp:detailsview ID="DetailsView1" runat="server" AllowPaging="True" AutoGenerateRows="False" CellPadding="4" DataKeyNames="MedlemsID" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" Height="50px" Produktdokumentasjon 78

82 Width="125px" Font-Names="Unikurd web"> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <CommandRowStyle BackColor="#D1DDF1" Font-Bold="True" /> <EditRowStyle BackColor="#2461BF" /> <RowStyle BackColor="#EFF3FB" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <Fields> <asp:boundfield DataField="MedlemsID" HeaderText="MedlemsID" InsertVisible="False" ReadOnly="True" SortExpression="MedlemsID" /> <asp:boundfield DataField="Navn" HeaderText="Navn" SortExpression="Navn" /> <asp:boundfield DataField="Etternavn" HeaderText="Etternavn" SortExpression="Etternavn" /> <asp:boundfield DataField="EPost" HeaderText="EPost" SortExpression="EPost" /> <asp:boundfield DataField="Linje" HeaderText="Linje" SortExpression="Linje" /> <asp:boundfield DataField="Universitet" HeaderText="Universitet" SortExpression="Universitet" /> <asp:boundfield DataField="Adresse" HeaderText="Adresse" SortExpression="Adresse" /> <asp:boundfield DataField="Ansvar" HeaderText="Ansvar" SortExpression="Ansvar" /> <asp:boundfield DataField="Stilling" HeaderText="Stilling" SortExpression="Stilling" /> <asp:boundfield DataField="Mobil" HeaderText="Mobil" SortExpression="Mobil" /> <asp:boundfield DataField="Telefon" HeaderText="Telefon" SortExpression="Telefon" /> <asp:boundfield DataField="VisProfil" HeaderText="VisProfil" SortExpression="VisProfil" /> <asp:boundfield DataField="Bilde" HeaderText="Bilde" SortExpression="Bilde" /> <asp:boundfield DataField="RegistreringsDato" HeaderText="RegistreringsDato" SortExpression="RegistreringsDato" /> <asp:commandfield ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" /> </Fields> <FieldHeaderStyle BackColor="#DEE8F5" Font-Bold="True" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <AlternatingRowStyle BackColor="White" /> </asp:detailsview> Over ser vi en asp:detailsview med filter og properties for datafeltene. Vi har brukt SqlDataSource for å kommunisere med databasen Connectionstringen er ASPNETDBConnectionString. Query stringene blir skrevet enten på hånd eller via å velge knapper på Visual Studio 2005 men koden under blir gerert automatisk av Visual Studio. DeleteCommand = " DELETE FROM [Medlem] WHERE [MedlemsID] AND [Navn] Produktdokumentasjon 79

83 AND [Etternavn] AND [EPost] AND [Linje] AND [Universitet] AND [Adresse] AND [Ansvar] AND [Stilling] AND [Mobil] AND [Telefon] AND [VisProfil] AND [Bilde] AND [RegistreringsDato] " InsertCommand = " INSERT INTO [Medlem] ([Navn], [Etternavn], [EPost], [Linje], [Universitet], [Adresse], [Ansvar], [Stilling], [Mobil], [Telefon], [VisProfil], [Bilde], [RegistreringsDato]) " OldValuesParameterFormatString = "original_{0}" SelectCommand = " SELECT [MedlemsID], [Navn], [Etternavn], [EPost], [Linje], [Universitet], [Adresse], [Ansvar], [Stilling], [Mobil], [Telefon], [VisProfil], [Bilde], [RegistreringsDato] FROM [Medlem] ORDER BY [Navn] " UpdateCommand = " UPDATE [Medlem] SET [Navn] [Etternavn] [EPost] [Linje] [Universitet] [Adresse] [Ansvar] [Stilling] [Mobil] [Telefon] [VisProfil] [Bilde] [RegistreringsDato] WHERE [MedlemsID] AND [Navn] AND [Etternavn] AND [EPost] AND [Linje] AND [Universitet] AND [Adresse] AND [Ansvar] AND [Stilling] AND [Mobil] AND [Telefon] AND [VisProfil] Det blir generert parameter både for Insert, Select og Update kommandoer. Her ser vi bare på InsertParameters for å spare litt plass. De er nesten like men identifikasjonsnavnene er forskjellige. Produktdokumentasjon 80

84 <InsertParameters> <asp:parameter Name="Navn" Type="String" /> <asp:parameter Name="Etternavn" Type="String" /> <asp:parameter Name="EPost" Type="String" /> <asp:parameter Name="Linje" Type="String" /> <asp:parameter Name="Universitet" Type="String" /> <asp:parameter Name="Adresse" Type="String" /> <asp:parameter Name="Ansvar" Type="String" /> <asp:parameter Name="Stilling" Type="String" /> <asp:parameter Name="Mobil" Type="String" /> <asp:parameter Name="Telefon" Type="String" /> <asp:parameter Name="VisProfil" Type="String" /> <asp:parameter Name="Bilde" Type="String" /> <asp:parameter Name="RegistreringsDato" Type="DateTime" /> </InsertParameters> Aspx siden kommuniserer direkte med databasen og SQL QUERYer blir direkte utført. 6.6 Registrering Registreringsfunksjonen gir mulighet til brukere for å registrere seg på systemet. Funksjonen er tilgjengelig på to språk kurdisk og norsk. Brukere må fylle inn alle tekstfelter for å kunne sende skjema til databasen. For hindre spam har vi lagt inn en antispam funksjon som hindrer spaming av nettroboter. Vi har lagt inn asp:requiredfieldvalidator for å evaluere input fra brukeren. E-post tekstfeltet blir spesielt evaluert. Vi skal legge merke til at funksjonen er samme i kurdiske delen men alle tekster i tekstfelter, knapper og valideringsmeldingene er det på kurdisk. Her er koden for e-post evaluering: <asp:textbox ID="EPost" runat="server" Width="161px"></asp:TextBox> <asp:requiredfieldvalidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="EPost" Display="Dynamic" EnableClientScript="False" ErrorMessage="E-post adresse mangler!" SetFocusOnError="True" ValidationGroup="Contact">* </asp:requiredfieldvalidator> <asp:regularexpressionvalidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="EPost" Display="Dynamic" EnableClientScript="False" ErrorMessage="Skriv inn riktig e-post adresse!" SetFocusOnError="True" ValidationExpression= "\w+([+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ValidationGroup="Contact">* </asp:regularexpressionvalidator> Vi har brukt samme teknikk i C# koden som er forklart over i avsnitt 6.4 INNLEGGING AV DATA med en forskjell i antispam koden som blir forklart her. Antispam: Antispam programmet er en fri applikasjon på nett som ble integrert i YXD-Kurdistan system. Under ser der koden som er lagt inn i aspx siden: <Captcha:CaptchaControl runat="server" ID="captcha" ValidationGroup="Contact" MessageError="Feil Anti-Spam kode!" /><br /> <asp:textbox ID="CodeNumberTextBox" runat="server"></asp:textbox> <asp:label ID="MessageLabel" runat="server" Visible="false" Width="105px"> Produktdokumentasjon 81

85 </asp:label> Captcha er en egendefinert properties som er lagt inn i web.config filen under rootkatalogen. PROPERTY en pekker på NAMESPACEen CaptchImage i systemet. Her er koden: <pages enableeventvalidation="false"> <controls> <add tagprefix="captcha" namespace="captchaimage" assembly="captchaimage"/> </controls> </pages> Koden for antispam i aspx.cs filen ser dere under og er kommentert med grønn farge. // Genereing av random. private Random random = new Random(); private void Page_Load(object sender, System.EventArgs e) { if (!this.ispostback) { Produktdokumentasjon 82

86 } // Genererer en randomkode og lagrere det I Session // objektet. this.session["captchaimagetext"] = GenerateRandomCode(); } else { // Evaluerer input fra brukeren if (this.codenumbertextbox.text == this.session["captchaimagetext"].tostring()) { // Viser informasjonsmelding this.messagelabel.cssclass = "info"; this.messagelabel.text = "Correct!"; } else { // Viser en feilmelding this.messagelabel.cssclass = "error"; this.messagelabel.text = "ERROR: ikke riktig, prøve på nytt."; // Sletter input og genererer en ny kode this.codenumbertextbox.text = ""; this.session["captchaimagetext"] = GenerateRandomCode(); } } //Returnerer en string av seks random siffer private string GenerateRandomCode() { string s = ""; for (int i = 0; i < 6; i++) s = String.Concat(s, this.random.next(10).tostring()); return s; } Vi har laget en IFsetning i SubmitButton_Click metoden. IFsetninger sier hvis siden er korrekt så gå severen videre eller brukeren får feilmelding. Antispamfunksjonen har to filer i bin katalogen: 1. CaptchaImage.dll 2. CaptchaImage.pdb. Etter at informasjonen evaluert, blir en kal på metoden LeggeTilMedelem i klassen kodedal.cs. // Sender tekst til databasen DAL.KodeDAL.LeggeTilMedelem(Navn.Text, Etternavn.Text, Adresse.Text, Universitet.Text, Linje.Text, EPost.Text, Telefon.Text, Mobil.Text, Stilling.Text, Ansvar.Text, datostempel, "0", "Nei"); Metoden LeggeTilMedelem tar imot data via parameterne og legger til i Medlem tabellen i ASPNETDB databasen. Registreringsmetoden er det slik at innsendte data blir sjekket av administratoren og i tilfelle godkjennelse medlemsprofil blir opprettet av administrasjonen. Dersom innsendte data var falsk, blir alt slettet i god tid. Slik vi unngår spamregistrering av uønskede brukere og på den måten styrker vi sikkerhet til systemet. Produktdokumentasjon 83

87 Opprette medlemsprofil Når administrasjonen har godkjent innsendte data fra brukeren, klikker hun/han på linken Lage medlemsprofil og oppretter profil for registrerte medlem. Administratoren sender kontoinformasjon til ny registrerte medlem. Ny registrerte medlem kan logge seg inn på systemet med brukernavn og passord som er sendt av administratoren. Det nye medlemmet kan endre på sin konto info rett etter hun/han har logget seg inn på systemet. Bruker administrator er en side hvor administrator kan aktivere, deaktivere medlem, legge til eller fjerne en rolle til brukeren, og slette brukeren. Til høyre i siden har vi en GridView med pagesize lik 7 som viser alle registrerte brukere i databasen. Administrator kan skrive inn brukernavn i tilhørende felt og velge ønskede opprasjon. Panelet vil bli utviklet enda mer inntil prosjektet blir presentert. Under ser dere koden for aktivering og deaktivering av brukeren. bruker = brukernavn.text; MembershipUser user = Membership.GetUser(bruker); if (Deaktiver.Checked == true) { user.isapproved = false; Membership.UpdateUser(user); } else if(aktiver.checked == true) { user.isapproved = true; Membership.UpdateUser(user); } Produktdokumentasjon 84

88 For sletting av brukere måtte vi slette først brukeren fra BlogEntries tabell som har relasjon med asp tabeller. Under ser dere teknikken for å slette brukeren fra BlogEntries tabell. Koden er i klassen: App_Code/KodeDAL.cs. public static void SlettBlog( String usr) { // prepare command string string deletestring DELETE FROM BlogEntries WHERE EXISTS (select * from aspnet_users where BlogEntries.UserId = aspnet_users.userid and aspnet_users.username='" + usr + "');"; SqlConnection myconnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ASP NETDBConnectionString"].ConnectionString); try { myconnection.open(); SqlCommand mycommand = new SqlCommand(deleteString, myconnection); // 4. Call ExecuteNonQuery to send command mycommand.executenonquery(); } finally { // Close the connection if (myconnection!= null) { myconnection.close(); } } } // slettblog Koden som gjør først kall på metoden over og sletter medlem fra asp tabeller ser dere her: protected void Slett_Click(object sender, EventArgs e) { String medlem = brukernavn.text; DAL.KodeDAL.SlettBlog(medlem); Membership.DeleteUser(medlem); brukernavn.text = ""; } Her fjerner vi rolle fra en medlem. protected void FjernRole_Click(object sender, EventArgs e) { bruker = brukernavn.text; if (FjernAdmin.Checked == true) role = "Administrator"; else Produktdokumentasjon 85

89 } if (FjernMedlem.Checked == true) role = "Medlem"; Roles.RemoveUserFromRole(bruker, role); brukernavn.text = ""; 6.7 Login Loginfunksjonen er standard og sikkert og gir mulighet til å identifisere medlemmer. Vi har brukt login objektet fra asp.net 2005 med databasen og relasjoner. Login systemet er standard og testet mot alle mulige sitasjoner. Login grensesnittet gir mulighet til medlemmer som har glemt passord til å sende passordet per e-post til registrerte e-postadressen i systemet. Det er mange databasetabeller som er knyttet til login grensesnittet som er forklart i DATABASE avsnittet. Under ser dere bilde av login vinduet (kurdisk): Glemt passord vindu (norsk): 6.8 Ordbok Ordboken gir mulighet til alle brukere som besøker siden til å søke og oversette ord fra norsk til kurdisk. Funksjonen er tilgjengelig over hele systemet og alle typer bruker kan ta nytte av funksjonen. Under ser bilde av ordbok vinduet: Produktdokumentasjon 86

90 Vi har lagt kilde koden i MASTERPAGEer for at funksjonen skal være tilgjengelig hele tiden. På neste side er koden for aspx delen: <!-- OrdbokPanel --> <table border="0" cellpadding="10" cellspacing="0" width="100%;"> <tr> <td> <table class="panel" border="0" cellpadding="0" cellspacing="0"> <tr> <td class="paneltitle"> Produktdokumentasjon 87

91 <asp:label ID="Label5" runat="server" Font-Names="Unikurd peshiw" Font-Size="small" <"وشه ی نبانه هه"= Text </asp:label> </td> </tr> <tr> <td class="panelborder"> <table border="0" cellpadding="10" cellspacing="0"> <tr> <td align="center"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td> <asp:textbox ID="Norsk" runat="server"> </asp:textbox><br /> </td> </tr> <tr> <td align="center"> <asp:button ID="Kurdisk" runat="server" Font-Names="Unikurd peshiw" "رگ ان وه"= Text Font-Size="small" OnClick="Kurdisk_Click" /> </td> </tr> <tr> <td style="padding-top:10px;"> <table id="tabell" runat="server" border="0" style="font-size:10pt; color:black; font-family:unikurd web;" bgcolor="#ccdce4" align="center"> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> <!-- /OrdbokPanel --> C# koden for ordboken ser slik ut: protected void Kurdisk_Click(object sender, EventArgs e) { hent(norsk.text); } public void hent(string ord) { Produktdokumentasjon 88

92 DataTable schema = DAL.KodeDAL.ordsok(ord); int i = 1; } // Viser informasjon fra hver rad i daatatable // hver rad er en kolonne I database tabellen foreach (DataRow row in schema.rows) { foreach (DataColumn col in schema.columns) { HtmlTableRow tr = new HtmlTableRow(); tr.id = "tr" + i; HtmlTableCell tc = new HtmlTableCell(); tc.id = "tc" + i; tc.controls.add(new LiteralControl(row[col] + "")); tr.controls.add(tc); tabell.rows.add(tr); i++; } } Søkeord blir fanget av tekstboksen i aspx koden, via en kal i Kurdisk_Click metoden sender vi søke ordet videre. Metoden hent(***) virker som en motor for søkefunksjonen, fordi metoden både sender søke ordet videre til DAL.KodeDAL.ordsok i App_code katalogen, mottar en DataTable, og tilsutt legger ut verdiene på en HTML tabell I aspx siden. Metoden går gjennom mottatte datatable rad for rad og legger ut verdiene på html tabellen. Nå skal vi se på metoden ordsok(string ord) i App_Code/KodeDAL. Metoden mottar en String og returnerer en DataTable. Metoden lager en SQL QUERY og legger inn søkeordet i QUERYen. ConnectionStringen er den samme som er satt inn i web.config filen. Metoden kontakter databasen via ConnectionStringen og slik som vi ser uner returnerer tilslutt en datatable (forts. på neste side). public static DataTable ordsok(string ord) { // Query string sql select Kurdisk, Nforklaring from Ordbok where Norsk ='"+ord+"' "; // Pass connection string to connection // SqlConnection conn = new SqlConnection(connString); SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[ "YXDDBConnectionString"].ConnectionString); String klikk = ""; DataTable schema = new DataTable(); try { conn.open(); SqlDataAdapter da = new SqlDataAdapter(); da.selectcommand = new SqlCommand(sql, conn); Produktdokumentasjon 89

93 //Create and fill dataset DataSet ds = new DataSet(); da.fill(ds, "Ordbok"); //Get data table reference schema = ds.tables["ordbok"]; } catch (Exception er) { } finally { conn.close(); } return schema; }//End of method ordsok******************************* 6.9 Mail Mail systemet fungerer slik at når brukeren har klikket på glemt passord linken, får brukeren spørsmål hvis svar på spørsmålet er riktig så en e-post med kontoinformasjon blir sendt til brukeren. Funksjonen er en innebygd asp.net funksjon. Vi har lagt inn en e-postinnstilling i web.configen. koden ser slik ut: <system.net> <mailsettings deliverymethod="network"> <smtp from="asad.fattahi@stud.iu.hio.no"> <network host="mail-out.hio.no" port="587" password="*****" username="s122365" /> </smtp> </mailsettings> </system.net> 6.10 Gjestebok Gjestebok funksjonen gir mulighet til alle type brukere i systemet til å skrive melding til administrasjonen. Teknikken er slik at brukeren skriver og sender meldingen men meldingen blir ikke publisert før administrasjonen godkjenner det. Under ser vi et bilde av gjesteboka: Produktdokumentasjon 90

94 For å hindre spam har vi lagt inn antispam funksjonen i gjesteboka. Antispam funksjonen er forklart over i REGISTRERING avsnittet. Alle tekstfelter blir validert av aps.net validator. Vi har lagt inn to tabeller i databasen for både kurdisk og norsk tekst. Innlegging av data er forklart over i INNLEGING AV DATA avsnittet og her ligner my på det som er forklart. Forskjellen er bare datafeltene er forskjellige. Alle ny meldinger blir lagt inn i databasen uten å vises. For å vise meldinger kan administratoren gå inn i ~/admin/redigergjestebok.aspx for å redigere meldinger. Administratoren må endre VisMelding felttet fra Nei som er default verdi til Vis. Da meldingen blir publisert Hjelp Systemet har to forskjellige hjelpsider for brukere. 1. Adminhjelp 2. Bruker/Medlemshjelp. Adminhjelp gir veiledning til administratoren for å bruke systemet til å oppdatere og redigere data i databasen. Produktdokumentasjon 91

95 Bruker/Medlemshjelp gir mulighet både for brukere og medlemmer til å kunne nytte tilgjengelige funksjoner i systemet. All data er lagt inn i databasen, hjelpesidene inneholder linker til forklaringer. Brukeren kan klikke på linker, systemet viser veiledning på samme side. Bilde av Adminhjelp: Produktdokumentasjon 92

Kravspesifikasjon. 1 Prosjektfakta. Medlemsregister for YXD-Kurdistan. Prosjektnummer: 07 09. Ernad Fajkovic

Kravspesifikasjon. 1 Prosjektfakta. Medlemsregister for YXD-Kurdistan. Prosjektnummer: 07 09. Ernad Fajkovic Kravspesifikasjon 1 Prosjektfakta Prosjekttittel: Medlemsregister for YXD-Kurdistan Prosjektnummer: 07 09 Gruppemedlemmer: Oppdragsgiver: Kontaktperson: Intern veileder: Asad Fattahi Ernad Fajkovic YXD-Kurdistan

Detaljer

Dette dokumentet er en del av en hovedprosjektoppgave ved Høgskolen i Oslo, avdeling for ingeniørutdanning i perioden oktober 2006 mai 2007.

Dette dokumentet er en del av en hovedprosjektoppgave ved Høgskolen i Oslo, avdeling for ingeniørutdanning i perioden oktober 2006 mai 2007. Forord Dette dokumentet er en del av en hovedprosjektoppgave ved Høgskolen i Oslo, avdeling for ingeniørutdanning i perioden oktober 2006 mai 2007. Dokumentet er først og fremst beregnet for sensor, veiledere

Detaljer

Produktrapport. Produktrapport. Hjelpemiddel portal for Parkinsonforbundet

Produktrapport. Produktrapport. Hjelpemiddel portal for Parkinsonforbundet Produktrapport Hjelpemiddel portal for Parkinsonforbundet 1 Innhold: Forord ------------------------------------------------------------------------------------------------------2 Planlegging og arbeidsmetode

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

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

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

Kravspesifikasjon. Aker Surveillance. Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo,

Kravspesifikasjon. Aker Surveillance. Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, Kravspesifikasjon Aker Surveillance Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus Oslo, 12.01.2013 Public 2013 Aker Solutions Page 1 of 7 Table of Contents Forord... 3 Om bakgrunnen... 3 Presentasjon...

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

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

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

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

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren Digitalisering av Sentralen UNG Gründer

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren Digitalisering av Sentralen UNG Gründer Forprosjektrapport Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 207 Digitalisering av Sentralen UNG Gründer Gruppe 34 Kenneth Di Vita Jensen, s236745 Frank Arne Bjørkmann

Detaljer

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

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

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

Kravspesifikasjon Gruppe nr ABTF

Kravspesifikasjon Gruppe nr ABTF 1 Presentasjon Tittel: Web-løsning for ABTF Utvikle en Web-løsning helt fra bunnen av, samt med en Oppgave: plattform som gir underviseren muligheten til å veilede og følge opp sine elever gjennom kurset.

Detaljer

Studentdrevet innovasjon

Studentdrevet innovasjon Studentdrevet innovasjon Hovedprosjekt 2013 Høgskolen i Oslo og Akershus Forprosjektrapport av Gruppe 11 Karoline Sanderengen, Mona Isabelle Yari og Randi Ueland 25.01.2013 Studentdrevet innovasjon 9 Innhold

Detaljer

Hovedprosjekt. Høgskolen i Oslo data/informasjonsteknologi våren 2011 Forprosjektrapport. K-skjema og ferie kalender

Hovedprosjekt. Høgskolen i Oslo data/informasjonsteknologi våren 2011 Forprosjektrapport. K-skjema og ferie kalender Hovedprosjekt Høgskolen i Oslo data/informasjonsteknologi våren 2011 Forprosjektrapport Presentasjon Sted og dato Oslo, Jan 9, 2011 Prosjekt tittel Periode K-skjema og ferie kalender Utvikle et registreringssystem

Detaljer

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie SRD GLIS Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie Innholdsfortegnelse 1. Systemoversikt... 2 2. Tekniske krav... 3 2.1. Funksjonskrav og brukergrensesnitt spesifikasjon... 3 2.2. Begrensninger...

Detaljer

Kravspesifikasjon. 1. Innledning. Presentasjon. Innledning. Om bedriften. Bakgrunn for prosjektet

Kravspesifikasjon. 1. Innledning. Presentasjon. Innledning. Om bedriften. Bakgrunn for prosjektet Kravspesifikasjon Presentasjon Tittel: Oppgave: Backup for PDA/Smartphones Utvikle en applikasjon for PDA/Smartphones med funksjonalitet for backup av sms, mms, e-post, kontakter, kalender, bilder og dokumenter

Detaljer

Dette dokumentet er en produktrapport for vårt avsluttende hovedprosjekt våren 2008 ved høgskolen i Oslo, for ingeniør - avdelingen.

Dette dokumentet er en produktrapport for vårt avsluttende hovedprosjekt våren 2008 ved høgskolen i Oslo, for ingeniør - avdelingen. 1 Sammendrag Dette dokumentet er en produktrapport for vårt avsluttende hovedprosjekt våren 2008 ved høgskolen i Oslo, for ingeniør - avdelingen. Vår oppdragsgiver, ABTF hadde et ønske om en større web

Detaljer

Forprosjektrapport. Presentasjon. Oslo, den 29. Januar Gorm Eirik Svendsen Nicolai Mellbye Marius Auerdahl Per Gustav Løwenborg

Forprosjektrapport. Presentasjon. Oslo, den 29. Januar Gorm Eirik Svendsen Nicolai Mellbye Marius Auerdahl Per Gustav Løwenborg Forprosjektrapport Presentasjon Tittel Bakerman AS Website Oppgave Utvikle ett websted for Bakerman AS der hvor de kan promotere seg selv og kommunisere med kundene sine. Periode 4. Januar 2010 til 17.

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

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

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

1. Introduksjon. Glis 13/02/2018

1. Introduksjon. Glis 13/02/2018 SDP GLIS Espen Buø Innholdsfortegnelse 1. Introduksjon... 2 2. Gruppebeskrivelse og ansvarsområder... 3 3. Risikoanalyse... 4 4. Hardware og softwarekrav for brukeren... 5 5. Behov for prosjektet... 6

Detaljer

Entobutikk 3.TESTRAPPORT VÅR 2011

Entobutikk 3.TESTRAPPORT VÅR 2011 3.TESTRAPPORT VÅR 2011 1 DELKAPITTEL 1 FORORD Denne testrapport er skrevet i forbindelse med vårt hovedprosjekt ved Høgskolen i Oslo, ingeniørutdanning, våren 2011. Rapporten beskriver testingen av hele

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

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie SRD GLIS Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie Innholdsfortegnelse 1. Systemoversikt... 2 2. Tekniske krav... 3 2.1. Funksjonskrav og brukergrensesnitt spesifikasjon... 3 2.2. Begrensninger...

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

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

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

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

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, 24.5.2013. Public 2013 Aker Solutions Page 1 of 5

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, 24.5.2013. Public 2013 Aker Solutions Page 1 of 5 Testrapport Aker Surveillance Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus Oslo, 24.5.2013 Public 2013 Aker Solutions Page 1 of 5 Innledning I denne rapporten vil vi skrive om testingen som

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

Del VII: Kravspesifikasjon

Del VII: Kravspesifikasjon 1 2 Forord Dette dokumentet inneholder retningslinjer for gruppen vår og beskrivelse av betingelsene for utviklingen av vårt prosjekt. Vår gruppe benyttet dette dokumentet som et styringsdokument for å

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

InfoRed Publisering. - produktbeskrivelse. TalkPool WebServices Postboks Åneby

InfoRed Publisering. - produktbeskrivelse.  TalkPool WebServices Postboks Åneby InfoRed Publisering - produktbeskrivelse www.talkpool.no TalkPool WebServices Postboks 90 1484 Åneby InfoRed Produktbeskrivelse 2 Sammendrag InfoRed Publisering er produktet for å administrere en hel informasjonstjeneste,

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

Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008

Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008 Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008 Skrevet av Ole Myrbakken, Fadima Mohamoud, Orji Okoroafor, Karen Arrendondo Side 1 PRESENTASJON Prosjekt tittel: Prosjektperiode: MetaGen 7.jan

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

Use Case Modeller. Administrator og standardbruker

Use Case Modeller. Administrator og standardbruker Vedlegg 1 Use Case Modeller Administrator og standardbruker 2 Use case Logge inn Bruker Bruker ønsker å logge inn Bruker har valgt å logge inn Bruker er logget inn 1. Systemet ber om brukernavn 2. Systemet

Detaljer

Forprosjektrapport For gruppe 20:

Forprosjektrapport For gruppe 20: Forprosjektrapport For gruppe 20: Kevin Johnny Galåen s135768 Ali Emre Yildirim s135573 Danh Tran s141712 Vibeke Askeland s141436 Fullført: 30.01.2009 Table of Contents Forprosjektrapport... 1 For gruppe

Detaljer

HOVEDPROSJEKT I DATA VÅR 2011

HOVEDPROSJEKT I DATA VÅR 2011 PROSJEKT NR. 18 TILGJENGELIGHET åpen Studieprogram: Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo Telefon: 22 45 32 00 Telefaks: 22 45 32 05 HOVEDPROSJEKT I DATA

Detaljer

Forprosjektrapport Gruppe 30

Forprosjektrapport Gruppe 30 Forprosjektrapport Gruppe 30 Gruppemedlemmer: Eyvind Nielsen s177748 Ullvar Brekke s236375 Kristoffer Pettersen s239404 Innhold Presentasjon... 3 Sammendrag... 3 Dagens situasjon... 3 Mål... 3 Rammebetingelser...

Detaljer

Tema: Oversikt over ansatt, rom, datamaskin, skjerm, software, hardvare og tilkoblingsanlegg.

Tema: Oversikt over ansatt, rom, datamaskin, skjerm, software, hardvare og tilkoblingsanlegg. Forprosjektrapport Presentasjon Tittel: Inventardatabase Tema: Oversikt over ansatt, rom, datamaskin, skjerm, software, hardvare og tilkoblingsanlegg. Prosjektperiode: 2/12-08 23/05-08. Prosjektgruppe:

Detaljer

Installere JBuilder Foundation i Windows XP

Installere JBuilder Foundation i Windows XP Installere JBuilder Foundation i Windows XP Installasjon av JBuilder Foundation på Windows (dekker her spesifikt fremgangen ved bruk av Microsoft Windows XP Professional, men det vil mest trolig ikke være

Detaljer

Forprosjektrapport Bacheloroppgave 2017

Forprosjektrapport Bacheloroppgave 2017 Forprosjektrapport Bacheloroppgave 2017 Chat Modul for Webnodes Content Management System Gruppe 32 Adam Asskali, Anmer Seif, Sara Khan 20.01.2017 Veileder G. Anthony Giannoumis Innholdsfortegnelse 1.Presentasjon

Detaljer

Gruppe Forprosjekt. Gruppe 15

Gruppe Forprosjekt. Gruppe 15 Forprosjekt Gruppe 15 Marius Ylven Westgaard - s236797 - Anvendt Datateknologi Lise Janbu Eide - s236361 - Dataingeniør Lavanja Jeyenthiran - s236346 - Dataingeniør Kristian Pedersen - s236728 - Anvendt

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

Styringsdokumenter. Forord

Styringsdokumenter. Forord 8 Styringsdokumenter Forord Dette er en samling av samtlige styringsdokumenter gjennom hele prosjektperioden. Styringsdokumentene er satt opp i rekkefølge i forhold til leveringsfrister Dokumentene ble

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

Forprosjektrapport ElevApp

Forprosjektrapport ElevApp Forprosjektrapport ElevApp Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 2017 Gruppe 14 Mirko Grimm, s236630 Andreas Krutnes, s236656 Japple John Regalario, s236621 Innholdsfortegnelse

Detaljer

Kravspesifikasjon. Forord

Kravspesifikasjon. Forord Kravspesifikasjon Forord Hensikten med en kravspesifikasjon er å gi et overblikk over programmets funksjonalitet og tilleggsfunksjoner, dette vil si både over de som er utviklet før prosjektstart, og de

Detaljer

Kravspesifikasjon Hovedprosjekt ved Høgskolen i Oslo Våren 2008

Kravspesifikasjon Hovedprosjekt ved Høgskolen i Oslo Våren 2008 Kravspesifikasjon Hovedprosjekt ved Høgskolen i Oslo Våren 2008 1.Forord I dette dokumentet skal vi gi et bildet av de kravene som er satt til prosjektet. Dokumentet er hovedsakelig beregnet som et styringsdokument

Detaljer

Institutt for informasjonsteknologi, Høgskolen i Oslo og Akershus, våren Camilla Kaasi(s188070) Roza Moustafa(s188113)

Institutt for informasjonsteknologi, Høgskolen i Oslo og Akershus, våren Camilla Kaasi(s188070) Roza Moustafa(s188113) Forprosjektrapport Gruppe 14 Institutt for informasjonsteknologi, Høgskolen i Oslo og Akershus, våren 2015 Sted: Høgskolen i Oslo og Akershus Dato: 23.01.2015 Tittel: Gruppemedlemmer: Oppgave: Oppdragsgiver:

Detaljer

Brukermanual. Studentevalueringssystem

Brukermanual. Studentevalueringssystem Brukermanual Studentevalueringssystem 1 Forord 1.1 Forord Denne brukermanualen innholder beskrivelse av systemets funksjonalitet og introduserer systemet for brukeren. Brukermanualen er delt inn i tre

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

Installere JBuilder Foundation i Mandrake Linux 10.0

Installere JBuilder Foundation i Mandrake Linux 10.0 Installere JBuilder Foundation i Mandrake Linux 10.0 Installasjon av JBuilder Foundation på Linux (dekker her spesifikt fremgangen ved bruk av Mandrake Linux 10.0, men distribusjon vil gjøre liten eller

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

Gruppe 43. Hoved-Prosjekt Forprosjekt

Gruppe 43. Hoved-Prosjekt Forprosjekt Gruppe 43 Hoved-Prosjekt Forprosjekt Mobil Applikasjon Utvikling HiOA Bacheloroppgave forprosjekt våren 2017 Presentasjon Gruppen består av: Gebi Beshir Ole-Kristian Steiro Tasmia Faruque s182414 s189141

Detaljer

System Dokumentasjon. Team2. Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk

System Dokumentasjon. Team2. Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk System Dokumentasjon Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk System Dokumentsjon 23/04/2018 Systemutvikling og dokumentasjon/ia4412

Detaljer

HOVEDPROSJEKT. Telefon: Telefaks: Studieprogram: Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo. 25.mai 2007.

HOVEDPROSJEKT. Telefon: Telefaks: Studieprogram: Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo. 25.mai 2007. PROSJEKT NR. 2007-16 TILGJENGELIGHET Åpen Studieprogram: Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Telefon: 22 45 32 00 Telefaks: 22 45 32 05 HOVEDPROSJEKT HOVEDPROSJEKTETS TITTEL DATO Panther

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

Entobutikk 4.PROSESSRAPPORT VÅR 2011

Entobutikk 4.PROSESSRAPPORT VÅR 2011 4.PROSESSRAPPORT VÅR 2011 1 DELKAPITTEL 1 FORORD Denne prosessrapporten inneholder detaljer om alle metoder vi har benyttet og alle fasene vi gikk gjennom under gjennomføringen av hovedprosjektet ved Høgskolen

Detaljer

SRD. Software Requirements and Design GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie

SRD. Software Requirements and Design GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie SRD Software Requirements and Design GLIS Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie Innholdsfortegnelse 1. Systemoversikt... 2 2. Tekniske krav... 3 2.1. Funksjonskrav og brukergrensesnitt spesifikasjon...

Detaljer

1. Forord 2. Leserveiledning

1. Forord 2. Leserveiledning KRAVSPESIFIKASJON 1 1. Forord Hensikten med kravspesifikasjonen er at den skal fungere som et styringsdokument under prosessen og definere rammer og betingelser rundt hovedprosjektet. Den er utviklet etter

Detaljer

Entobutikk 2.PRODUKTRAPPORT VÅR 2011

Entobutikk 2.PRODUKTRAPPORT VÅR 2011 2.PRODUKTRAPPORT VÅR 2011 1 DELKAPITTEL 1 FORORD Denne produktrapporten inneholder detaljer om produktet vi har utviklet samt programmessig oppbygning, illustrasjoner, diagrammer over produktet, funksjoner

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

TESTRAPPORT - PRODSYS

TESTRAPPORT - PRODSYS TESTRAPPORT - PRODSYS PRODSYS-DATASYSTEM FOR ÅS PRODUKSJONSLAB AS GRUPPE 12 CHRISTOPHER CONRADI STEFFEN DIEDRICHSEN ROMAN KOVALENKO INFORMASJONSTEKNOLOGI, INGENIØRUTDANNINGEN, HØYSKOLEN I OSLO 1. FORORD

Detaljer

Hovedprosjekt ved Høgskolen i Oslo våren 2011 CHARITY DOCTORS KRAVSPESIFIKASJON

Hovedprosjekt ved Høgskolen i Oslo våren 2011 CHARITY DOCTORS KRAVSPESIFIKASJON CHARITY DOCTORS KRAVSPESIFIKASJON Hovedprosjekt i informasjonsteknologi ved Høgskolen i Oslo våren 2011 Gruppe 13 Muleha Nhonzi Harlem Tambwe Mufoncol Ruban Amuthalingam Page 1 of 6 1 Innledning 1.1 Innledning

Detaljer

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

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

Detaljer

Gruppe 44. Bachelorprosjekt ved Institutt for informasjonsteknologi, våren Høgskolen i Oslo og Akershus,

Gruppe 44. Bachelorprosjekt ved Institutt for informasjonsteknologi, våren Høgskolen i Oslo og Akershus, Bachelorprosjekt ved Institutt for informasjonsteknologi, våren 2017 Høgskolen i Oslo og Akershus, 19.01.2017 Gruppe 44 Håkon Andre Sylte Garnes, Tobias Hallèn, Gaurab J. Gurung Forprosjektrapport Presentasjon

Detaljer

3.3 Case 3: Opprette en bruker Case 4: Endre en bruker... 8

3.3 Case 3: Opprette en bruker Case 4: Endre en bruker... 8 Testdokumentasjon 1 Forord Denne rapporten omhandler testingen av systemet. Rapporten er først og fremst beregnet på sensor og intern veileder ved Høgskolen i Oslo, men kan gjerne leses av andre som måtte

Detaljer

Bachelorprosjekt i informasjonsteknologi, vår 2017

Bachelorprosjekt i informasjonsteknologi, vår 2017 Bachelorprosjekt i informasjonsteknologi, vår 2017 Gruppe 29: Marthe Janson Skogen, s236357, Ingeniørfag - data Odd Einar Hoel, s236313, Ingeniørfag - data Forprosjektrapport Rapporten inneholder presentasjon,

Detaljer

F O R P RO S J E K T R A P P O R T

F O R P RO S J E K T R A P P O R T 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 F O R P RO S J E K T R A P P O R T Dato for levering: 01.02.2008 Versjon Nr. 1,72 Gruppe: 08-18 Webside: http://student.iu.hio.no/~s135462/hovedprosjekt/

Detaljer

TESTRAPPORT Tittel på hovedprosjektet: Varebestillingssystem for Wokas Salg AS

TESTRAPPORT   Tittel på hovedprosjektet: Varebestillingssystem for Wokas Salg AS TESTRAPPORT Tittel på hovedprosjektet: Varebestillingssystem for Wokas Salg AS Medlemmer av gruppe 35: Joakim Larsen, s150070, 3AB Kristian Kjelsrud, s147787, 3IA Anastasia Poroshina, s140720, 3AB Prosjektperiode:

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

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

Forprosjektrapport. Bachelorprosjekt ved Høgskolen i Oslo og Akershus, våren Gruppe 11. Mohamed el Morabeti, s198748

Forprosjektrapport. Bachelorprosjekt ved Høgskolen i Oslo og Akershus, våren Gruppe 11. Mohamed el Morabeti, s198748 Forprosjektrapport Bachelorprosjekt ved Høgskolen i Oslo og Akershus, våren 2016 Gruppe 11 Mohamed el Morabeti, s198748 Hotan Shahidi-Nejad, s236770 Arlen Syver Wasserman, s193956 Studentparlamentet 1

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

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

RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING

RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING Prosjekt 18 Jørgen Mobekk Sørensen Morten Evje Tor Andreas Baakind Anders Gabrielsen Side 1 1 FORORD Dette dokumentet er brukerveiledningen, og skal være en veiledning

Detaljer

Forprosjektrapport Bachelorprosjekt i data/informasjonsteknologi ved OsloMet Oslo / fredag, 19. januar 2018

Forprosjektrapport Bachelorprosjekt i data/informasjonsteknologi ved OsloMet Oslo / fredag, 19. januar 2018 Forprosjektrapport Bachelorprosjekt i data/informasjonsteknologi ved OsloMet Oslo / fredag, 19. januar 2018 Utvikling av Spires Medlemsregister Gruppe 2, medlemmer Etternavn Fornavn og mellomnavn Studentnummer

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

Forprosjekt. Høgskolen i Oslo, våren

Forprosjekt. Høgskolen i Oslo, våren Forprosjekt Høgskolen i Oslo, våren 2011 ------------------------------------------ Presentasjon Tittel: Oppgave: Database og nettside for Nor Dagligvarer Import AS Utvikle et databasesystem for bedriften

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

SiteGen CMS. Innføringsmanual

SiteGen CMS. Innføringsmanual SiteGen CMS Innføringsmanual Copyright Barlind Solutions AS 2008 Hva er SiteGen CMS? SiteGen CMS er et såkalt content-management-system; eller med litt andre ord et publiseringssystem. Det kan brukes til

Detaljer

HØGSKOLEN I OSLO OG AKERSHUS. FôrIt CDS. Avslutning

HØGSKOLEN I OSLO OG AKERSHUS. FôrIt CDS. Avslutning HØGSKOLEN I OSLO OG AKERSHUS FôrIt CDS Stian Strøm Anderssen, Mikkel Sannes Nylend og Shahariar Kabir Bhuiyan Gruppe 10 26.05.2014 Forord Denne rapporten oppsummerer vårt arbeid med FôrIt CDS. Under skriver

Detaljer

Brukerdokumentasjon for LabOra portal - forfattere

Brukerdokumentasjon for LabOra portal - forfattere Brukerdokumentasjon for LabOra portal - forfattere Skin: Dnnbest-Grey-Skin1024 Skin: Metro7 Custom LabOra web-portal er et web-basert publiseringsprogram for publisering av informasjon på hjemmesider.

Detaljer

Forprosjektrapport. Gruppe Januar 2016

Forprosjektrapport. Gruppe Januar 2016 Forprosjektrapport Gruppe 22 22. Januar 2016 Innholdsfortegnelse Innholdsfortegnelse Presentasjon Sammendrag Dagens situasjon Mål og rammebetingelser Mål Rammebetingelser Løsninger og alternativer Løsning

Detaljer

Styringsdokumenter. Studentevalueringssystem

Styringsdokumenter. Studentevalueringssystem Styringsdokumenter Studentevalueringssystem Forord Dette er en samling av alle styringsdokumentene gjennom prosjekt perioden. Styringsdokumentene er satt opp i rekkefølge i forhold til perioden de ble

Detaljer

Kravspesifikasjon MetaView

Kravspesifikasjon MetaView Kravspesifikasjon MetaView BACHELOROPPGAVE VÅREN 2014 1. Presentasjon Tittel: MetaView Oppgave: Lage en applikasjon og api som skal kommunisere med MetaVision slik at det skal bli enklere for leger og

Detaljer

1 Forord. Kravspesifikasjon

1 Forord. Kravspesifikasjon [Type text] [Type text] 3/5 Hovedprosjekt ingeniørutdanningen 09 Kravspesifikasjon Tittel på hovedprosjektet Tarantell Dashboard Gruppe 28 Bjørn Ove Pedersen Stian Dalviken Antall sider 6 Intern veileder

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

Hovedprosjekt i data ved Høgskolen i Oslo våren 2007

Hovedprosjekt i data ved Høgskolen i Oslo våren 2007 Hovedprosjekt i data ved Høgskolen i Oslo våren 2007 Sluttrapport Høgskolen i Oslo Student: Martin Oppegaard Gruppe: 07-12 Dato: 25. mai 2007 Veileder ved HIO: Eva Vihovde Oppdragsgiver: Bekk Consulting

Detaljer

Brukerveiledning WordPress. Innlogging:

Brukerveiledning WordPress. Innlogging: Brukerveiledning WordPress Her er en liten guide for hjelpe deg gjennom det grunnleggende i Wordpress. Denne veilederen vil ta deg gjennom: Innlogging Lage en side Lage et innlegg Innlogging: For å logge

Detaljer

Arbeidsplan. Startfasen. Aktivitet Beskrivelse Ferdig Ansvarlig (Ressurser)

Arbeidsplan. Startfasen. Aktivitet Beskrivelse Ferdig Ansvarlig (Ressurser) Arbeidsplan En arbeidsplan er en måte å få oversikt over de ulike fasene i prosjektet. I arbeidsplanen har vi delt arbeidet i naturlige faser og detaljert disse med estimert tidsbruk. Hovedfasene er startfasen,

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

TESTRAPPORT... 91 FORORD... 91 INNHOLD... 92 23 INNLEDNING... 93 24 TEST AV SYSTEMET... 93. 24.1 Databasen og SQL spørringer... 93

TESTRAPPORT... 91 FORORD... 91 INNHOLD... 92 23 INNLEDNING... 93 24 TEST AV SYSTEMET... 93. 24.1 Databasen og SQL spørringer... 93 90 Testrapport Forord Dette dokumentet er testrapporten for hovedprosjektet, og skal gi en oversikt over all testing utført på systemet under og etter ferdigstilling, samt feil og løsninger gruppen har

Detaljer