Rapport Intranet til Ballonparken Svendeprøve Andreas Stjerneklar Kristensen



Relaterede dokumenter
Umbraco installationsvejledning

Rapport. Udarbejdet af: Mayianne Nøks Pedersen. Skole login: knmape68.

IndentifyIT Survey Rapport

Databaseadgang fra Java

Denne rapport er skrevet af:

OK Fonden. Umbraco CMS Quickguide

Hjemmesiden er opdelt i et sidehoved, en sidefod og mellem disse 3 kolonner: venstre, midterste og højre. Højre kolonne vises dog kun på forsiden.

Hvorfor skal vi bruge objekt orienteret databaser?

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Portfolio Andreas Stjerneklar Kristensen. Multimedia Designer Eksamen 1. Semester

En Kort Introduktion til Oracle

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Go-Kart DMKA Dokumentation

Hjemmesidens andre funktioner

GUIDE TIL OPRETTELSE AF SIDER OG INDHOLD I UMBRACO ONLINE BETJENING

Procesbeskrivelse - Webprogrammering

Arkitektur for begyndere

BRUGERVEJLEDNING VOL.1

03 virksomhedens SIDER/ EfterUddannelse.dk 3 virksomhedens sider beskrivelse af Aflevering

Vejledning til brug af Y s Men s klubintranet administrator guide

My booking. Generelt. Forsiden. Version 9.0

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

The Boerboel Pedigree

Guide til Træningsmakker

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Midttrafik TRAFIKADMINISTRATION. Brugermanual august-2013 vers. 1.2

AU Timeløn. Vejledning til godkendelse (godkender rolle) TIMEmSYSTEM ApS. Link:

UV-Forum. Konferencesystem for UU ere og Studievalg

Udvikling af DOTNET applikationer til MicroStation i C#

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

BRUGERVEJLEDNING VOL.1

Roskilde Tekniske Gymnasium. Afsluttende opgave Ældre og handicappede Frederik & Peter

HVAD KAN GOLFBOX GØRE FOR DIG?

Indholdsfortegnelse. EasyIQ IDM 5.4 Brugermanual

Samspillet mellem databaser og kort styres af GeoCAD programmet GeoDB.

Introduktion til frontend

grafisk design Se webappen på din mobil

The Design Diaries PHP projekt

Grafik Design...2 Opgave Kunden Min opgave Nuværende Design...4 Overvejelser Målgruppe...6 Købskriterier Design Parametre...8 Tekst Illustrationer

Reeksamen, DSDS, forår 2008

BRUGERVEJLEDNING TIL BRUG AF MC IKAST HJEMMESIDE.

Brugerskabte data en national service (BSD) - produktbeskrivelse

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

FØR DU TESTER TILGÆNGELIGHED PÅ HJEMMESIDER

COOP brugermanual til Podio BRUGERMANUAL. til Podio. 23. februar 2015 Side 1 af 38

BRUGERVEJLEDNING. Til klinikker og brugere i voresklinik.info

Mbridge tilmeldingssystem Version Vejledning.

DATABASE Projekt 1-3. semester

Sådan redigerer du en hjemmeside i Umbraco

Indberetning af driftsforstyrrelser

Vinavlerdatabasen høstrapport og meget mere

04 veu administrationens SIDER/ EfterUddannelse.dk 5 Skolens sider til udsendelse af breve beskrivelse af Aflevering

Spiller / Pårørende manual Til

BRUGER KURSUS RAMBØLL HJEMMESIDE

vorbasse.dk Redaktørmanual Kentaur

1 Domæne Design valg User Klassediagran 5

Dansk manual for app en Safety Observer

Elektronisk rokort Brugerguide

Website Redaktør - Brugermanual version Zonta District 13, Area 01, 02, 03 og 04 inkl. klubber

Brugervejledning Digital Post for administratorer

Dalux Field Brugermanual

Lav en hjemme side der kan sælge fly billetter til en stor i Europa.

KIF Brugerguide Holdsider

Brugervejledning til

Funktionsliste til Flexintra

UPLOAD. Af Database og Website til Skolens Server

Manual til frivillige om mulighederne på mitrødekors.dk

Trin for trin guide til Google Analytics

Allerede ved modtagelse af mailen med aktiveringslinket, har du adgang.

Administration af UNI-Login i forbindelse med Biblo

10.0 Velkommen til manualen for bruger administration Introduktion til manualen Menuen Startside

Grundforløbsprøve Projektbeskrivelse

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Det Nye Testamente lyd-app. v. Stefan Lykkehøj Lund

3. PROJEKT, 2 SEMESTER

Energistyrelsens Tilskudsportal Vejledning for brugere

Manual Version 2. til oprettelse af hjemmesider for landsbyer i Rebild kommune

ADMINISTRATIONS MANUAL

Indholdsfortegnelse. Indledning System krav side 1

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Testspecifikation

Vejledning i brug af Foreningsportalen til brugere med adgangskode

SecureAware Compliance Analysis Manual

Kalender og Nyheder til Portalen for Aale, Hjortsvang og Hammer via Conventus

Mbridge tilmeldingssystem Version Vejledning.

Hjemmesidemanual for Østkredsen

TRIN FOR TRIN GUIDE VELUX Tilbudsberegner

PORTFOLIO SEBASTIAN NYHOLM. Eksamensprojekt. 1. Semester

Kom godt igang med OpenMeetings

Spil Rapport. Spil lavet i GameMaker. Kevin, Mads og Thor

Gå ind på forsiden til hjemmesiden. Skriv typo3 i adresselinjen og tryk på retur.

Vandforsyning brugermanual: Indhold

Hurtigt, nemt og bekvemt. Ønsker du, som mange andre, at få nye kompetencer. og være opdateret om mulighederne i de produkter

Gratis reservationssystem på Internettet

Succes med intranet til Office 365. Den 13. august 2014 Webtop A/S s. 1

Indholdsfortegnelse. Side 1 af 8

Introduktion til Indholdsredigering

Så er IOS CMS her Endelig - et Content Management System, der passer til alt lige fra den mindre private side til store firmasider

sådan gør du... [meld dig ledig]

Transkript:

Rapport Intranet til Ballonparken Svendeprøve Andreas Stjerneklar Kristensen

Indledning...3 Ballonparken...3 Problemet...3 Idé...4 Målgruppe...4 Produktionsplan...5 Design...6 Teknologivalg...7 Multi-tier kode arkitektur...7 Indhold...8 Login...8 Forside...8 Reservation...9 Information...9 Forum...10 Kategori Oversigt...10 Tråd oversigt...10 Oprettelse af ny tråd:...10 Post Oversigt...11 Klasser...12 SiteLogic...12 DataBLL...12 Data Access Layer:...13 Udviklingsmuligheder...14 Glemt brugernavn/adgangskode?...14 Original side...14 PDF upload...14 Konklusion:...14

Indledning Mit projekt fokuserer på at udvikle et Intranet til mit bosted og barndomshjem, Ballonparken. Et intranet er en teknologi, hvormed man internt i en organisation får adgang til dokumenter og tjenester via internetprotokoller. -Wikipedia Ballonparken Ballonparken har sine rødder i et militærområde der blev anlagt i 1872. Ti år efter kom de første af de røde barakker der stadig bruges i dag. Navnet kommer af, at der blev opsendt balloner for at observere artilleriets præcision. Da tyskerne besatte Danmark under anden verdenskrig var Ballonparken en af de militærbaser der led de hårdeste tab, med tre dræbte og fem sårede, i kamp mod en tysk kampvogn (denne blev også uskadeliggjort). Efter krigen blev Ballonparken gjort til et nødkollegium for boligløse mandlige provinsstuderende, men gradvis overgik den til at være et hjemsted for hippier. I 1971 blev Ballonparken en selvejende institution og også kvinder fik adgang. Ballonparken er i dag et kollektivt selvejende boligområde administreret af Fonden Ballonparken, med en bred vifte af beboere der består af alt fra jordemødre til advokater, læger og pædagoger. I alt er der cirka 100 voksne beboere. Problemet Der er sket en del ting siden 1971, men beslutningstagningsprocessen giver ikke det indtryk. Beboerdemokratiet lader til at sidde fast i hippie tiderne og debatten på de jævnlige beboermøder mangler ofte "vægt" i form at input fra et bredere segment af beboerne. Problemet er efter min mening, at beslutningstagningsprocessen i Ballonparken er eksklusiv til en sådan grad, at der sjældent er mere end 10 beboere til stede under diskussionen af beslutningerne Dette til trods for at der bor mere end 100 individer i Ballonparken. Årsagen til dette mener jeg er at finde i en række omstændigheder relateret til at holde faste, fysiske møder på frivillig basis i et åbent og ubureaukratiskt beboerdemokrati.

Idé Mit primære fokus med dette projekt er at forbedre kommunikationen i Ballonparken. Derfor vil jeg, som alternativ/supplement til beboermødet, lave et forum hvor beboerne frit, nemt og direkte hjemmefra kan debattere med hinanden om alt der har med Ballonparken at gøre. Sekundært ser jeg mange steder, hvor et intranet ville være til hjælp, så som en central informationsbank og event-management/reservation af diverse fællesrum. Grunden til at jeg specifikt har valgt at lave et Intranet og ikke et Internet, er delvist at den funktionalitet jeg vil tilbyde kun er relevant for beboere, og delvist at Ballonparken ikke har brug for at markedsføre sig selv. Der er allerede en alt for lang venteliste til boligerne. Målgruppe Målgruppen er, meget logisk for et intranet, organisationen der skal serviceres. I Ballonparkens tilfælde er denne gruppe ret lille og statisk. Ballonparken vokser ikke - der er ingen udvidelsesmuligheder og beboerne flytter ikke ofte derfra. En fuldkommen succes ville være at alle beboere bruger intranettet, men her snakker vi stadig om maksimum ca. 100 personer, der bor i samme område. Da et stort segment af målgruppen ikke har stor IT erfaring skal sitets design være enkelt og overskueligt, for ikke at gøre teknikken til en afskrækkende faktor i forsøget på at udbrede beboerdemokratiet.

Produktionsplan: 8. 12. november: Planlægning Problemformulering, tidsplan, research. 15.-18. november: Produktion Site opsætning, Design, Forum, Reservation og Artikler 22. 26. november: Rapportskrivning 29. november 3. december: Test, fremlæggelse for AABs IT afdeling, færdiggørelse, aflevering.

Design: Layoutmæssigt har jeg forsøgt at holde alting så simpelt som muligt og brugt ret store fonte for at fremme tilgængelighed. Farverne på sitet tager udgangspunkt i grønne nuancer, noget der går igen i Ballonparkens miljø i døre, buske og træer. Baggrunden er hvid, for overskuelighedens skyld. Det virker som en behagelig farvesammensætning for mig personligt og jeg har fået positiv feedback fra testpersoner. Banneret er inspireret af et billede fundet på Wikipedias artikel om Ballonparken. (se bilag 1 for original og udvikling)

Teknologivalg: Sitet er kodet i ASP.net og C#(C-Sharp) Grunde til dette valg kan findes blandt andet i det helstøbte udviklingsmiljø der leveres af eksempelvis Visual Web Developer, med intellisense, query analyser, database diagram, XSD datasets, debugging ect. Jeg har desuden i min research stødt på mange udsagn om, at.net er mere populært i erhvervssektoren og i størrere firmaer. Mange danske CMS systemer bruger ligeledes.net, eg Sitecore, Umbraco og Tangora Multi-tier kode arkitektur N-tier er en måde at opdele en web applikation i lineært forbundne lag. En af de centrale temaer I N-tier er, at et lag udelukkende kommunikerer med forbundne lag, og ikke udenom. Hvis jeg for eksempel vil hente alle brugere ud, må jeg ikke kalde direkte til databasens tabeller fra den side, hvor jeg har brug for dataene. I stedet får jeg dataene igennem logic lagets klasser. Dette strømliner databehandling og gør genbrug af funktionalitet nemmere. Diagram over N-tier modellen (fra Wikipedia). For mere om N-Tier: http://en.wikipedia.org/wiki/multitier_architecture

Indhold: Login: Da sitet er struktureret som et intranet, er det første der sker når en bruger går til adressen, at vedkommende bliver præsenteret for en Login skærm. Der er med vilje ikke lavet nogen mulighed for at selv-oprette en bruger, fordi brugerbasen er relativt konstant og tilmed geografisk baseret; derfor mener jeg at husomdeling af brugernavne og adgangskoder er mere passende. Forside: På denne side vises de seneste site nyheder, hvornår næste beboermøde afholdes, og en introduktionstekst til sitet der oplyser om features.

Reservation På denne side kan brugeren reservere udvalgte Ressourcer indenfor et givent tidsrum. Brugeren vælger en startdato og en slutdato igennem en ASP:Calendar kontrol. Hvis den valgte ressource er ledig oprettes en reservation, ellers vises de reservationer der blokerer de valgte datoer. Checket af datoerne som brugeren har valgt sker igennem et hjernevridende SQL kald. SELECT FROM WHERE id, fk_user_id, fk_resource_id, startdate, enddate Event (fk_resource_id = @resid) AND (startdate <= @startdate) AND (enddate >= @startdate) OR (fk_resource_id = @resid) AND (startdate <= @enddate) AND (enddate > @enddate) OR (fk_resource_id = @resid) AND (startdate > @startdate) AND (enddate < @enddate) OR (fk_resource_id = @resid) AND (startdate = @startdate) AND (enddate = @enddate) Hvis SQL kaldet finder noget så vises det til brugeren som de blokerende events der forhindrer brugerens reservation. På grund af kompleksiteten af dette kald tegnede jeg et diagram over de cases der skal testes: 1: begge datoer bruger vælger er før startdato: intet findes, reservation oprettes. 2: valgt slutdato er startdato på et eksisterende event, dette event findes. 3: valgt startdato er startdato på event, dette event findes. 4: begge datoer er mellem eksisterende events start og slut datoer, dette event findes. 5: valgt slutdato er slutdato på eksisterende event, dette findes. 6: valgt startdato er slutdato på event, dette event findes. 7: begge datoer bruger vælger er efter slutdato: intet findes, reservation oprettes. 8: valgt slutdato er efter eksisterende startdato og før eksisterende slutdato, dette event findes. 9: valgt startdato er før eksisterende slutdato og efter eksisterende startdato, dette event findes. 10: begge datoer er identiske med et eksisterende events datoer, dette event findes. 11: valgt startdato er før eksisterende startdato og valgt slutdato er efter eksisterende slutdato, dette event findes. Yderligere validering sker før SQL kald, eksempelvis check på om bruger har valgt en slutdato der ligger tidligere end startdato. Information Her kan brugere finde information om Ballonparken så som regelsæt, kontakt info, ect. Dette segment af sitet genbruger forum strukturen bag scenen : Information er en forum kategori, og hver artikel er en tråd. Andre brugere kan kommentere artiklerne, ligesom de kan svare på en tråd

Forum: Kategori Oversigt Bruger vises de kategorier han kan tilgå. Dette sker vha en SQL-select på kategorier med weight mindre eller lig med brugers session weight (taget fra brugers user role weight ved login). Tråd oversigt Bruger vises de aktive (ikke slettede) tråde i den valgte kategori. Oprettelse af ny tråd: Muligheden for at oprette en tråd er tilgængelig på Tråd-oversigts nivauet. protected void createthread(object sender, EventArgs e) { //insert tråd og sæt dennes værdi til retur værdien på insertreturnid methoden, hvilket giver os ID'et på den nye tråd threadbll tbll = new threadbll(); int newthread; newthread = tbll.insertreturnid(textboxtitle.text, Convert.ToInt32(Request.QueryString["cat"])); //insert post PostBLL pbll = new PostBLL(); pbll.insert(convert.toint32(session["user_id"]), newthread, TextBoxContents.Text.ToString(), DateTime.Now); //reload data & reset fields Repeater_Threads.DataSource = tbll.selectbycategoryid(convert.toint32(request.querystring["cat"])); Repeater_Threads.DataBind(); TextBoxContents.Text = ""; TextBoxTitle.Text = ""; FS_createthread.Visible = false; } Når en tråd oprettes gøres det med en speciel insert metode, der returnerer værdien af den nye tråds ID felt. Dette ID bliver brugt til at inserte den tilhørende post i tråden.

Dato-Sortering af tråde skete tidligt i projektet udfra trådens creationdate vha et specialiseret SQL kald, men jeg valgte at fjerne creationdate fra tråde da det gik op for mig at mange informationer gik igen imellem mine tråd og post objekter. Da den første post i en tråd altid oprettes i samme omgang som tråden, tilføjede jeg et Firstpost Post objekt til mit Tråd objekt. Dette betyder at i stedet for at alle tråde har creationdate og en user author, henter jeg disse værdier ud fra trådens firstpost post objekt, og firstposts user author objekt. Post Oversigt Her vises ikke-slettede posts i den valgte tråd. Hvis brugeren har ejerskab over en post, eller er administrator, vises mulighed for at slette posts eller tråd.

Klasser Klasserne i mit Logic Layer er opdelt i to Namespaces: SiteLogic Håndterer site funktionalitet og er yderligere opdelt i klasserne Navigation (menu indhold og logik), Security (login og rollestyring, se bilag) og Statistics (Statistikker). DataBLL Håndterer og definerer data-objekter i én-til-én forhold med database tabeller. Er inddelt efter objekt Visse objekter indeholder andre objekter, mit yndlings eksempel er min User constructor, der kun behøver et user id for at hente et user objekt, der også indeholder instanser af brugerens rolle og room klasser, ligeledes hentede som objekter udfra ID'er fra user objektet. //opret bruger udfra user id public User(int userid) { UserBLL ubll = new UserBLL(); User userobj = ubll.objectbyid(userid); _id = userobj.id; _name = userobj.name; _password = userobj.password; _email = userobj.email; _fk_role_id = userobj.roleid; _fk_room_id = userobj.roomid; _imagename = userobj.imagename; RoomBLL rbll = new RoomBLL(); _room = rbll.objectbyid(userobj.roomid); RoleBLL robll = new RoleBLL(); } _role = robll.objectbyid(userobj.roleid); Resultatet af dette er at jeg kan kalde en brugers rolle navn frem bare ved at instansiere userklassen, lave en user/samling af users udfra en af userklassens metoder og sætte denne til hvad det skal være... eg: UserBLL ubll = new UserBLL(); User userobj = new User(qs); Label_UserRoleName.Text = userobj.role.name; I dette eksempel med en string value fra objektet der bruges som text behøver jeg heller ikke konvertere værdien. Alternativet jeg plejede at bruge, var at at håndkode flere SQL kald efter hinanden og hive ud fra datatable rows, hvilket kræver en masser arbejde mange steder. Med objekt klasser bygger man et kompliceret system til at levere data, der leverer dataene på en nem måde alle andre steder.

Data Access Layer: DAL er laget der håndterer hentning og behandling af data. Dette sker via et strongly typed dataset der indeholder standardiserede sql kald for alle tabeller I løsningen. Udfra dette bliver en TableAdapter klasse skabt for hver tabel. Wizarden laver per default den simple fill/get metode, men det står én frit for at tilføje flere metoder til datahåndtering. Disse TableAdapters er den eneste måde jeg interagerer med mine databaser. Mit Data Access Layer

Udviklingsmuligheder: Glemt brugernavn/adgangskode? Giv mulighed for at brugeren kan indtaste en email adresse, og hvis denne findes i databasen, modtage en mail på denne adresse med login detaljer. Status: Jeg har email på brugere, men da mit site endnu ikke er online har jeg ikke mulighed for at teste funktionaliteten. Original side Hvis bruger bliver redirected fra en adgangsbeskyttet side pga. manglende session data, bliver den side brugeren var på opbevaret i en querystring. Når brugeren logger på igen bliver han redirectet til siden han prøvede at komme ind på, i stedet for at ryge til forsiden. Status: Mine masterpages gør deres del ved at sende brugeren til login siden med den side der redirectes fra I querystring, men login funktionen giver en fejl mht. at redirecte til siden. Tidsbegrænsninger samt at funktionaliteten ikke er essentiel har dog tvunget mig til at droppe dette for nu. PDF upload Upload af pdf vil også være en oplagt udviklingsmulighed. Det ville gøre distribution af referater og andre dokumenter langt enklere. Konklusion: Jeg har efter planen udviklet et intranet site med forum og event management. Der mangler stadig nogle detaljer før sitet er fuldstændig funktionsdygtigt til brug af Ballonparkens beboere, men den overordnede site struktur er velopbygget. De testpersoner jeg har brugt finder sitet overskueligt og let tilgængeligt. Jeg tror derfor på at mit ønske om at styrke beboerdemokratiet gennem dette intranet kan lykkes. ase