TimeStamp Hovedprosjekt ved HiOA 2012

Like dokumenter
TimeStamp - Hovedprosjekt ved HIOA 2012

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk

Case Prosess Resultat Kommentar

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

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Eksamen i Internetteknologi Fagkode: IVA1379

HTML5. Skjemaer på nettsider. Skjemaer med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS

Produktdokumentasjon

Eksamen i IBE102 Webutvikling Våren 2017.

Produktrapport Gruppe 9

1. Innføring i bruk av MySQL Query Browser

Testrapport. Studentevalueringssystem

Use Case Modeller. Administrator og standardbruker

Scan Secure GTS PAS

Brukerdokumentasjon for Administrator og andre brukere fra PT

kpmg KPMG Kundeportal Brukerveiledning

Oppgave 1 (Opprett en database og en tabell)

[GILJE SELSKAPSLOKALER]

Brukermanual. Studentevalueringssystem

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

RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING

Kravspesifikasjon Gruppe nr ABTF

Brukerdokumentasjon for registrering og rapportering beredskapsutstyr hos Post og Teletilsynet

PJ 501 Brukermanual NITH. Troja.NET brukermanual

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

Eksamen i Internetteknologi Fagkode: ITE1526

Båtforening på nett. Produktrapport

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

[GILJE SELSKAPSLOKALER]

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

DinVikar - Bruker Manual

InfoRed Publisering. - produktbeskrivelse. TalkPool WebServices Postboks Åneby

Brukermanual. System for oversiktslister. Entreprenører

Funksjonsbeskrivelse

BRUKERMANUAL FOR NETTINTRO CMS Dette dokumentet er skrevet for Nettintro CMS versjon 1.9.0, og kan derfor avvike noe fra nåværende versjon.

Kravspesifikasjon. Forord

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

1. Introduksjon. Glis 13/02/2018

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

TESTRAPPORT - PRODSYS

Webutvikling Høst 2016

Brukerveiledning for Vesuv

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

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Romsys består av to deler; Den første delen er administrasjonssidene og den andre delen er visningsdelen for de dataene som administreres.

CabinWeb BRUKERDOKUMENTASJON ET SYSTEM UTVIKLET AV DELFI DATA

Kom i gang. Nå er det enklere en noensinne å redigere hjemmesiden din med Plone CMS. 17. mars 2010

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

PROSESSDOKUMENTASJON

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

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus

Forside slutteksamen

AirDog Hovedprosjekt ved Høgskolen i Oslo 2009

Brukermanual. WillWest Smøredatabase GRUPPE 21 FORFATTERE: BREKKLUND, PÅL E. LARSEN, MARTIN WESTGAARD, CHRISTIAN S.

1. SQL datadefinisjon og manipulering

Brukerdokumentasjon. Hovedprosjekt Høgskolen i Oslo. Gruppe 24

HJEMMEKONTOR. Del 1 Installasjon på jobb Norsk Helsenett SF

SVARFORSLAG : Eksamen i IBE102 Webutvikling Våren 2017.

Entobutikk 3.TESTRAPPORT VÅR 2011

Brukermanual. System for oversiktslister. Entreprenører

Huldt & Lillevik Ansattportal Ansattportal. Versjon

Brukerveiledning. Gruppe 9

Hvordan komme i gang med MUSITs applikasjoner

1. Forord. InventarDatabase

Styringsdokumenter. Forord

Brukermanual for nettpublisering. frivilligsentral.no

SiteGen CMS. Innføringsmanual

Entobutikk 2.PRODUKTRAPPORT VÅR 2011

student s104111, s107911, s122357

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

1. Relasjonsmodellen Kommentarer til læreboka

Bachelorprosjekt i informasjonsteknologi, vår 2017

Brukerveiledning. Madison Møbler Administrasjonsside

Overordnet beskrivelse og arkitekturskisse

Brukerveiledning e-postsystem

VEDLEGG 1 KRAVSPESIFIKASJON

Bergeland IKT. Elev guide

EasyPublish Detaljerte brukstilfeller. Versjon 1.0

Del VII: Kravspesifikasjon

Brukermanual. System for oversiktslister SVV

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Entobutikk 1.KRAVSPESIFIKASJON VÅR 2011

Brukermanual Wateachu

EKSAMEN 6102 / 6102N DATABASER

Brukerveiledning for programmet HHR Animalia

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

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

Eksamen i Internetteknologi Fagkode: ITE1526

Oppgave 1. Webutvikling. Oblig 5. Sette opp WAMP og Wordpress. Først og fremst må man laste ned WAMP.

Brukermanual. System for oversiktslister. Entreprenører

(X)HTML, CSS og JavaScript HTML. Det første dokumentet Grunnleggende programmering i Java Monica Strand 26.

Brukerveiledning for IPLOS Registrering

Høgskoleni østfold EKSAMEN

Testdokumentasjon Presentasjon

HØGSKOLEN I SØR-TRØNDELAG

Compello Fakturagodkjenning 10.5 Godkjennings app - nettleser, nettbrett og telefon

Manual for innlegging av standard sideinnhold og nyheter via «backend»

Administrasjon Nettbutikk: Bruk brukernavn og passord som er sendt på e-post.

Innholdsfortegnelse. Side 1 av 33

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

Transkript:

Forord I denne produktrapporten blir det beskrevet hvordan TimeStamp er bygget opp og hvilke teknologier som ligger bak. Dette dokumentet har som formål å gi en detaljert og inngående beskrivelse av TimeStamp. For en fullverdig leseropplevelse forutsettes det at leseren har god kjennskap til programmeringsspråkene HTML, CSS, PHP, JavaScript og SQL, samt generelle programmeringsprinsipper, virkemåter og begreper. Rapporten beskriver følgende punkter Beskrivelse av produktet Installasjon og drift Brukergrensesnitt Database design Filer og filstrukturer Sikkerhet en kan lese som en egen rapport uavhengig av andre rapporter. Det anbefales allikevel å lese prosessrapporten før man går løs på produktrapporten. Har man lest prosessrapporten kan man gå direkte til kapittel 2 Beskrivelse av produktet. Rapporten er tiltenkt personer med god IT kompetanse og kan være til hjelp for personer som skal implementere eller videreutvikle systemet.

Innholdsfortegnelse 1 Innledning... 1 1.1 Gruppen... 1 1.2 Oppdragsgiver... 1 1.3 Oppgaven... 1 2 Beskrivelse av produktet... 2 2.1 Logg inn og bruker validering... 2 2.2 Vanlig bruker og administrator... 3 3 Installasjon og drift... 5 3.1 Server... 6 3.2 Klient... 6 3.3 Programmerings språk... 6 3.4 Microsoft SQL... 7 4 Brukergrensesnitt... 7 4.1 Universell Utforming... 8 5 Database design... 9 5.1 ER-diagram... 9 5.2 Logisk skjema... 10 5.3 Datatyper, begrensninger og forklaring til tabellene... 12 5.3.1 Beboer tabellen... 13 5.3.2 Utinngang tabellen... 14 5.3.3 Rom tabellen... 15 5.3.4 Besooksliste tabellen... 15 5.3.5 Besook tabellen... 16 5.3.6 Ansatt tabellen... 17 5.3.7 Innlogging tabellen... 18 5.3.8 Vaktliste tabellen... 18 5.3.9 Vakt 1, 2 og 3 tabellene... 19 5.3.10 Melding tabellen... 22 6 Filer og filstruktur... 23 6.1 Registrere beboer ut eller besøk inn... 23 6.2 Registrere beboer inn eller besøk ut... 23 6.3 Opprette generell melding... 24 6.4 Opprette beboer... 25 6.5 Endre beboer... 25

6.6 Slette beboer... 26 6.7 Opprette besøkende... 27 6.8 Endre besøkende... 27 6.9 Slette besøkende... 28 6.10 Opprette bruker/ansatt... 29 6.11 Endre bruker/ansatt... 29 6.12 Slette bruker/ansatt... 30 6.13 Opprette og endre vaktliste... 31 6.14 Opprette og endre vaktlogg... 31 6.15 Etterbehandling av utinngang logg... 32 6.16 Søking i logger... 33 6.17 Opprette rom... 34 6.18 Slette rom... 34 6.19 Diverse filer og mapper... 35 8 Sikkerhet... 36 9 Avsluttende del... 36 10 Figurliste... 37

1 Innledning Denne delen introduserer gruppen, oppdragsgiver og oppgaven. Har man lest innledningen i Prosessrapporten kan man gå rett til kapittel 2. 1.1 Gruppen Prosjektgruppen har 4 medlemmer, Sigurd Løvik, Jan Christian Jakobsen og Stian Furuset som alle går Anvendt Datateknologi, samt Kutlu Bulut som går Informasjonsteknologi. Samtlige på gruppen har samarbeidet tidligere i forbindelse med prosjekter og oppgaver gjennom de 2 foregående studieårene ved HiOA, med unntak av Kutlu og Stian som i vår har samarbeidet sammen for første gang. Gruppens sammensetning har vist seg å fungere godt da vi fra starten av har hatt et felles ambisjonsnivå og et sterkt ønske om å kunne levere et godt produkt til oppdragsgiver. Sigurd Løvik har tatt på seg ansvaret som gruppeleder og har dermed hatt et overordnet ansvar for innkalling til møter, del-leveringer og sett til den generelle framdriften i prosjektet. 1.2 Oppdragsgiver Oppdragsgiver for prosjektet er Fretex Elevator som er en del av Frelsesarmeen Norge. 1.3 Oppgaven Elevator har i likhet med store deler av det norske fengselsvesenet og institusjons Norge forøvrig, et ansvar for hver enkelt innsatt (fra nå av referert til som "beboer") og deres sikkerhet, og som en del av sikkerhetsrutinen medfører dette loggføring og registrering. Korrekt føring av inn og utgang av personer ved avdelingen er viktig i forhold til de pålagte restriksjoner og pålegg fra fengselet men også med tanke på brann og sikkerhets rutiner ved Elevator. I mangel på et elektronisk registreringssystem som kan benyttes til loggføring, føres i dag all registrering manuelt, i en god gammeldags vaktprotokoll hvor alle bevegelser ved avdelingen registreres, arkiveres og til slutt makuleres. TimeStamps oppgave blir derfor å erstatte en slik manuell loggføring med et elektronisk loggføringssystem som kan brukes over nettverket ved Elevator. 1

2 Beskrivelse av produktet I dette kapitelet tar vi en nærmere titt på produktet fra et mer teknisk standpunkt. Vi gjennomgår ikke hele systemet men viser noen deler og beskriver hva som foregår. For mer informasjon henvises det til prosessrapporten og brukermanualen. 2.1 Logg inn og bruker validering Figur 1. Logg inn Her kan vi se logg inn skjermen for TimeStamp. Feltene Brukernavn og Passord er case sensitive, som vil si at feltene tar hensyn til store og små bokstaver. Etter at man har logget inn vil det på hver side være en PHP del som sjekker om man er logget på som en registrert bruker(se kodebit under). 2

1. <?PHP 2. session_start(); 3. include("sql.php"); 4. 5. $navn=$_session['login_navn']; 6. $table="dbo.ansatt"; 7. 8. $sql="select * FROM $table WHERE navn='$navn' and dato_ut IS NULL"; 9. $result=sqlsrv_query($conn, $sql); 10. $count=sqlsrv_has_rows($result); 11. if ( $count === false or!isset( $_SESSION['login_navn'] ) ) 12. { 13. header("location:login.php"); 14. } 15.?> Denne koden sjekker om brukeren som er logget inn er registrert i TimeStamp og er aktiv, det vil si om de fortsatt jobber der. Hvis man ikke er logget på som en registrert bruker vil systemet henvise deg til logg inn siden. Denne koden blir brukt på alle filer der vanlig bruker har rettigheter. 1. 2. $sql="select * FROM $table WHERE navn='$navn' AND admin='ja' AND dato_ut IS NULL"; 3. Over kan vi se SQL spørringen som blir brukt på administrator sider. Her sjekker den det samme som for vanlig bruker pluss om brukeren er har administrator rettigheter. 2.2 Vanlig bruker og administrator Som vanlig bruker i TimeStamp har man rettigheter til det man kan se på forsiden (index.php). Registrere beboer ut/inn eller besøk inn/ut Skrive og redigere generell melding Bruke vaktlogg Se oversikt over vaktliste Søke i logg Når en vanlig bruker går inn på vaktliste vil brukeren kunne se en oversikt over de forskjellige vaktene som er satt opp i TimeStamp. Brukeren vil også kunne endre på vaktskiftet fra dagens dato. Se figur 2. 3

Figur 2. Vaktliste for vanlig bruker 1. <?php 2. $sql="select * FROM $table WHERE navn='$navn' AND admin='ja' AND dato_ut IS NULL"; 3. $result2=sqlsrv_query($conn, $sql); 4. $count2=sqlsrv_has_rows($result2); 5. 6. if(strtotime('-1 day', time()) <= strtotime($row['vakt_dato']) or $count2 == true) 7. {?> 8. <a href="admin_vaktliste_endre.php?id=<?php echo $row['vaktlisteid'];?>"> 9. <img src="img_decor/icon_edit.png" alt="endre vakt" /></a> 10. <?php }?> I kodebiten over sjekker den datoen og om man er logget på som administrator. Som vanlig bruker vil man bare kunne endre på innlegg som står fra dagens dato og fremover. Mens som administrator vil man kunne endre på alle innlegg om det skulle være nødvendig. Se figur 3. Figur 3. Vaktliste som administrator 4

Vaktlisten er også laget slik at det ikke skal være mulig for en vanlig bruker/ansatt å endre på ID i URL feltet for å få tilgang til vaktinnlegg. Se figur 4. Figur 4. Vaktliste URL Når man logger på som administrator vil man kunne utføre alle tingene en vanlig bruker kan, i tillegg til en ny knapp som heter "Admin" som vise deg til en administrator side. Se figur 5. Figur 5. Forside som administrator 3 Installasjon og drift TimeStamp benytter seg av en klassisk klient-tjener arkitektur med en underliggende database som vist i figur 6. 5

Figur 6. klient-server arkitektur 3.1 Server Fretex Elevator bruker Microsoft Server 2008 og for å sikre kompatibilitet har vi tatt i bruk følgende: Microsoft Server 2008 R2 + Microsoft Drivers 3.0 for PHP for SQL Server Internet Information Services 7.5 (IIS). + PHP FastCGI PHP versjon 5.3.10 Selve databasen ble opprettet og håndtert av Microsoft SQL Server 2008 Management Studio. 3.2 Klient TimeStamp er ikke utviklet for å være en webapplikasjon, men skal kunne kjøres i Microsoft Internet Explorer og Mozilla Firefox og fungerer i andre nettlesere også, men da med visse feil i layout. 3.3 Programmerings språk Systemet er kodet i XHTML 1.0 Strict(HTML 5 på innloggingssiden), CSS3 og PHP. Det blir også brukt JavaScript i de fleste filene. 6

1. <script type="text/javascript"> 2. function show_confirm() 3. { 4. var r=confirm("vil du opprette ny beboer?"); 5. if (r==true) 6. { 7. alert("beboer er opprettet"); 8. document.getelementbyid("beboer_opprett").submit(); 9. } 10. else 11. { 12. alert("beboer IKKE opprettet"); 13. return false; 14. } 15. } 16. </script> Ovenfor kan vi se et JavaScript for bekreftelse av oppretting av beboer. I tillegg blir følgende 3.4 Microsoft SQL Siden TimeStamp benytter seg av MS Server 2008 blir det da brukt MS SQL til å kjøre spørringer mot databasen. 1. $result = sqlsrv_query($conn, "select * from dbo.beboer where dato_utsjekk IS NULL ORDER BY 2. beboerid DESC"); 3. while($row = sqlsrv_fetch_array($result)) 4. { 5. } Her kan vi se at det blir brukt sqlsrv i PHP koden siden det blir benyttet MS SQL. 4 Brukergrensesnitt Brukergrensesnittet til TimeStamp er utformet på lik måte som en nettside og bruker gjenkjennelige konsepter man er vant til fra disse som skjemaer, knapper og ikoner. Navigering mellom sidene er også designet for å være gjenkjennelig og intuitiv. Følgende teknologier er benyttet i utviklingen av brukergrensesnittet til TimeStamp: 7

XHTML 1.0 Strict semantisk innhold CSS 3.0 layout og utseende JavaScript input validering, bekreftelser, kalender og klokker HTML 5 kun brukt på klokka på innloggingssiden(<canvas> elementet). CSS koden ligger i hovedsak i en egen fil (style.css) som er delt opp med kommentarer for å gjøre navigering i koden enklere. Det forekommer også en del CSS kode "inline" på HTML elementene. Input validering og bekreftelser er ikke egne JavaScript filer, men er kodet rett inn i de filene de gjelder for. De fleste dimensjoner på elementene er oppgitt med "em", en størrelse som er relativ til den gjeldende skriftstørrelsen for elementet. 4.1 Universell Utforming Som nevnt i Prosessrapporten har vi fulgt en del retningslinjer (WCAG og WAI-ARIA) for å få ett universelt utformet produkt med tanke på målgruppen. Dette går i hovedsak ut på å bruke riktig syntax på HTML-koden og ha med tilleggs informasjon (så som "alt" attributter) for å ivareta informasjon, navigasjon og brukervennlighet. Ved å bruke "em" som størrelsesenhet kan brukere forstørre og forminske teksten på sidene uten at dette går utover utseende. Utover dette har vi brukt noen få ARIA attributter for å markere informasjon som endrer seg hyppig (aria-live på klokken i toppmenyen) og elementer som «popper» fram så som kalenderen(aria-haspopup). Kalenderen er forøvrig fullt navigerbar med tastatur og er hentet fra W3C. Den benytter seg av JavaScript og vil derfor ikke fungere om dette ikke er aktivert/tilgjengelig for brukerens nettleser. Derfor har vi også vanlige tekstfelt hvor brukeren kan taste inn dato. Alle felt i skjemaet benytter seg av standard XHTML tagger brukt i henhold til WCAG retningslinjene. Elementet "fieldset" samler input-felt som tilhører hverandre og gir dem således en kontekst sammen med beskrivelsen i "legend" elementene. Bruken av «label» navngir hvert enkelt valg og gir en større "klikkbar" flate for å markere for eksempel en liten radio-knapp. Skjemaer og sider følger ellers en logisk struktur og er enkel å navigere med tab. JavaScript funksjoner sjekker at kritiske felt er valgt. Hvis ett felt ikke er fylt i vil det gis beskjed om dette via ett "alert" dialog-vindu og fokus settes til det feltet som mangler utfylling. Likeledes blir dette brukt der man vil bekrefte at noe blir utført så som ved sletting av beboere. 8

Kontrasten mellom tekst og bakgrunn er god og selv om det brukes farge-koder for å indikere status er det alltid tekstlig en beskrivelse til disse elementene. Ikonene er laget for å være gjenkjennelige og har "alt" attributter med beskrivelse av hva elementet gjør. TimeStamp i den utforming den er i dag er ment for å vises i Firefox (for Windows) og krever at JavaScript er aktivert for å kunne fungere optimalt opp mot bruker. 5 Database design Det følgende kapittel tar for seg designet på databasen i TimeStamp; Entiteter, relasjoner, tabeller og datatyper. 5.1 ER-diagram ER-diagrammet under har ingen mange-til-mange relasjoner som må brytes. Alle relasjonene er av typen "en-til-null-eller-mange" angitt med standard UML notasjon. Se figur 7. Figur 7. ER diagram 9

Ansatte skal kunne loggføre flere vakter(dagvakt, Aftenvakt, Nattevakt), være oppført på flere vakter og kunne være registrert med innlogginger flere ganger. Motsatt skal disse oppføringene bare gjelde for en enkelt ansatt. Beboere på skal være tilknyttet kun ett rom, men ett rom kan være tilknyttet flere beboere. Dette er gjort fordi vi tar vare på historikken til beboerne.( I vår implementering av databasen er det allikevel kun én aktiv beboer per rom). Beboerne skal kunne ha mange ut- og innganger, men hver av disse gjelder kun én beboer. Besøksliste(personalia på besøkende) skal kun knyttes til én beboer som da kan ha mange besøkende. Besøk(tid og dato på besøkendes inn- og utgang) er knyttet til en besøkende person, men en person kan foreta flere besøk. Melding er en frittstående entitet uten relasjoner 5.2 Logisk skjema Som vi ser av ER-diagrammet er alle relasjonene knyttet til entiteten "Ansatt" eller "Beboer", med unntak av "Melding" som er ett enkeltstående objekt. Vi velger derfor å dele disse opp videre i to tabelloversikter hvor primærnøklene er markert med en gul nøkkel slik det ser ut i Microsoft SQL Server Management Studio. I tillegg har vi markert fremmednøklene med rødt for å synliggjøre disse. Se figur 8 og 9. 10

Figur 8. Relasjoner tilknyttet ansatt 11

Figur 9. Relasjoner tilknyttet beboere 5.3 Datatyper, begrensninger og forklaring til tabellene Datatypene som er brukt i databasen er int, varchar og text. Det kan også nevnes at selv om noen kolonner er satt til å godta NULL-verdier er dette gjort ut ifra ett testings perspektiv. Dette begrenses i stor grad i overliggende lag i TimeStamp systemet ved bruk av inputvalidering. Den noe "overdimensjonerte" maksimumsstørrelsen på varchar datatypene er likeledes satt med hensyn på enkelthet i utviklingen av systemet. I avsnittene under viser vi mer detaljert hvilke datatyper som er brukt i de forskjellige tabellene og en forklaring på kolonnenavnene. 12

5.3.1 Beboer tabellen Beboer tabellen inneholder data om beboerne på Elevator så som personalia, bilde og om disse er nåværende beboere eller blitt sjekket ut. Denne er knyttet til Rom tabellen. Figur 10. Beboer tabellen Kolonne Datatype Begrensning(Constraint) Forklaring beboerid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 fornavn varchar(50) NOT NULL Fornavn til beboer etternavn varchar(50) NOT NULL Etternavn til beboer romnr int Romnummer til beboer tlfnr varchar(20) Telefonnummer til beboer dato_innsjekk varchar(50) Blir satt når beboer blir opprettet via PHP dato_utsjekk varchar(50) Blir satt når beboer blir sjekket ut via PHP romid int FOREIGN KEY Fremmednøkkel fra Rom tabellen bilde varchar(50) filsti til bilde Inn_tid Ut_tid IKKE I BRUK IKKE I BRUK 13

5.3.2 Utinngang tabellen Utinngang tabellen lagrer data om inn- og utganger beboere foretar og hvilken status disse har til enhver tid. Denne er knyttet til Beboer tabellen. Figur 11. Utinngang tabellen Kolonne Datatype Begrensning(Constraint) Forklaring utinn int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 beboerid int FOREIGN KEY Fremmednøkkel fra Beboer tabellen utdato varchar(50) Blir satt når beboer er registrert med en utgang via PHP inndato varchar(50) Blir satt når beboer er registrert med en inngang via PHP formaal varchar(50) Formålet for utgangen kommentar varchar(50) Kommentar til utgangen status varchar(50) inne eller borte ut_tid varchar(50) Blir satt når beboer er registrert med en utgang via PHP inn_tid varchar(50) Blir satt når beboer er registrert med en inngang via PHP 14

5.3.3 Rom tabellen Rom tabellen inneholder romnummer på rommene på Elevator og om disse er ledige eller opptatte. Denne er knyttet til Beboer tabellen. Figur 12. Rom tabellen Kolonne Datatype Begrensning(Constraint) Forklaring romid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 romnr int NOT NULL nummer på rom status varchar(50) ledig eller opptatt 5.3.4 Besooksliste tabellen Besooksliste tabellen innehar data om besøkende som er godkjente av Elevator. Denne er knyttet til Beboer tabellen Figur 13. Besooksliste tabellen 15

Kolonne Datatype Begrensning(Constraint) Forklaring besookslisteid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 beboerid int FOREIGN KEY Fremmednøkkel fra Beboer tabellen fornavn varchar(50) NOT NULL Fornavn på besøkende etternavn varchar(50) NOT NULL Etternavn på besøkende dato_registrert varchar(50) Blir satt når besøkende blir opprettet via PHP 5.3.5 Besook tabellen Besook tabellen er knyttet til Besooksliste tabellen og inneholder data om hvilken dato og tid besøket skjedde samt en kommentar. Figur 14. Besook tabellen Kolonne Datatype Begrensning(Constraint) Forklaring besookid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 besookslisteid int FOREIGN KEY Fremmednøkkel fra Besooksliste tabellen dato varchar(10) Blir satt når beboer er registrert med ett besøk via PHP tidinn varchar(5) Blir satt når beboer er registrert med ett besøk via PHP tidut varchar(5) Blir satt når beboer er registrert med ett besøk ut. Blir opprettet via PHP kommentar text kommentar til at besøk blir registrert inn 16

5.3.6 Ansatt tabellen Ansatt tabellen inneholder brukernavn og passord på ansatte og om disse har administrator rettigheter eller ikke. Figur 15. Ansatt tabellen Kolonne Datatype Begrensning(Constraint) Forklaring ansattid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 navn varchar(36) Brukernavn til ansatt passord varchar(36) Passord til ansatt admin varchar(3) NOT NULL ja eller nei, avgjør om ansatte for tilgang til administrator funksjonene dato_start varchar(50) Blir satt når ansatt blir opprettet via PHP dato_ut varchar(50) Blir satt via PHP når ansatt slettes(felt blir blanket ut) 17

5.3.7 Innlogging tabellen Innlogging tabellen lagrer data om hvilken ansatt som var logget inn på ett gitt tidspunkt. Den er knyttet til Ansatt tabellen. Figur 16. Innlogging tabellen Kolonne Datatype Begrensning(Constraint) Forklaring innloggid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 ansattid int FOREIGN KEY Fremmednøkkel fra Ansatt tabellen innlogg varchar(50) Dato og tid for innlogging, satt vi PHP utlogg varchar(50) Dato og tid for utlogging, satt vi PHP 5.3.8 Vaktliste tabellen Vaktliste tabellen lagrer data om vaktene som er satt opp, og endringer som blir gjort i disse vaktene. Denne henger sammen med Ansatt tabellen. 18

Figur 17. Vaktliste tabellen Kolonne Datatype Begrensning(Constraint) Forklaring vaktlisteid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 ansattid int FOREIGN KEY Fremmednøkkel fra Ansatt tabellen navn varchar(50) NOT NULL Navn på ansatt vakten er satt opp på ny_vakt varchar(50) Navn på ansatt som har byttet til vakten dato_endret varchar(50) Blir satt via PHP når ansatt bytter vakt vaktskift varchar(50) NOT NULL dagvakt, aftenvakt eller nattevakt vakt_dato varchar(10) Velges når man legger til ny vakt 5.3.9 Vakt 1, 2 og 3 tabellene Disse tabellene lar de ansatte lagre kommentarer til sine vakter og om de har utført visse arbeidsoppgaver. Den er tilknyttet Ansatt tabellen. 19

Figur 18. Vakt1 tabellen Kolonne Datatype Begrensning(Constraint) Forklaring vaktid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 ansattid int FOREIGN KEY Fremmednøkkel fra Ansatt tabellen navn varchar(50) NOT NULL Navn på ansatt som loggfører vakt internpost varchar(50) Om dette har blitt utført, ja eller nei returpost varchar(50) Om dette har blitt utført, ja eller nei romsjekk varchar(50) Om dette har blitt utført, ja eller nei kommentar text Kommentar til vaktlogg dato varchar(50) NOT NULL Dato for vakt Figur 19. Vakt2 tabellen 20

Kolonne Datatype Begrensning(Constraint) Forklaring vaktid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 ansattid int FOREIGN KEY Fremmednøkkel fra Ansatt tabellen navn varchar(50) NOT NULL Navn på ansatt som loggfører vakt vask_andre varchar(50) Om dette har blitt utført, ja eller nei vask_tredje varchar(50) Om dette har blitt utført, ja eller nei sjekkliste varchar(50) Om dette har blitt utført, ja eller nei kommentar text Kommentar til vaktlogg dato varchar(50) NOT NULL Dato for vakt Figur 20. Vakt3 tabellen Kolonne Datatype Begrensning(Constraint) Forklaring vaktid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 ansattid int FOREIGN KEY Fremmednøkkel fra Ansatt tabellen navn varchar(50) NOT NULL Navn på ansatt som loggfører vakt lys varchar(50) Om dette har blitt utført, ja eller nei runde varchar(50) Om dette har blitt utført, ja eller nei 21

sjekkliste varchar(50) Om dette har blitt utført, ja eller nei kommentar text Kommentar til vaktlogg dato varchar(50) NOT NULL Dato for vakt 5.3.10 Melding tabellen Melding tabellen lar ansatte og administratorer lagre meldinger som vises til alle innloggede brukere. Denne er ikke tilknyttet noen andre tabeller. Figur 21. Melding tabellen Kolonne Datatype Begrensning(Constraint) Forklaring meldingid int PRIMARY KEY IDENTITY Primærnøkkel, øker automatisk med 1 tekst text NOT NULL Teksten på meldingen dato varchar(50) NOT NULL Dato meldingen blir opprettet, settes via PHP forfatter varchar(50) Navn på bruker som oppretter meldingen, hentes via PHP tid varchar(50) Tid meldingen blir opprettet, settes via PHP 22

6 Filer og filstruktur Dette kapitelet tar for seg hvilke filer systemet bruker og hvordan disse henger sammen. For ett fullstendig diagram over filstrukturen se vedlegg 11. 6.1 Registrere beboer ut eller besøk inn Registrere beboer ut eller besøk inn Filnavn Sammenhengende filer Beskrivelse registrer_ut.php reg_besook_db.php, reg_ut_db.php. Oversikt over valgt beboer med mulighet for registrering ut eller besøk inn. Liste over 5 siste utganger og besøkende. reg_besook_db.php - Sender informasjon om besøkende til databasen. reg_ut_db.php - Sender informasjon til databasen når beboer skal ut. Figur 22. Registrere beboer ut eller besøk inn 6.2 Registrere beboer inn eller besøk ut Registrere beboer inn eller besøk ut Filnavn Sammenhengende filer Beskrivelse registrer_inn.php reg_besook_ut_db.php, reg_inn_db.php. Oversikt over valgt beboer med mulighet for registrering inn eller besøk ut. Liste over 5 siste utganger og besøkende. reg_besook_ut_db.php - Sender informasjon til databasen når besøkende er ferdig. reg_inn_db.php - Sender informasjon til databasen når beboer kommer tilbake. 23

Figur 23. Registrere beboer inn eller besøk ut 6.3 Opprette generell melding Opprette generell melding Filnavn Sammenhengende filer Beskrivelse admin_melding.php admin_melding_db.php Oppretting av ny generell melding for index i TimeStamp. Liste med 5 siste meldinger. admin_melding_db.php - Sender ny generell melding til databasen. Figur 24. Opprette generell melding 24

6.4 Opprette beboer Opprette beboer Filnavn Sammenhengende filer Beskrivelse admin_beboer_opprett.php admin_beboer_registrer.php Oppretting av ny beboer i TimeStamp. Liste med aktive beboere i TimeStamp. admin_beboer_registrer.php - Sender informasjon om ny beboer til databasen. Figur 25. Opprette beboer 6.5 Endre beboer Endre eller sjekke ut beboer Filnavn Sammenhengende filer Beskrivelse admin_beboer_endre.php admin_beboer_endre_db.php Endring av valgt beboer. admin_beboer_endre_db.php - Sender endret informasjon om beboer til databasen. admin_beboer_liste_endre.php admin_beboer _endre.php, admin_beboer_reg_ut.php. Oversikt over aktive beboere I TimeStamp. Mulighet for endring og registrering ut av beboere. admin_beboer_reg_ut.php - Registrerer valgt beboer ut av TimeStamp. 25

Figur 26. Endre eller sjekke ut beboer 6.6 Slette beboer Slette beboer Filnavn Sammenhengende filer Beskrivelse admin_beboer_liste_slett.php admin_beboer _slett_db.php Liste over beboere som er registrert ut av TimeStamp. Mulighet for sletting av beboere. admin_beboer_slett_db.php - Fjerner valgt beboer og alt som hører til denne beboeren (besøkende + logger). Figur 27. Slette beboer 26

6.7 Opprette besøkende Opprette besøkende Filnavn Sammenhengende filer Beskrivelse admin_besookende_liste.php admin_besookende_opprett.php Liste over aktive beboere i TimeStamp. Mulighet for oppretting av besøkende for valgt beboer. admin_besookende_opprett.php admin_besookende_opprett_db.php Oppretting av ny besøkende for valgt beboer. Liste over registrerte besøkende for valgt beboer. admin_besookende_opprett_db. php - Sender informasjon om ny besøkende til databasen. Figur 28. Opprette besøkende 6.8 Endre besøkende Endre besøkende Filnavn Sammenhengende filer Beskrivelse admin_besookende_liste_endre.ph p admin_besookende _endre.php Liste over aktive beboere i TimeStamp. admin_besookende_endre.php admin_besookende_endre_valg.p hp Liste over registrerte besøkende til valgt beboer. Mulighet for endring av besøkende. admin_besookende_endre_valg.p admin_besookende_endre_valg_d Endring av valgt besøkende. hp admin_besookende_endre_valg_d b.php b.php - Sender endret informasjon om valgt besøkende til databasen. 27

Figur 29. Endre besøkende 6.9 Slette besøkende Slette besøkende Filnavn Sammenhengende filer Beskrivelse admin_besookende_liste_slett.php admin_besookende _slett.php Liste over aktive beboere i TimeStamp. admin_besookende_slett.php admin_besookende_slett_db.php Liste over registrerte besøkende for valgt beboer med mulighet for sletting. admin_besookende_slett_db.php - Fjerner valgt besøkende fra databasen. Figur 30. Slette besøkende 28

6.10 Opprette bruker/ansatt Opprett bruker/ansatt Filnavn Sammenhengende filer Beskrivelse admin_ansatt_opprett.php admin_ansatt_opprett_db.php Oppretting av ny bruker for TimeStamp. Liste med oversikt av brukere. admin_ansatt_opprett_db.php - Sender informasjon om ny bruker til databasen. Figur 31. Opprette bruker/ansatt 6.11 Endre bruker/ansatt Endre bruker/ansatt Filnavn Sammenhengende filer Beskrivelse admin_ansatt_endre.php admin_ansatt_endre_db.php Endring av brukernavn, passord og admin. admin_ansatt_endre_db.php - Sender endret informasjon om valgt bruker til databasen. admin_ansatt_liste_endre.php admin_ansatt _endre.php Liste over registrerte brukere i TimeStamp med mulighet for endring. 29

Figur 32. Endre bruker/ansatt 6.12 Slette bruker/ansatt Slette bruker/ansatt Filnavn Sammenhengende filer Beskrivelse admin_ansatt_liste_slett.php admin_ansatt_ slett_db.php Liste over registrerte brukere i TimeStamp med mulighet for sletting. admin_ansatt_slett_db.php - Fjerner valgt bruker fra databasen. Figur 33. Slette bruker/ansatt 30

6.13 Opprette og endre vaktliste Opprette og endre vaktliste Filnavn Sammenhengende filer Beskrivelse admin_vaktliste.php admin_vaktliste_db.php, admin_vaktliste_endre.php Oppretting av vaktliste innlegg. Oversikt over vaktliste med mulighet for endring på vaktlisten. admin_vaktliste_db.php - Sender informasjon om nytt vaktliste innlegg til databasen. admin_vaktliste_endre.php admin_vaktliste_endre_db.php Endring av valgt vaktliste innlegg. admin_vaktliste_endre_db.php - Sender informasjon om ny vakt for valgt vaktskift til databasen. Figur 34. Opprette og endre vaktliste 6.14 Opprette og endre vaktlogg Opprette og endre vaktlogg Filnavn Sammenhengende filer Beskrivelse admin_vaktlogg.php admin_vaktskift1_db.php, admin_vaktskift2_db.php, admin_vaktskift3_db.php, admin_vakt1_endre.php, admin_vakt2_endre.php, admin_vakt3_endre.php. Oppretting av innlegg for dagvakt, aftenvakt og nattevakt. Liste over vaktskift 1 til 3 med mulighet for endring av de forskjellige loggene. admin_vakt1_endre.php admin_vakt1_endre_db.php Endring av vakt innlegg i vaktlogg 1. admin_vakt2_endre.php admin_vakt2_endre_db.php Endring av vakt innlegg i vaktlogg 2. admin_vakt3_endre.php admin_vakt3_endre_db.php Endring av vakt innlegg i vaktlogg 3. 31

admin_vaktskift1_db.php - Sender informasjon om dagvakt til databasen. admin_vaktskift1_endre_db.php - Sender endret informasjon om valgt dagvakt til databasen. admin_vaktskift2_db.php - Sender informasjon om aftenvakt til databasen. admin_vaktskift2_endre_db.php - Sender endret informasjon om valgt aftenvakt til databasen. admin_vaktskift3_db.php - Sender informasjon om nattevakt til databasen. admin_vaktskift3_endre_db - Sender endret informasjon om valgt nattevakt til databasen. Figur 35. Opprette og endre vaktlogg 6.15 Etterbehandling av utinngang logg Etterbehandling av utinngang logg Filnavn Sammenhengende filer Beskrivelse admin_utinngang.php admin_utinngang_db.php Manuell innføring for beboer i utinngang logg. admin_utinngang_db.php - Sender informasjon om utinngang til databasen. 32

Figur 36. Etterbehandling av utinngang logg 6.16 Søking i logger Søking i logger Filnavn Sammenhengende filer Beskrivelse admin_sook.php admin_utinn_resultat.php, admin_besook_resultat.php, admin_beboer_resultat.php. Søking i utinngang-, besøkende- og beboer logg. admin_beboer_resultat.php - Viser søkeresultat fra beboer logg i TimeStamp fra x-dato til y-dato. admin_besook_resultat.php - Viser søkeresultat fra besøk logg til valgt beboer i TimeStamp fra x- dato til y-dato. admin_utinn_resultat.php - Viser søkeresultat fra utinngang logg til valgt beboer i TimeStamp fra x-dato til y-dato. Figur 37. Søking i logger 33

6.17 Opprette rom Opprette rom Filnavn Sammenhengende filer Beskrivelse admin_rom_opprett.php admin_rom_opprett_db.php Oppretting av nytt rom med liste over registrerte rom. admin_rom_opprett_db.php - Sender informasjon om nytt rom til databasen. Figur 38. Opprette rom 6.18 Slette rom Slette rom Filnavn Sammenhengende filer Beskrivelse admin_romliste.php admin_rom_slett_db.php Liste over ledige rom med mulighet for sletting. admin_rom_slett_db.php - Fjerner valgt rom fra databasen. Figur 39. Slette rom 34

6.19 Diverse filer og mapper Filnavn Sammenhengende filer Beskrivelse index.php registrer_ut.php, registrer_inn.php, admin_melding.php. Hovedsiden for TimeStamp. Oversikt over beboere med status. Viser generell melding som kan admin_valg.php botbar.php admin_beboer_opprett.php, admin_beboer_liste_endre.php, admin_beboer_liste_slett.php, admin_besookende_liste.php, admin_besookende_liste_endre.php, admin_besookende_liste_slett.php, admin_ansatt_opprett.php, admin_ansatt_liste_endre.php, admin_ansatt_liste_slett.php, admin_vaktliste.php, admin_vaktlogg.php, admin_utinngang.php, admin_sook.php, admin_rom_opprett.php, admin_romliste.php. *Blir brukt i alle filer med unntak av login.php, checklogin.php og _db.php settes av ansatte. Administrator side med valg for beboer, besøkende, ansatt, vakter, logg og rom. Viser informasjon om Fretex Elevator. filer.* checklogin.php index.php Innlogging med feilmelding ved feil brukernavn eller passord. login.php checklogin.php Logginnside for TimeStamp. logout.php login.php Logger bruker ut av TimeStamp. SQL.php *Blir brukt i alle filer der det blir brukt SQL oppkobling.* Oppkoblingsinformasjon for server og database. style.css Brukes i alle filer man kan se i browser. Stil ark for utseende av TimeStamp. topbar.php *Blir brukt i alle filer med unntak av login.php, checklogin.php og _db.php filer.* Mappe Innhold Beskrivelse bilder/ Diverse bildefiler Bilder av beboere clock/ coolclock.js, excanvas.js, moreskins.js, bunn.png, top.png. Javascript og bildefiler for klokke på innloggingssiden img_decor/ Diverse bildefiler Logos og ikoner javascript/ common.js, date.js, jquery-1.2.3.min.js, showhide.js. Javascript filer for WAI-ARIA kalender og show/hide funksjon. tmp/ Midlertidige bildefiler Ved opplasting av bilder lagres disse midlertidig i denne mappen. 35

8 Sikkerhet TimeStamp er laget for å bli brukt på et intern sikret nettverk. Sikkerheten til systemet er derfor avhengig av de eksisterende sikkerhetstiltakene som blir tatt i bruk hos Elevator. Det ble derfor bestemt med oppdragsgiver at vi ikke krypterer eller legger til noen andre sikkerhetstiltak, bortsett fra en enkel innlogging. Brukernavn og passord kreves for å få tilgang til systemet. I tillegg er TimeStamp er delt opp i to deler; vanlig bruker(ansatt) og administrator. Sistnevnte har utvidet tilgang til funksjoner i systemet. Slik som å slette og opprette nye beboere, brukere og besøkende. På en slik måte unngår man også at feil og utilsiktede endringer foretas av vanlig bruker. 9 Avsluttende del TimeStamp er i dag en fullt fungerende prototype som kan implementeres hos Fretex Elevator i sin nåværende tilstand. Systemet oppfyller de tekniske kravene som ble satt i samråd med oppdragsgiver og det kreves ikke store resurser for å utføre dette. Slik TimeStamp er designet er det lagt opp til at man skal kunne utvide systemet på flere områder og kan skaleres enkelt. Webteknologiene som er brukt er svært utbredt og kan med fordel benyttes med andre typer databaser og webservere om ønskelig. Om man for eksempel tar i bruk LAMP-stacken får man ett system som har veldig lav kostnad. Dette åpner for andre anvendelsesområder utover det dette prosjektet omfatter. Om systemet blir tatt i bruk vil man sannsynligvis avdekke noen få feil og mangler, men dette er ett fellestrekk for mange programmer og systemer som befinner seg tidlig i sin livssyklus. Vi mener at TimeStamp er ett robust system som løser prosjektets oppgave på en god måte og gir oppdragsgiver ett godt verktøy å bruke i sin daglige drift. 36

10 Figurliste Figur 1. Login... 2 Figur 2. Vaktliste for vanlig bruker... 4 Figur 3. Vaktliste som administrator... 4 Figur 4. Vaktliste URL... 5 Figur 5. Forside som administrator... 5 Figur 6. klient-server arkitektur... 6 Figur 7. ER diagram... 9 Figur 8. Relasjoner tilknyttet ansate... 11 Figur 9. Relasjoner tilknyttet beboere... 12 Figur 10. Beboer tabellen... 13 Figur 11. Utinngang tabellen... 14 Figur 12. Rom tabellen... 15 Figur 13. Besooksliste tabellen... 15 Figur 14. Besook tabellen... 16 Figur 15. Ansatt tabellen... 17 Figur 16. Innlogging tabellen... 18 Figur 17. Vaktliste tabellen... 19 Figur 18. Vakt1 tabellen... 20 Figur 19. Vakt2 tabellen... 20 Figur 20. Vakt3 tabellen... 21 Figur 21. Melding tabellen... 22 Figur 22. Registrere beboer ut eller besøk inn... 23 Figur 23. Registrere beboer inn eller besøk ut... 24 Figur 24. Opprette generell melding... 24 Figur 25. Opprette beboer... 25 Figur 26. Endre eller sjekke ut beboer... 26 Figur 27. Slette beboer... 26 Figur 28. Opprette besøkende... 27 Figur 29. Endre besøkende... 28 Figur 30. Slette besøkende... 28 Figur 31. Opprette bruker/ansatt... 29 Figur 32. Endre bruker/ansatt... 30 Figur 33. Slette bruker/ansatt... 30 Figur 34. Opprette og endre vaktliste... 31 Figur 35. Opprette og endre vaktlogg... 32 Figur 36. Etterbehandling av utinngang logg... 33 Figur 37. Søking i logger... 33 Figur 38. Opprette rom... 34 Figur 39. Slette rom... 34 37