Vidareutveckling av lokalbokningssystem



Relevanta dokument
Slutrapport Thunderbug

Hemsideutveckling för Anjool AB

Introduktion till MySQL

Användarbeskrivning ARBETSGIVARINTYG. för Sveriges alla arbetsgivare. arbetsgivarintyg.nu. En ingång för alla användare. Innehåll. Version 1.

Innehållsförteckning. Sidan 2 (24)

Aktivitetsstöd Närvarorapportering. Ansvarig i Föreningen

WP-Edit. Robin Larsson Martin Davik. Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet

Berth Arbman. Välkommen till bokningssystemet myweblog!

Användarmanual för ESS Bokningssystem 5.0. ESS Bokningssystem för bokning av vaktpass, sjösättning och upptagning samt arbetspass och aktiviteter

Webbsida och ett bokningssystem

Aktivitetsstöd Behörighet - Ledare

Datum: Version 1.6. Sidan 1 (43)

STADSBYGGNADSFÖRVALTNINGEN. Aktivitetsstöd. Behörigheten Föreningsadministratör. Datum: Version 2. Sidan 1 (30)

Manual för din hemsida

Funktionerna kan variera beroende på vilka funktionsområden skolan valt att aktivera.

12 Webb och kurshemsidor

Nya webbservern Dvwebb.mah.se

Inloggningsuppgifter till Skola24

Skapa din egen MediaWiki

Datatal Flexi Presentity

Manual KomMa Intra VOF

Frakt och webbutiksinställningar

Utveckling av Brooklyn Tigers webbplats

Börja skriv för a6 lägga in text. Handbok - de la gardienätet. för vårdnadshavare. Uppdaterad

Webbservrar, severskript & webbproduktion

Hemsideprojekt för Kulas Ponnystuteri

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

Användarmanual för Lagledning.se

Innehåll. MySQL Grundkurs

För att få konto måste vårdnadshavaren fylla i en ansökan skrifligt och e-posta skolan. Skola24 skickar då en aktiveringskod till vårdnadshavaren.

Närvarorapportering. Ansvarig i Föreningen

Skola24 Aktivera konto

Använda Limesurvey. Efter inloggning kommer du till startsidan för Limesurvey. Nedan visas en bild på de val som kan göras från startsidan.

Kommentar [k1]: Behöver vi kommentera det som finns till höger ovanför schematyp?

Det här dokumentet går kortfattat igenom registrerings- och ansökningsprocessen.

Slutrapport för JMDB.COM. Johan Wibjer

Aktivitetsstöd Ledare

WebViewer Manual för administratör Nova Software AB

Datatal Flexi Presentity

Lathund för Alingsås TK s bokningssystem

Schema. Under dessa menyer finns dina tillgängliga funktioner. Alternativ kan saknas om skolan inte aktiverat en funktion. Nova Software AB 1 (12) 402

Nya Mina vårdkontakter. En presentation över det nya gränssnittet för invånare

Handbok för vårdnadshavare Dexter Värmdö Gymnasium... 1

SE/Rapport_tillganglig_webb_2004_14.pdf 2 webzone.k3.mah.se/k99ac3hl/helenalackmagisterkogniton2003.

Webbinställningar. Opus Online Client (version ) Sida 1 av 12

En guide till Hembygdsgilletsgillets intranät.

Outlook Web App 2013

Föräldrar i Skola24. I systemet har föräldrar möjlighet att:

Handledning. Biträdessidan. Handledning till Biträdessidan, 2013 version 1.0 :

Forskare & Handledare. 1. Inloggning

Handbok för medborgare i Dexter. Version 2.0 för Dexter 3.9 Anpassad för Lapplands Gymnasium /MAEV

ODD FELLOW ORDEN. Manual. Sidverktyget. oddfellow.se. version

Scio. en liten användarguide. Skriven av: Josefine Siewertz

Katalogen i 3Växel webb.

Hja lpdokument fo r IncertOnline

Logga in på din hemsideadministration genom dina inloggningsuppgifter du fått.

1. Ledare Hantera deltagare Rapporter Övriga menyer... 15

Manual Webb-admin för evenemang

Kapitel 4 Arkivmenyn Innehåll

Användarmanual HOIF.org

Användarmanual NeverLOST webbokning

ALEPH ver. 16 Introduktion

Avancerade Webbteknologier

Handbok för medborgare i Dexter

PREMIUM COMAI WEBBKALENDER

IdéTorget Manual. Google kalender. Skapa din kalender på Internet. Uppdaterad oktober 2011

Handledning. Biträdessidan - E-tjänst för offentliga biträden. Handledning till Biträdessidan, 2017 version 1.4 :

Användarmanual. Visma TendSign Basic. Uppdaterad VISMA COMMERCE AB

LUVIT Portal Användarmanual

Guide för Innehållsleverantörer

B = Bokad tid. T = Tillfälligt bokad tid. L = Ledig tid. X = Spärrad tid

Manual - Ledningskollen i mobilen

Manual webb-bokning. Giltig från Kontakt: Emilia Lindberg, turist- och fritidskonsulent

ANVÄNDARBESKRIVNING FÖR PERSONAL

Elever i Skola24 Genom elevrollen i Skola24 kan elever ta del av en mängd användbar information.

qwertyuiopasdfghjklzxcvbnmq ertyuiopasdfghjklzxcvbnmqwer tyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiop

Twisted Scissors. Ett projekt i kursen tnm /2007. Björn Gustafsson bjogu419@student.liu.se. Mats Wedell matwe812@student.liu.

1 Inledning/översikt Examensarbete... 4

av Per Hjalmarson, Interaktionsdesign i kursen Grafiska Gränssnitt vid IT-universitet i Göteborg

Användarmanual CallPad

Slutrapport YUNSIT.se Portfolio/blogg

Lathund för Tibro Tennisklubbs bokningssystem

Garantianspråk. Manual

Manual för visionutv.net Redigera

Zimplit CMS Manual. Introduktion. Generell Information

Cramo Business Support. användar handbok

Kort om World Wide Web (webben)

Användarmanual för webbapplikationen Fejjan för alla. Manualens version:1.0. Datum: 5 februari 2014

1 Starta Internet Explorer och surfa till Ange användarnamn och lösenord för att logga in i bokningssystemet.

Genomgång utav KURT Kursvärderingssystemet för Linköpings Universitet

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Fraktjakt manual för registrering av Transportföretag och användare

ADAD-net. Användarmanual INDIVIDEN. Råbe och Kobberstad Februari 2010

InSite Prepress Portal

Landstinget i Värmland, mars 2012

Datum Ert datum Vår beteckning Banförvaltningen Vidmakthållande SE Borlänge Besöksadress: Jussi Björlings väg 2

Ansökan till Yrkes-sfi i Skåne EN INTRODUKTION TILL PANELEN

Användarmanual Administratör

Uppdaterad: Lathund. Aktivitet

SAFE WORK. Instruktioner till Företagets egen sida - för dig som är chef/kontaktperson på ett entreprenadföretag

Transkript:

Beteckning: Institutionen för matematik, natur- och datavetenskap Vidareutveckling av lokalbokningssystem Mikael Eriksson juni 2007 Examensarbetete, 10 poäng, B Datavetenskap Internetteknologi Examinator: Ann-Sofie Östberg Handledare: Andreas Starborg

Vidareutveckling av lokalbokningssystem av Mikael Eriksson Institutionen för matematik, natur- och datavetenskap Högskolan i Gävle S-801 76 Gävle, Sweden E-post: nit05men@student.hig.se Abstrakt Under hösten 2006 har några studenter vid Högskolan i Gävle utvecklat ett lokalbokningssystem till Lärcentrum i Sandviken. Lokalbokningssystemet använder en MySQL databas och webbsidorna är skrivna med HTML samt PHP för kommunikationen mot databasen. Jag har under arbetets gång hittat och åtgärdat en säkerhetsbrist i systemet samt implementerat nya funktioner i systemet för att göra det bättre och mer användarvänligt. Efter vidareutvecklandet av det befintliga lokalbokningssystemet uppfyller det nu kundens alla ursprungliga krav på funktioner. Nyckelord: Bokningssystem, Webb, PHP, HTML, MySQL 1

Innehållsförteckning 1 Inledning... 3 1.1 Kundens krav på funktioner... 3 1.2 Bakgrund... 3 1.3 Syfte... 4 1.4 Frågeställningar... 4 1.5 Metod... 4 2 Teknisk bakgrund... 5 2.1 Servern... 5 2.2 MySQL... 5 2.3 HTML... 5 2.4 PHP... 5 2.5 JavaScript... 5 2.6 Lokalbokningssystemets funktion... 6 3 Resultat... 8 3.1 Periodsbokning... 8 3.2 Skapa PDF-dokument... 9 3.3 Bokningsstatistik... 9 3.4 Ökad säkerhet... 9 3.5 Radera gamla bokningar... 10 3.6 Förändring av systemets design... 10 3.7 Kontroll av lokalers status utan inloggning... 11 3.8 Säkerhetsbrist... 11 3.9 Boka timmar... 11 4 Avslutning... 13 4.1 Diskussion... 13 4.2 Slutsats... 15 5 Källförteckning... 16 5.1 Litteratur... 16 5.2 Internetsidor... 16 6 BILAGOR... 17 6.1 Databasmodell... 17 2

1 Inledning Lärcentrum i Sandviken har saknat ett bokningssystem för sina lokaler på Sandbacka Park. Under hösten 2006 har en grupp på sex studenter skapat ett lokalbokningssystem åt Lärcentrum, detta var ett projektarbete i delen Projektmetodik som ingår i kursen Systemintegration över Internet i Internetteknologiprogrammet 80 poäng på Högskolan i Gävle. Lokalbokningssystemet blev inte helt färdigt och en del av kundens önskade funktioner saknas fortfarande. Samtidigt behöver säkerheten ses över mer ingående nu när sidan är åtkomlig för alla på Internet. 1.1 Kundens krav på funktioner Tillgång till en enkel funktion för periodsbokning. Radera gamla bokningar från databasen. Skapa statistik över bokade lokaler samt bokningar av användare. 1.2 Bakgrund Systemet använder en MySQL-databas där information om användarna, lokalerna samt bokningarna lagras. Databasen består av 4 tabeller. user innehåller information om användarna. room innehåller information om lokalerna. location innehåller de olika skolområdena som lokalerna tillhör. booking innehåller information om bokningarna. Figur 1: Objektsmodell av databasen. Bokningssystemet är webbaserat och är skrivet i HTML för att presentera innehållet i webbläsaren, PHP för kommunikationen med databasen och JavaScript används för kontroll av inmatning på sidorna. För att använda lokalbokningssystemet krävs det att personen har ett användarkonto, detta konto skapas av en systemadministratör. Med hjälp av kontot kan användaren logga in i systemet med sin webbläsare och har där möjligheten att boka lokaler, se information om alla användares bokningar samt ändra och avboka egna bokningar. 3

Systemet har även en eller flera systemadministratörer vilka har tillgång till fler funktioner än de vanliga användarna. En systemadministratör har bland annat rättigheten att skapa samt ändra användare och lokaler. 1.3 Syfte Syftet med arbetet är att vidareutveckla det befintliga lokalbokningssystemet för att göra det mer användarvänligt och säkert samt implementera kundens önskade funktioner. 1.4 Frågeställningar Går det att ändra de fasta bokningsperioderna till valfria timmar? Är det möjligt att implementera alla de funktioner kunden önskar? Vilka funktioner bör implementeras för att göra systemet bättre? Har något under utvecklingen av systemet gjort att vidareutvecklingen blir svårare? 1.5 Metod Genom att gå igenom all kod och samtidigt utökat systemet med kundens önskade funktioner och samt öka användarvänligheten kan jag hitta och rätta till eventuella felaktigheter i koden. Jag har använt min kunskap inom HTML, PHP samt MySQL som erhållits under de kurser som ingår Internetteknologiprogrammet samt de kunskaper jag sedan tidigare har inom ämnet. Detta tillsammans med en del litteratur inom ämnet gör att jag kan hitta lösningar på eventuella problem som kan ske under arbetets gång. 4

2 Teknisk bakgrund Nedan går jag igenom hur lokalbokningssystemet är utvecklat samt hur systemet används. 2.1 Servern Lokalbokningssystemet ligger på en server i Lärarcentrums lokaler i Sandviken som har Ubuntu Linux version 6.10 installerat som operativsystem. På servern körs Apache version 2.0.5.5 webbserver med version 5.1.6 av PHP. Alla dessa tre programvaror är fria att använda gratis. 2.2 MySQL Databasen som systemet är kopplad till är en MySQL databas. MySQL är en populär databashanterare och en fri programvara som använder sig av frågespråket SQL, Structured Query Language. MySQL är en relationsdatabas som utvecklats av det svenska företaget MySQL AB och är den populäraste databashanteraren bland Linux användare men används även på andra operativsystem då den är gratis att använda för både privatpersoner och företag. 2.3 HTML Sidorna som systemet består av är kodade i HTML, HyperText Markup Language, som är en webbstandard för strukturering av text på webbsidor. Den senaste versionen HTML, 4.01 fastställdes av W3C 1997. W3C arbetar med att skapa standarder för webben bland annat för att webbsidor ska se likadana ut i alla webbläsare. 2.4 PHP Skriftspråket PHP, Hypertext Preprocessor, används för att kommunicera med databasen och skapa dynamiska webbsidor som ändras beroende på vad det finns för information i databasen. PHP är en fri programvara och är lätt att lära sig då det liknar språken Java och C. 2.5 JavaScript Skriftspråket JavaScript är utvecklat av Netscape och exekveras på klientsidan i webbläsaren. Trotts namnet har inte JavaScript något gemensamt med programspråket Java, vilket kan leda till förvirring och många tror att JavaScript är samma sak som Java. JavaScript används bland annat för att kontrollera att användaren har fyllt i alla fält och gjort nödvändiga val i ett formulär. Ett annat användningsområde för JavaScript är för att öppna nya fönster i webbläsaren, eller byta bilder i till exempel en meny när användaren för musen över en knapp. 5

2.6 Lokalbokningssystemets funktion Bokningssystemet ger användarna möjlighet att boka lokalerna på Lärcentrum i Sandviken under tre förvalda tidsperioder. De tre tidsperioderna är, förmiddag 08:00 till 12:00, eftermiddag 13:00 till 17:00 eller under hela dagen 08:00 till 17:00. Bokningar görs med utgångspunkt från en av två sidor som presenterar lokalerna status. Den ena sidan visar bokningsstatusen på alla aktiva lokaler under ett valbart datum med dagens datum som standard. Den andra sidan visar bokningsstatusen på alla aktiva lokaler under en femdagars period från ett valbart utgångsdatum med dagens datum som standard. Veckolistan över bokningarna visar inte lördagar och söndagar eftersom Lärcentrum i Sandviken inte har någon verksamhet på helgen. Genom att dessa dagar inte visas så kan så många bokningsbara dagar som möjligt visas. Figur 2: GBook - Lokalbokningssystem. Lokalens status visas med hjälp av olikfärgade knappar. De olika knapparna är: Boka Grön knapp, lokalen har ingen bokning. Boka FM Gul knapp, lokalen går att boka på förmiddagen. Boka EM Gul knapp, lokalen går att boka på eftermiddagen. Bokat Röd knapp, lokalen är bokad hela dagen. Ej bokbar Grå knapp, ej klickbar, lokalen går inte att boka. Till höger om knappen som visar lokalens status finns en informations knapp som är grå och inte klickbar om det inte finns någon bokning registrerad. Knappen är blå om lokalen har en eller flera bokningar och klickar användaren på den visas information om bokningarna. 6

Bokningsinformationssidan innehåller uppgifter om vilken användare som har gjort bokningen och vissa kontaktuppgifter som e-postadress och telefonnummer samt om användaren har angett någon extra information om bokningen. Användaren kan se en lista över sina bokningar, denna lista går att skriva ut. Det finns även möjlighet att visa en lista på en vald användares bokningar samt en lista på alla bokningar som gjorts på en vald lokal under en vald tidsperiod. Figur 3: Lista över den inloggade användarens kommande bokningar. Användaren kan ändra en redan gjord bokning. Denna funktion är dock begränsad till att det endast går att ändra tidsperioden till en annan ledig tidsperiod samma lokal och dag. När en systemadministratör loggar in i systemet får denna användare tillgång till en administratörsmeny. Där har administratören möjligheten att skapa en ny användare eller lokal. Administratören kan även ändra information om en befintlig användare eller lokal, till exempel namn eller antal platser. Vidare finns det en funktion för att avaktivera användare som inte längre ska ha möjlighet att använda systemet eller avaktivera en lokal som inte ska vara möjlig att boka under en period, kanske på grund av ombyggnation eller liknande. Figur 4: Administratörsmeny. En administratör kan även boka lokaler åt en annan användare av systemet. På detta sätt kan administratören boka lokaler åt en användare som inte har möjlighet att använda systemet just då, exempelvis om denna användare har problem med Internet. 7

3 Resultat Här nedan presenteras resultatet av arbetet med att vidareutveckla det befintliga lokalbokningssystemet. 3.1 Periodsbokning Ett av det viktigaste önskemålet kunden hade när vi tog på oss att utveckla lokalbokningssystemet var en funktion så att användarna av systemet på ett enkelt sätt kunde boka en lokal samma tidpunkt veckovis. Vissa kurser som hålls i Lärcentrums lokaler har alltid sina träffar samma tid och dag under hela terminen. För att underlätta bokningar av lokaler till dessa kurser vill kunden på ett enkelt sätt ha möjligheten att boka en lokal samma tid flera veckor åt gången. Under utvecklingen av lokalbokningssystemet blev denna funktion inte slutförd på grund av svårighetsgraden av att få funktion att fungera samt tidsbristen för färdigställandet av systemet. Funktionen prioriterades helt enkelt bort för att istället färdigställa de viktigaste funktionerna för att bokningssystemet skulle bli användbart. Denna funktion har nu färdigställts och implementerats i systemet och funktionen gör det lätt att boka en lokal i upp till 20 veckor genom ett fåtal klick. Figur 5: Periodsbokningsfunktion. Genom att användaren väljer lokal, dag, tidsperiod, antal veckor och ett startdatum görs en sökning i databasen med de valda parametrarna för att kontrollera så det inte finns någon bokning gjord den valda tidsperioden under de önskade dagarna. Resultatet av sökningen presenteras på webbsidan med möjlighet att boka tidsperioden de dagar lokalen är ledig samt se information om vem som bokat ifall lokalen redan är upptagen. När användaren klickar på en av de gröna bokningsknapparna öppnas en ny ruta där användaren får godkänna bokningen och när rutan stängs laddas sidan om och tiden visas nu som bokad. Genom att klicka på den blå informationsknappen kan användaren se information om vem som gjort bokningen. 8

Användaren kan sedan enkelt ändra någon av de valbara parametrarna till något annat, för att boka en annan lokal samma tid eller en annan lokal under samma tid, om den valda lokalen är upptagen. 3.2 Skapa PDF-dokument Under vidareutvecklingen av bokningssystemet upptäcktes att det fanns en funktion i PHP som gjorde det möjligt att skapa PDF-dokument. Jag har utvecklat en funktion så att användaren kan skapa ett PDF-dokument av sina bokningar som kan sparas eller skrivas ut för att på ett enkelt sätt få en överblick av bokningarna. På de två söksidorna där användaren kan söka efter bokningar för en vald lokal eller person under en vald tidpunkt finns nu också valet att skapa ett PDFdokument av sökresultatet. 3.3 Bokningsstatistik När användaren skapar en bokning för en lokal så ökas en räknare för lokalen samt en för användaren vilka på så sätt håller räkningen på hur många gånger som en lokal har blivit bokad samt hur många bokningar en användare har gjort. Statistiken över hur många bokningar en lokal har eller hur många bokningar en användare har gjort presenteras på två sidor under menyvalet sök. En systemadministratör kan nollställa statiken under administratörsmenyn och det går att nollställa användar- och lokalstatistiken var för sig. 3.4 Ökad säkerhet Jag har gått igenom alla sidor och sett till att det inte går att göra någon såkallad SQL-injektion. Någon utomstående kan med SQL-injektion försöka att komma in i bokningssystemet utan att vara användare av systemet eller förstöra databasen genom att fylla i SQL-kod i inmatningsrutorna. MySQL har funktionen att den inte tar emot någon SQL-kod som skickas med efter ett semikolon. Om alla SQLsatser på sidorna avslutas med ett semikolon förhindras att någon kan skicka med skadlig SQL-kod efter den befintliga koden. Alla SQL-satser avslutas nu med ett semikolon vilket förhindrar att någon kan skicka med skadlig SQL-kod från systemets inmatningssidor. Jag har även sett till att databaskopplingen stängs på alla sidor så det inte öppnas för många anslutningar till databasen vilket kan leda till att MySQL-servern kraschar. 9

3.5 Radera gamla bokningar För att förhindra att databasen växer och blir för stor finns det för systemadministratörer en möjlighet att radera gamla bokningar. Figur 6: Radering av gamla bokningar från databasen. På sidan som är åtkomlig från administratörsmenyn väljer administratören ett slutdatum med hjälp av kalendern och klickar sedan på knappen för att radera alla bokningar fram till det valda datumet från databasen. 3.6 Förändring av systemets design Jag har gjort vissa förändringar gällande sidans design vilket innebär att sidan visas korrekt på en skärm med 1024x768 som minsta upplösning. Kalendern har även uppdaterats grafiskt för en snyggare design och för att den ska bli mer användarvänlig. På sidan som presenterar en användares bokningar saknades det en IFRAME vilket innebar att en användare som hade fler bokningar än vad som får plats inom ramen av sidan, gjorde att sidan inte visades på ett korrekt sätt. Jag har nu lagt in en IFRAME så att sidan behåller sina proportioner även för användare med många bokningar. En IFRAME, i ram på svenska, är precis som det låter en ram i en annan sida. Huvudsidan har en ram där en annan sida visas och på så sätt kan huvudsidan behålla sina proportioner och listan med bokningar blir bläddringsbar. Alla bokningssidor har gjorts om så att kalendern nu visar den bokade dagens datum. Förut visades dagens datum vilket kunde förvirra användaren om vilken dag bokningen verkligen utfördes. 10

3.7 Kontroll av lokalers status utan inloggning För att lärare och studenter ska kunna se vilka lokaler som är lediga utan att vara användare av systemet och logga in på sidan har jag skapat två sidor som är åtkomliga för alla. Dessa sidor visar lokalernas tillgänglighet samt information om eventuella bokningar precis som de sidorna som visar denna information när man loggat in. Dessa sidor är åtkomliga från en länk på inloggningssidan. 3.8 Säkerhetsbrist Under tiden jag gick igenom koden till systemet upptäckte jag ett fel, detta innebar att en vanlig systemanvändare hade möjligheten att ändra eller radera en bokning utförd av vilken annan användare som helst. Det är endast användaren som har utfört bokningen och systemadministratörer som ska ha möjligheten att ändra eller radera en bokning. Felet berodde på att den sidan som användaren skickades vidare till för att se information om bokningen var den sida som används för att visa den inloggade användarens bokningar. Denna sida hade inte någon kontroll av att det var den inloggade användaren som utfört bokningen, vilket var en säkerhetsbrist som missats vid skapandet av sidan. Nu utförs en kontroll, precis som på sidan som visar information om dagens bokningar, så att det endast är användaren som har gjort bokningen eller en systemadministratör som får möjlighet att ändra eller radera bokningen. 3.9 Boka timmar En av frågeställningarna i detta arbete var om det gick att ändra bokningssystemet så att det skulle vara möjligt att boka valfria timmar istället för de fasta tidsperioder som nu. Utvecklandet av denna funktion har kommit en bit på väg och jag har skapat en funktion där det är möjligt att boka ett valfritt antal lediga timmar. Timmarna under en vald dag presenteras sedan på en sida där varje bokad timme markeras med rödfärg samt med en länk till information om just den bokningen. Jag har skapat en sida som precis som förut visar om en lokal har någon bokning den valda dagen och detta visas med färgade knappar. Väljer användaren att titta närmare på vilka tider lokalen är bokad presenteras alla timmar det är möjligt att boka lokalen på en sida och de bokade timmarna visas med röd färg samt med en informations knapp till varje period som är bokad. Genom att klicka på en av de gröna knapparna väljer användaren starttid på bokningen och användaren får på nästa sida välja hur många timmar bokningen ska sträcka sig. 11

Figur 7: Sida som visar vilka timmar som lokalen är bokad. Det var problem med att utforma en fråga som kontrollerar att alla dagens timmar har en bokning registreras. Eftersom det började dra ut på tiden och jag inte skulle hinna med att ändra alla andra funktioner till att fungera med timmar fick jag istället gå vidare och färdigställa de andra funktionerna som behövdes göras om eller läggas till i systemet. 12

4 Avslutning Nedan kommer jag att gå igenom och förklara problem och svårigheter jag stött på under vidareutvecklandet av lokalbokningssystemet. 4.1 Diskussion Arbetet med vidareutvecklingen av lokalbokningssystemet har i det stora hela fungerat bra. Arbetet har flutit på i ett bra tempo och det har varit roligt och lärorikt att se hur jag som systemutvecklare ska gå tillväga för att implementera nya eller ändra befintliga funktioner i systemet. Då lokalbokningssystemet helt saknar dokumentation över dess olika delar och endast en bråkdel av koden är kommenterad är det svårt att förstå vad koden har för funktion och det är svårt att hitta rätt ställe att ändra på. Det är mycket viktigt att under utvecklingen av ett system dokumentera, kommentera och se till så att alla sidor följer en bestämd standard. Detta gör det mycket enklare för någon utomstående att sätta sig in i systemets uppbyggnad om kunden vill anlita någon annan för att vidareutveckla systemet. 4.1.1 Standardisering av variabler och kommentarer i koden Om jag inte hade varit med under utvecklingen av systemet hade mitt arbete med att vidareutveckla systemet försvårats av att namnen på variablerna på de olika sidorna inte följer någon standard. Hade alla i gruppen enats om en standard som följts under utvecklingen hade det varit enklare att förstå och sätta sig in i koden för någon som kommer in under utvecklingens gång eller i efterhand för att hjälpa till med programmeringen. Även den bristfälliga kommenteringen av vad de olika delarna i koden har för funktion gör det svårt att förstå vart ändringar ska göras. 4.1.2 Säkerhetsbristen Säkerhetsbristen på informationssidan ledde till att alla hade möjlighet att ändra eller radera alla användares bokningar. Att detta stora säkerhetshål missats av alla under utvecklingen och testerna av systemet är svårt att förstå. Troligen är det tidsbristen som inträffade på slutet när vi väntade på att allt alla delar skulle sättas ihop till ett fullständigt system som gjorde att sökfunktionerna inte hann testas tillräckligt noggrant för att upptäcka felaktigheten. Den sida som visar bokningsinformationen vid sökning var samma som normalt visar information om den inloggades bokningar och därför ska det finnas möjlighet för användaren att ändra och radera vald bokning. Det var trots detta ändå en säkerhetsbrist även om sidan endast användes till detta ändamål så saknades det en kontroll av att det var den inloggade användaren som gjort den valda bokningen. Denna sida hade utan denna kontroll kunnat användas av illasinnade användare av systemet för att ändra eller radera alla bokningar i systemet bara genom att skicka med ett annat bokningsnummer till sidan. 13

Det är kanske inte så troligt att någon vill sabotera eller förstöra lokalbokningssystemet då det används av en liten grupp människor och det inte finns någon vinning i att förstöra för någon annan användare, men det var ändå bra att felet upptäcktes så det kunde åtgärdas. Speciellt då det är så lätt att använda sig av säkerhetsbristen på sidan. 4.1.4 Under skalet Det mesta som jag har gjort på sidan kanske det inte är något som en användare av systemet upptäcker. Användaren tar det nog bara som självklart att vissa funktioner finns där och att sidan fungerar som den nu gör. En stor del av ändringarna berör bara systemadministratörerna, till exempel är möjligheten att radera användare och lokaler från databasen nu är ändrad så det endast går att avaktivera användare och lokaler. Detta på grund av att det inte är brukligt att radera information från databasen samt att det inte går att radera en lokal eller användare som har en koppling till en aktiv bokning registrerad i systemet. Lokalen eller användaren kanske ska användas i systemet igen, då finns all information fortfarande sparad och det är enkelt att aktivera kontot samt uppdatera de uppgifter som eventuellt behöver ändras. 14

4.2 Slutsats Går det att ändra de fasta bokningsperioderna till valfria timmar? Det är möjligt att implementera funktioner så att det går att boka valfria timmar i lokalbokningssystemet. Systemet är dock utvecklat för att hantera bokningar i fasta perioder vilket gör att det krävs mycket arbete för att få alla funktioner i bokningssystemet att fungera med timmar. Är det möjligt att implementera alla de funktioner kunden önskar? Genom att utöka lokalbokningssystemet med nya funktioner samt att vidareutveckla de befintliga är kundens ursprungliga krav på systemet nu uppfyllda. Vilka funktioner bör implementeras för att göra systemet bättre? För att förbättra lokalbokningssystemet har en funktion för att skapa PDFdokument implementeras. Det finns nu även möjlighet att kontrollera lokalernas bokningsstatus utan att logga in i systemet. För att öka användarvänligheten av systemet har ändringar av designen på vissa sidorna utförts. Har något under utvecklingen av systemet gjort att vidareutvecklingen blir svårare Genom att det under utvecklingen av systemet inte gjorts några kommentarer i koden till de olika funktionerna leder till att det blir svårt att vidareutveckla lokalbokningssystemet. Variablerna på många ställen i koden har namn som inte beskriver vad den används till vilket försvårar arbetet med vidareutvecklingen. Lokalbokningssystemet saknar också en utförlig dokumentation av systemet. 15

5 Källförteckning 5.1 Litteratur Eriksson U. (2005). PHP 5-programmering. Pagina Overgaard J. (2005). PHP 5- och MySql-handboken. Pagina Björnander S. (2005). HTML och JavaScript. Studentlitteratur 5.2 Internetsidor http://sv.wikipedia.org/wiki/javascript (2007-05-15) http://sv.wikipedia.org/wiki/php (2007-05-15) http://sv.wikipedia.org/wiki/mysql (2007-05-19) http://sv.wikipedia.org/wiki/html (2007-05-19) http://www.phpportalen.net (2007-05-25) http://www.webforum.nu (2007-05-25) 16

6 BILAGOR 6.1 Databasmodell Figur 8: Databasmodell 17