Danmarks Tekniske Universitet Institut for Informatik og Matematisk Modellering. IT-Diplom eksamensprojekt februar 2008 WEBSHOP.

Størrelse: px
Starte visningen fra side:

Download "Danmarks Tekniske Universitet Institut for Informatik og Matematisk Modellering. IT-Diplom eksamensprojekt februar 2008 WEBSHOP."

Transkript

1 Danmarks Tekniske Universitet Institut for Informatik og Matematisk Modellering IT-Diplom eksamensprojekt februar 2008 WEBSHOP Skrevet af: Naqae Ahmad Halil Sertdemir IMM-B.Eng Eksamensprojekt er modtaget af: den / kl.: : (Udfyldes af instituttet) Eksamensprojekt indeholder sider ink. denne side. 1

2 Forord IT-Diplom eksamensprojektet udgør afslutningen af vores IT-Diplom uddannelse på Danmark Tekniske Universitet. Projektet er udført i samarbejde med World TeleCom over en tidperiode på 12 uger. Projektet er udarbejdet i perioden fra d. 5. november 2007 til 18. februar 2008 svarende til 20 ECTS point. Vi vil benytte lejligheden til at takke Finn Gustafsson for vejledning op til og under projektet. Lyngby, februar

3 Indholdsfortegnelse 1.0 Indledning Formål Målgruppe Procesbeskrivelse Arbejdsprocessen Tidsplan / iterationer Inception Elaboration Samarbejdsform Ressourcer Inception Afsnitsoversigt Vision Indledning Redegørelse Interessantere Non funktionelle krav (FURPS+) Functional (Funktionel) Usability (Brugervenlighed) Reliability (Pålidelighed) Supportability (Understøttelse) Implementation (Implementering) Risikoanalyse Afsnitsbeskrivelse Oversigt over risici Risici beskrivelser Analyse Kravspecifikation Brugergrupper Use cases Use case beskrivelser (Detaljerede) System sekvens diagrammer Navigationsdiagram Beskrivelse af navigationsdiagram Design Design mål System arkitektur Klient/server struktur HTTP Meddelelser i HTTP Forespørgsels meddelelser Svar meddelelser Adgangskontrol/ sikkerhed i http Sikkerhed JavaScript XHTML og HTML Brugergrænseflade

4 5.9 Farver og tekst Konceptuel model Link diagram Databaseudvikling Databaseplanlægning Systemdefinition Database Design Logiske databasedesign Begrebsmæssige databasedesign Fysiske databasedesign SQL kommandoen Sikkerhed og adgangskontrol Implementering Meta-tags Grundlæggende struktur Login/aktivering/ logout/ glemt login Database filer base64_encode() og base64_decode udfør forespørgelser Bruger filer Beregning af kontrolciffer ved brug af moduls 11 til CPR. NR Admin filer Afgive ordre filer Beregning af kontrolciffer ved brug af moduls 10 til visa kort Test Browser test Forslag til forbedring af vores løsning Konklusion og opsummering Referencer og links Bilag Installationsvejledning Use case beskrivelser sekvensdiagrammer Link diagram for burger interviews Relationsbeskrivelse for ER diagrammet Databasetabeller Black-box Test Manuel test af brugerinterface Browser Test Adobe Photoshop XAMPP vejledning

5 1.0 Indledning Projekt vil beskrive en hjemmeside, hvis formål er, at markedsføre et firma World TeleCom på Internettet, fremvise firmaets produkter, samt tilbyde brugere/ kunder online register og hvor kunder har mulighed for at kunne købe vare. World TeleCom er et firma som har specialiseret sig alt indenfor mobiltelefoner. Firmaet løser flere problemer med hensyn til mobiltelefoner. Firmaet løser alt slags problemer som kan opstå i disse apparaturer, som udskiftning af hardware komponenter og opdatering af diverse software.[ Henvises til bilag 12.5] Projektet er blevet udviklet gennem en iterativ proces, bestående af en inceptionsfase og 3 iterationer i elaborationsfasen, hvorigennem der gradvist er blevet videreudviklet og optimeret på produktets design og implementation. Rapporten er delt op i følgende 10 overordnede afsnit: Indledning (Dette afsnit) Procesbeskrivelse (Beskrivelse af den anvendte arbejdsproces, tidsplaner og samarbejdsform) Inception (Resume fra inceptionsfasen) Analyse (Use cases) Design (Design mål, system arkitektur, link diagram, sekvens diagram) Databaseudvikling (Database diagrammer, teori og overvejelser) Implementering Test (black-box Test og manuel test af brugerinterface) Konklusion (Produktorienteret og procesorienteret konklusion) Bilag (kode, sql filer, test, diagrammer) Gruppen har valgt at anvende PHP, HTML og MySQL. Begrundelsen for gruppens valg er, vi tidligere i begrænset omfang har arbejdet med disse sprog under vores praktik periode. Vi har desuden besluttet at flytte nogle af diagrammerne til appendikset, og derfor vil der komme referencer i teksten, som henviser læseren til enden af rapporten. 5

6 Kun essentielle diagrammer, som er ret vigtige for forståelsen af vores løsningsmetoder, bliver sat ind i mellem siderne. I teksten har vi også brugt referencer og henvisninger til eksterne kilder, disse er angivet i [ ] parenteser, og tabellen med alle referencer står sidst i rapporten. Med rapporten følger der en CD, som indeholder kildekoder af vores system. Der to mapper, en til selv eksamprojekt og en til kode bilag. [Henvises til bilag 12.1] 1.1 Formål Formålet er, at udvikle et dynamisk hjemmeside til styring af ordrer, produkter, lager, kørsel og meget andet for World TeleCom. Mere specifikt er formålet at udvikle et system, der kan: a- modtage og behandle ordrer b- styre afhentning og udbringning af bestillinger c- styre lagerbeholdning Opgøre daglige omsætning. 1.2 Målgruppe Systemet er udviklet specielt til World TeleCom, så den primære målgruppe er firmaet, vores vejleder og censor. Sekundær målgruppe er andre IT studerende, der eventuel kunne interessere sig i samme projekt. 2.0 Procesbeskrivelse 2.1 Arbejdsprocessen Under udvikling af World TeleCom hjemmeside vil vi anvend the Unified Process (UP). UP er en iterativ udviklingsproces, hvor man i modsætning til vandfaldsmodellen ikke først definerer alle krav, før man går videre til design, implementation og test. I stedet kører projektet som en række miniprojekter, hvor man i hver iteration (mini projekt) udvikler en lille del af det samlede system m.h.t. krav, 6

7 design, implementation og test. Målet med den itarative udviklingsproces er, at der efter hver iteration opnås et delprodukt af det samlede produkt. Iterativ udvikling har mange fordele frem for ikke-iterativ udvikling. Nedenstående punktform lister nogle af de væsentligste fordele ved iterativ udvikling. Kundens ønsker vil med større sandsynlighed blive opfyldt, da man efter hver iteration kan vise et delprodukt af det samlede produkt, og derved få en indikation af om man er på rette spor. Giver tidligt et bedre overblik over det samlede projekt, da man for hver iteration gennemløber et helt mini projekt. Dette gør det nemmere at opdage problemer som kan opstå undervejs. Man får bedre overblik over projektets omfang, samt hvilke projektrelaterede risici der kan være. Lærer undervejs. For hver endt iteration kan man kigge tilbage på den gamle iteration, og finde ud af hvad man kan gøre bedre i den næste iteration. Mange deadlines = højere arbejdseffektivitet. Mange mennesker har en tendens til at arbejde mere effektivt når de er under et vist tidspres. De mange iterationer gør derfor at der vil blive arbejdet mere effektivt en større del af tiden. 2.2 Tidsplan / iterationer Det samlede projekt vil blev udviklet gennem en inceptionsfase og 3 iterationer i elaborationsfasen Inception Formålet med inceptionsfasen er, at give et hurtigt overblik over det samlede projekt. I denne fase er der blevet udarbejdet en vision for det ønskede system, et use case diagram, kort beskrivelse af de enkelte use cases, samt definition af non-funktionelle krav (FURPS+) Elaboration I elaborations fasen starter udarbejdningen af selve projektet gennem flere iterationer. De enkelte iterationer i elaborationsfasen omfatter hele mini projektet, hvor der for hver iteration arbejdes med en hel use case lige fra beskrivelse og design til implementation og test. 7

8 Vores elaborationsfase er blevet udarbejdet gennem 3 iterationer, med nogle fast definerede mål og deadlines for hver iteration. Herunder er angivet en tabel/historik for de enkelte iterationer. Inception Elaboration 1: Mål: Nået: Deadline: Overblik over det Overblik over det samlede 14/ samlede projekt projekt - Udarbejdelse af use case - Detaljeret beskrivelse af 26/ afgive ordre, med use case. hensyn til beskrivelse, - Udarbejdelse af design og design, implementation. grundarkitektur. - Delvis implementation og test. Elaboration 2: -Arbejde videre med use case afgive ordre. - Optimering af arkitektur, med henblik på at systemet skulle være mere fleksibelt og nemt at udvide til en webapplikation. - Design grafik til hjemmesiden med Adobe Photoshop. - Optimeret arkitektur - Udvidet til webapplikation med PHP. - Mulighed for at gemme bruger oplysning, ordre i databasen. - Design af grafik til hjemmesiden med Adobe Photoshop er næsten på plads. 5/ Elaboration 3: - Nyt database design med henblik på følgende: 1. Lager håndtering 2. Bedre sammenhæng, iht. vare, ordre, faktura o.s.v. - Use case beskrives, designes, implementeres - Fortsat optimering af use case, bl.a. med henblik på implementation af alternative forløb. - Rapport skrivning. - Optimeret database design. - Fortsat implementeret. - Rapport skrivning. 8/ Som det fremgår af tabellen, så er der brugt tid på use case gennem alle 3 iterationer. Det skal dog dertil siges at Afgiv ordre består af en lang række under use case (metoder). Af disse use cases/metoder kan bl.a. nævnes følgende: 8

9 Køb vare Vis indkøbskurv Vis vare Vis ordre Gemme ordre i databasen Den iterative udvikling af Afgiv ordre har gjort at vi har opnået en væsentligt mere gennemarbejdet og gennemtænkt implementation af Afgiv ordre, i forhold til hvis vi kun havde brugt 1 iteration på Afgiv ordre, uden yderligere reflektion over den implementerede use case. Den iterative udviklingsproces har også gjort det nemmere at planlægge selve projektet. Da det kan være svært at forudse hvor lang tid de enkelte delopgaver i et projekt kommer til tage, så kan det være svært at planlægge langt ud i fremtiden. Med iterativ udvikling planlægger man kun detaljeret for 1 iteration ad gangen. På den måde kan man for hver iteration planlægge ud fra hvad man har nået, og hvad der mangler. De mange iterationer er også med til at gøre arbejdet mere tidseffektivt, da de fleste mennesker arbejder mest effektivt op til en deadline. Ud over inception og elaborationsfasen som vi har beskæftiget os med i vores projekt, så er der normalt også en konstrukstionsfase og transition. Det der adskiller konstruktion fra elaboration, er at der i konstruktionsfasen er større fokus på implementation og test, mens elaborationsfasen fokuserer mere på krav og design. 2.3 Samarbejdsform Gruppens arbejdsform har bestået af en blanding af gruppemøder, selvstændigt arbejde og pair working. Gruppemøderne har til formål at gennemgå hvad der er blevet lavet indtil nu, samt at aftale projektets fortsatte forløb. Gruppemøderne er blevet lagt således at der i begyndelsen af ugen (mandag), afholdes en lang gruppemøde hvor det aftales hvad der skal udarbejdes i den kommende uge, samt hvem der laver hvad. Mens der på daglig basis holdes et kortvarigt møde, hvor hver gruppemedlem angiver sin status 9

10 m.h.t. hvad vedkommende har lavet og hvad vedkommende vil udarbejde i løbet af det næste døgns tid. En del af tiden har vi også haft pair working, hvor gruppen har arbejdet sammen om en opgave. Dette var specielt under udarbejdelse af overordnet design og diagrammer, hvor det indbyrdes skulle aftales hvordan tingene skulle sættes sammen. Men under implementation og test er der også anvendt pair working. Fordelen ved dette er, at 2 sæt øjne hurtigere kan spotte fejl end 1 sæt øjne, og når 2 gruppemedlemmer har arbejdet selvstændigt på hver deres del af koden er det også nødvendigt efterfølgende at samarbejde om at få de forskellige kodedele til at hænge sammen som en helhed. Alle gruppens medlemmer har arbejdet aktivt med både OOAD og databaseemner. Derfor har alle gruppemedlemmer også haft indflydelse på/bidraget til alle rapportens afsnit. 2.4 Ressourcer Nedenstående liste viser de tekniske værktøjer som vi benytte til udarbejdelsen af vores projekt: HTML PHP JavaScript MySQL XAMPP [Henvises til bilag 12.11] Adobe Photoshop [Henvises til bilge 12.10] Der er blevet skrevet kode i Notepad2. Desuden vil vi til udarbejdelse af rapporten benytte: MS Officepakken Visio 10

11 3.0 Inception 3.1 Afsnitsoversigt Dette afsnit omhandler projektets inceptionsfase, hvor alt det indledende arbejde med udarbejdning af vision, FURPS+ og risikoanalyse er blevet udarbejdet. 3.2 Vision Indledning Udvikling af software til automatisering af arbejdsprocesser i alle brancher går stærkt. Firmaet ønsker at benytte sig af den ekspanderende webteknologi til at fremme firmaet. Kortfattet er firmaet vision at automatisere arbejdsprocesserne i firmaet fra ordreafgivelse til levering af ordrer til kunderne Redegørelse Man forestiller sig et system, der er nemt at bruge, hvor en kunde på en simpel måde opretter sig og afgiver en ordre. Systemet skal være fleksibelt, hvilket vil sige, at en kunde kan afgive ordre som han eller hun ønsker det. Desuden skal kunden have mulighed for, at angive leveringsmetoden.. Fra firmaets side skal systemet hurtigt kunne vise aktuelle bestillinger og hvornår de skal være klar, samt hjælpe med at styre levering af ordrerne. Det system som skal betjene firmaets kunder skal som minimum kunne gennemføre følgende: - Kunden kan registrere med navn, adresse og telefonnummer osv. i en kundedatabase. - Systemet skal holde styr på rækkefølgen af indtastede ordrer. - Systemet skal registrere hvilken kunde der har afgivet hvilken ordre og hvornår leveringstidspunktet er sat til. - Systemet skal holde styr på hvilke ordre, der skal bringes ud. - Systemet skal indeholde alle aktuelle produkter og deres priser. - Systemet skal kunne udføre samlet opgørelse af lagerbeholdning af varer således at der kan foretages samlet indkøb. 11

12 3.2.3 Interessantere Firmaet ønsker at systemet giver oversigt over bestillinger, daglig omsætning og lagerbeholdning. Firmaet ønsker at systemet viser aktuelle bestillinger, hvem der har afgivet dem, og hvornår de skal være klar. Kunderne ønsker at kunne bestille deres ordre på en nem og bekvem måde, samt at modtage deres ordre på det ønskede tidspunkt. Betalingssystemet ønsker modtagelse af betalingsanmodninger i det korrekte format og protokol. 3.3 Non funktionelle krav (FURPS+) Functional (Funktionel) Gennemgået via use cases Usability (Brugervenlighed) Med hensyn til usability er det et væsentligt element, hvordan brugerne af systemet kan benytte systemet. Især må der sættes fokus på to typer af brugere: Firmaet Kunderne Hvis systemet skal blive en succes, så skal det være let at anvende for alle parter. I brugervenlighed ligger også fokus på målgruppens demografiske sammensætning, og derved tilpasning af bl.a. layoutet og farvevalg til brugerne. Da målgruppen nok er meget bred, er der mange krav som vil udspringe heraf, et eksempel er, at ældre brugere skal kunne skelne delene fra hinanden og at det skal være nemt at få hjælp i systemet. Dette er især essentielt, hvor kunderne selv skal afgive ordre via Internettet. Og når de nu selv skal afgive ordre, så må der også sættes fokus på hvordan systems usability kan være med til at nedsætte fejlindtastninger, for fejlindtastninger kan koste mange penge samt medføre utilfredse kunder. 12

13 3.3.3 Reliability (Pålidelighed) Nedbrud og svigt kan være uundgåeligt, som kan afhænge af andre systemer (en databaseserver, en web service osv.). Det er vigtigt at præsentere andre løsninger i tilfælde af nedbrud. Kunden kan f.eks. blive guidet til at anvende andre midler til afgivelse af en ordre. Nedbrud som skyldes egne systemer skal begrænses mest muligt. Fokus her ligger således både på hardwaremæssige krav, samt hvor mange penge der sættes i projektet for at sikre et ordentligt stykke software Supportability (Understøttelse) Systemet skal som minimum tilgodese firmaets behov for fleksibilitet. Nogle understøttelsesspørgsmål kunne være: - Sprogunderstøttelse - Betalingsmåde - Brug af værktøjer (f.eks. mobiltelefon) Systemet skal gerne være konfigurebar så den altid afspejler firmaets behov Implementation (Implementering) Systemet skal implementeres i HTML og PHP. Databasedelen udvikles i MySQL. Som softwareudviklingsproces skal bruges Unified Proccessing (UP), og modelleringssproget UML. 3.4 Risikoanalyse Afsnitsbeskrivelse Formålet med risikoanalysen er, at finde ud af hvilke risici der er forbundet med projektet, og hvilke faktorer der kan have indflydelse på om projektet bliver gennemført, eller at tidsfrister/budgeter ikke bliver overholdt. En risikoanalyse går ud på at man først identificerer risici relateret til projektet. Derefter bliver hver risiko tildelt en sandsynligheds og konsekvens-værdi. Det samlede risko-niveau for de enkelte risici kan derved beregnes som produktet af henholdvis sandsynligheds-værdi og konsekvens-værdi. 13

14 I vores risikoanalyse har vi valgt at inddele sandsynligheds-værdi på en skala fra 1-3, mens vores konsekvens-værdi er blevet indelt på en skala fra 1-4. Betydningen af de 3 sandsynligheds-værdier er følgende: 1: Meget usandsynligt. 2: Sandsynligt (Hændelse der sker med jævne mellemrum). 3: Så godt som sikkert (Hændelse der sker meget ofte). Betydningen af de 4 konsekvens-værdier er følgende: 1: Lille betydning. 2: Har mindre indflydelse på projektet. 3: Meget alvorlig, men ikke fatal. 4: Katastrofal (Kan ødelægge hele projektet) Oversigt over risici Nr. Risiko element Sandsynlighed Konsekvens Risiko niveau 1 Gruppemedlem udebliver midlertidigt Gruppemedlem forlader gruppen permanent 3 Campusnet er midlertidigt nede Campusnet går permanent ned Datatab for enkelt gruppemedlem Deadline overskrides Tidsmangel for projekt Mindre kompetencemangel

15 3.4.3 Risici beskrivelser Nr. Beskrivelse Forholdsregler / konsekvens 1 Et gruppemedlem udebliver midlertidigt fra projektarbejde eller gruppemøder. Dette kan f.eks. skyldes sygdom eller andre hændelser. Arbejder går videre trods det manglende gruppemedlem. Projekt filer og møde referater uploades løbende til campusnet, hvor det fraværende gruppemedlem selv kan holde sig opdateret med hensyn til projektet. 2 Campusnet går midlertidigt ned. Dette kan f.eks. skyldes overbelastning. Hvis campusnet går midlertidigt ned kan det foresage lidt tidsforsinkelse, i tilfælde af at et gruppemedlem skal bruge nogle filer i forbindelse med hans/hendes arbejde. I mellemtiden kan der dog arbejdes videre med andre ting. 3 Campusnet går permanent ned. De filer vi hver især uploader til campusnet, skal vi hver især beholde en kopi af lokalt på vores egne maskiner. 4 I tilfælde af virus eller computernedbrud kan det foresage at et gruppemedlem mister data/filer på hans/hendes computer. 5 Vi er under tidspres og kan ikke løse opgaven til tiden i en ordentlig kvalitet. 6 Vi har svært ved at løse en delopgave grundet kompetencemangel. Dette kunne f.eks. være under design, implementering eller test. Filer uploades løbende til campusnet, således at de til dels kan tilgås af gruppemedlemmer, og til dels giver backup i tilfælde af virus eller computernedbrud. Konsekvensen bliver at produktet ikke lever op til kundens forventninger. For at undgå pludselig tidsmangel har vi små delmål for hver uge, i stedet for f.eks. store delmål til hver måned. Konsekvensen kan blive at en delopgave bliver af mindre god kvalitet end forventet.). 15

16 4.0 Analyse Formålet med denne fase er, at skaffe et samlet overblik over det kommende system. Det overblik samt de diagrammer, der skal udvikles i denne fase, skal bruges som fundament for den efterfølgende designfase. 4.1 Kravspecifikation Da firmaet vil integrere systemet med tredjepartssystemer, og det er betalingssystem. Firmaet kan få denne tjeneste hos PBS. PBS stiller en række krav til net-butik for, at den kan godkendes til at tage imod onlinebetaling med kreditkort. Det er vigtigt, at man læser disse krav grundigt igennem og efterlever dem til punkt og prikke, for at hjemmesiden bliver godkend af PBS.[Henvises til 11.0 nr.8] PBS krav. Kravene omfatter: Informationer som kunden skal kunne se inden betalingen foretages: En komplet beskrivelse af de ydelser/produkter, der tilbydes. Eller med andre ord, kunden må aldrig være i tvivl om, hvad der betales for. En entydig opgørelse af det samlede beløb, der trækkes på kortet - herunder fragt, moms etc. Salgs- og leveringsbetingelser herunder regler for fortrydelse. I disse betingelser skal der ligeledes beskrives de betalingsmetoder som forretningen tilbyder. Kontaktinformationer til butikken, navn, adresse, og/eller telefonnummer, samt CVR nr. En angivelse af hvilken valuta, der handles i. (f.eks. DKK eller EUR) Entydig angivelse af forsendelsespolitik (hvornår modtager kunden sine varer) Samtlige korttyper, der understøttes af butikken skal grafisk vises på en af butikkens sider. Der skal tages hensyn til, at kunder anvender forskellige typer af browsere og skærmopløsninger. Ordrebekræftelse/kvittering Når købet har fundet sted, skal kunden modtage en ordrebekræftelse/kvittering - enten i form af et skærmbillede eller i form af en . Denne bekræftelse skal som minimum indeholde følgende: 16

17 Butikkens navn Butikkens adresse En komplet beskrivelse af de ydelser/produkter, der er købt Et ordrenummer (forretningens interne ordrereference) Transaktionsdatoen Transaktionsvalutaen (f.eks. DKK eller EUR) Det samlede beløb, der bliver trukket fra kundens kreditkort Forventet leveringsdato Det angivne beløb må ikke overstige beløbet angivet i ordreformularen 4.2 Brugergrupper I denne afsnit vil vi belyse hvilke brugergrupper der kan anvende system og hvad de skal have rettigheder til. Nedenstående figur viser ovennævnte oplysninger. Brugertype Administrator Bruger Rettigheder Vis bruger Installer database Slette bruger Rediger produkt Opret produkt Se faktura Se ordrestatus Slette produkt Afgiver ordre Se profil og ændre sine oplysninger Fortager betaling. Opret bruger 17

18 4.3 Use cases Vores formål med at benytte use-cases er, at få klarlagt brugernes interaktion med systemet på et overordnet niveau. Derudover vil det også give mulighed for at kunne angive en prioritering ud fra vigtigheden i forhold til systemet som helhed, samt teknisk risiko i forhold til udvikling. På den måde kan vi finde ud af, hvor vi kan forvente de største vanskeligheder i forhold til vores viden på nuværende tidspunkt, og dermed hvor vi skal centrere de største kræfter i forhold til programmering. I følgende use-case diagrammer vil aktøren blive vist som et piktogram (menneske) og aktørens use-cases er vist som ovaler indeholdende use-casens navn. Aktørbeskrivelser Aktør: Kunde Beskrivelse: Kunden er en person, der bestiller varer fra butikken via Internet. Aktør: Admin Beskrivelse: Admin er den person der har det overordnede ansvar for daglig drift af firmaet. 18

19 Figur 1: Use case diagram. Viser det udarbejdede use case diagram for World TeleCom system. 19

20 4.3.1 Use case beskrivelser (Detaljerede) login- Use case Use case: Log ind Nummer: 01 Formål: Hvordan en bruger logger ind I systemet. Scope: System Niveau: Primær (essentiel) Primær aktør: Kunde eller Ejer Sekundær aktør: Ingen Prækondition: Brugeren er oprettet som Kunde/Admin Postkondition: Kunden logger ind i systemet. Frekvens: Ofte Trigger: Kunden ønsker at afgive ordre Typisk hændelsesforløb: Aktør System Aktørhandling Systemrespond 1. Kunder/ firmaet kommer til log ind siden fra den side der kræver log ind. 2. System viser en log ind side. 3. Kunde/firmaet udfylder adgangskode og brugernavn. 4. System validerer adgangskode og brugernavn i databasen. Alternativt hændelsesforløb: 5. System viser en start side på den pågældende bruger. 3a. Kunde/Ejer har glemt password. 4a. Brugerne indtaster forkert adgangskode eller brugernavn. System sender en fejl med antal tast er tilbage. 4b. Systemet slår adgangskode op i databasen, sender en e -mail til brugeren med dette og viser en bekræftelse til brugeren. 4c. Afsendelse af mislykkedes. 4d. Den angivne adresse findes ikke i databasen og brugeren sendes til trin 2 med information om dette. 4e. Navn og password passer ikke sammen og brugeren sendes til trin 2 med information om dette. 4f. Dårlig forbindelse til DB Alle use-cases kan ses på bilag

21 4.4 System sekvens diagrammer Formålet med sekvensdiagrammer i designfase er, at få overblik over fordelingen af funktionaliteten og finde web-siderne i systemet. Ved hjælp af sekvensdiagrammer kan vi lave en mere specifik beskrivelse af vores use-cases. Vi har besluttet at udarbejde alle vores sekvensdiagrammer i udvidet form, som betyder at hver sekvens diagram bruges til at beskrive en enkelt use-case i systemet. Herunder er der vist signaturforklaring til sekvensdiagrammerne. Log ind Figur 2: Udvidet sekvensdiagram for Bruger: Login 1. Bruger logger ind via login skærmbilledet. 2. Brugeren indtaster login data. 3. Login sender data til verificering af systemet. 4. Systemet undersøger brugerdata og returnerer tilbage en status. 5. Hvis brugeren har indtastet forkerte data genstartes hele proceduren. 6. Hvis brugeren har indtastet korrekte data hentes der en valg side. 7. Valg siden bliver vist hos brugeren. 21

22 Opret kunde Figur 3: Udvidet sekvensdiagram for kunde: Opret kunde 1. Hvis kunde har til opgave at oprette sig som en ny bruger hos firmaet, skal han/hun befinde sig på opret bruger siden, som han/hun skal vælge ud fra valg siden. 2. Kundeindtaster brugerens data. 3. Herefter sendes data til opret bruger processen. 4. Opret bruger sender data af sted til systemet og modtager data fra databasen. 5. Hvis Kunde har indtastet forkerte data, får han/hun fejlmeddelelse. 6. Log ind siden bliver vist hos brugeren. Alle udvidede sekvensdiagrammer kan ses i bilag

23 4.5 Navigationsdiagram Navigationsdiagrammet vil vi benytte til at vise grafisk, hvordan en bruger bevæger sig grundt i systemet. Målet med navigationsdiagrammet er, at programmøren eller brugeren skal koncentrere sig om, hvad der ønskes fremfundet, ikke hvordan oplysningerne fysisk er lagret, eller hvordan den fysiske database er struktureret. Start siden admin Vis bruger Installer database Slet bruger Rediger produkt Opret produkt Se faktura Se ordrestatus Slet produkt Log ind kunde Start side Min profil Ny bruger Registert profil Profil siden kontakt Kontakt siden. Kurv Log ind Mobiltelefoner produkter kurv Forsendelses info og Betalings info Mobil tilbehør Tilbehoerlink Godkendt betaling Ipo&tilbehør Udskrive faktura MP3&MP4 4: navigationsdiagrammet Figur 23

24 4.5.1 Beskrivelse af navigationsdiagram Det er klart, at når systemet skal betjenes via Internettet, må der nødvendigvis også tages forholdsregler, så ikke alle og enhver kan gå ind i systemet. Derfor skal alle systembrugere logge sig ind med sit brugernavn og kodeord, hvis de vil foretage nødvendige ændringer i systemet eller køb varer. Hvis admin logger sig ind bliver han/hun sendt til administrator siden, hvor han/hun har forskellige muligheder, afhængigt af hvilken opgave han/hun vil udføre. Han/hun kan vælge for eksempel mellem slet bruger, vis brugere og tilføre vare, hvor han/hun kan foretage de nødvendige handlinger. Det samme princip gælder for kunder, hvis han/hun vil købe en vare. Hvis system brugeren indtaster ukorrekte data får han/hun en fejlmeddelelse, samt mulighed for at rette i datafelterne. Samme princip gælder også for log ind siden. Hvis brugeren indtaster et ugyldigt kode, får han/hun en besked om at koden er ukorrekt, hermed kan brugeren forsøge igen, eller hvis brugeren har glemt sin password få brugeren den sendt igen med e- mail. Konklusion på analyse Formålet med analysen er, at klargøre hvilke krav, der stilles til systemet, samt hvilket miljø systemet skal fungere under. I det store hele opnåede vi det, vi ønskede af analysen. Vi har fået et godt billede af hvad systemet indeholder, og vi føler os rustet til at afslutte analysen og starte på designet. 24

25 5.0 Design 5.1 Design mål Ud fra vores use cases skal der udarbejdes et softwaredesign. Målet med designprocessen er, at finde ud af hvordan systemet skal hænge sammen og fungere. Når man designer software er det ønskeligt at finde frem til et design som er intuitivt, fleksibelt, nemt at vedligeholde. For at opnå et design der er fleksibelt og nemt at vedligeholde, har vi valgt at bruge en system arkitektur, som er nærmere beskrevet i afsnit System arkitektur Inden implementeringen blev påbegyndt var det afgørende at der blev skabt konsensus i gruppen om hvordan den ønskede løsning skulle designes. Der blev derfor udarbejdet følgende grafiske model. Figur 5. System opbygning Som det ses på figuren består systemet af to overordnede dele: klient og server. 5.3 Klient/server struktur Formålet med bestemmelsen af tyk eller tynd klient er, at finde ud af hvor forretningslogikken er i systemet, dvs. hvor der er mest funktionalitet. Til dette formål vil vi benytte os af Conallens teorier og definitioner på tykke og tynde klienter. Vi vil starte med at opridse de forskellige overordnede klient/server struktur. Disse er: Tynd klient Tyk klien 25

26 Tynd klient Tynd web klient bruges til internet applikationer, hvor der kun er lidt kontrol over klientens konfiguration. Al forretnings logik bliver eksekveret på serveren. Browseren fungerer som ren fremviser, ingen afvikling af program. Helt konkret betyder det at brugergrænsefladen er på klienten imens funktionsmodel, modelkomponent og DB er på serveren. Hovedpointen ved den dynamiske opførsel i denne struktur er, at business logik kun bliver aktiveret ved page request. Når page request er blevet håndteret, så sendes resultatet tilbage til klienten og forbindelsen mellem server og klient termineres. Figur 6: Tynd web klient Tyk klient Tyk web klient bruges til internet web-applikationer, hvor en betydelig del af programafviklingen foregår på klienten, f.eks. validering af indtastede data. Dette stiller nogle krav til klienten f.eks. en java virtuel maskine. Kommunikation med serveren foregår stadig over http. To hovedmotiver for at benytte en tyk web klient er en forbedret brugergrænseflade og at klienten kan overtage noget af eksekveringen f.eks. validere indtastede data fra brugeren. Figur 7: Tyk web klient 26

27 Konklusion på klient/server struktur På baggrund af use-cases og den overordnede gennemgang af vores analyse og design, vælger vi følgende klient/server struktur. Vores system skal kunne håndtere oplysninger fra en klient(bruger) og lagre disse i en database. Vi har valgt at bruge tyk klient og dele arbejder mellem klient og server. 5.4 HTTP Det mest kendte koncept ved Internettet er, at man kan logge på og kigge på hjemmesider. Til det formål benyttes en browser, som så er klienten, der bruges til at kommunikere med en web server. Web serveren har to formål: Den fungerer som server delen i HTTP og giver svar på diverse forespørgsler fra klienten. Her gemmes de komponenter som en hjemmeside består af. Figur 8: HTTP protocol. HTTP protokollen benyttes her til at sende meddelelser frem og tilbage. Grundlæggende kan mange klienter så forespørge serveren om hjemmesider eller web sider, og serveren kan returnere disse sider til klienten. En HTTP forbindelse kører som regel igennem port

28 5.4.1 Meddelelser i HTTP Disse meddelelser kan være forespørgsler om at få hentet indhold af en hjemmeside eller svar i form af hjemmesidens objekter der bliver overført til klienten. Objekter på en hjemmeside defineres som filer, det kan f.eks. være JPEG billeder eller en Java applet. Websiden i sig selv består som sådan af en samling filer, som alle er objekter. Der eksisterer to versioner af HTTP, nemlig HTTP 1.0 (RFC 1945) og HTTP 1.1 (RFC 2616) Forespørgsels meddelelser En forespørgselsmeddelelse, består af en forespørgsels og en eller flere headerlinie(r). Derudover er der så en generel kropsdel af meddelelsen som følger til sidst. Forespørgselslinien har tre felter: Metode markerer hvilken form for forespørgsel der er tale om. URL indikerer et objekt. Version viser hvilken HTTP version der bliver brugt, 1.0 eller 1.1. HTTP 1.0 indeholder metoderne GET, POST og HEAD. HTTP 1.1 implementerer flere forskellige metoder, bl.a. PUT og DELETE. GET metoden er nok den mest brugte, og i dette tilfælde ville URL feltet så indeholde stien til det objekt der ønskes hentet. For at identificere hvilken vært objektet skal hentes fra skal der så indsættes en header linie som f.eks. host: der giver den supplerende nødvendige information. Der er også andre header linier som f.eks. User-agent, Accept-language og Connection. Disse header linier kan tit fortælle serveren noget om hvordan det ønskede objekt ønskes returneret. Connection bruges i HTTP 1.1 til at fortælle hvorvidt der skal bruges persistent forbindelser eller ej. POST bruges til at sende data som brugeren har indtastet til serveren, som så returnerer en resulterende web side afhængig af det af brugeren indtastede data. I så fald vil brugerdata blive overført i meddelelsens kropsdel. HEAD ligner GET meget men der sendes ikke noget objekt tilbage, og som sådan bliver den brugt til test. Der returneres nemlig stadigvæk en http meddelelse, bare ikke med noget medfølgende objekt. PUT & DELETE bruges mest i sammenhæng med at udvikle web applikationer. Med PUT kan man lægge et objekt op på en web server, og DELETE kan så fjerne det igen. Men dette er som sagt mest til brug for udviklere. 28

29 5.4.3 Svar meddelelser Her er princippet det samme, men kropsdelen indeholder den data der blev forespurgt. Formatet på en svar meddelelse. Forespørgselslinien er blevet erstattet med en statuslinie, og der er nogle nye eksempler på relevante headerlinier. De tre felter i statuslinien er: Version den anvendte HTTP version. Status Kode et tal hvis værdi viser om alt gik som det skulle, og, hvis en fejl er opstået, hvilken fejl der er tale om. Status Besked den tilhørende til status kode fejlbesked, eller OK hvis alt gik fint. Diverse status koder kan benyttes af serveren til at fortælle hvad der er gået galt. Hvis alt er i orden returneres: 200 OK. Men går der noget galt kan øvrige koder benyttes, bl.a. den meget kendte: 404 Not Found. Nogle gange kan det hjælpe klienten med at finde frem til det dokument der blev spurgt efter, f.eks. når der modtages et 301 Moved Permanently. I så fald bliver der inkluderet en header linie Location: som så viser hvor dokumentet/ objektet er blevet flyttet hen. Der er også andre header linier der kan tages i brug, såsom Date og Last-modified der angiver nogle nyttige informationer omkring oprettelsestiden osv. Det væsentlige man får ud af svaret ligger i kropsdelen. Her er nemlig data eller objekter der er forespurgt Adgangskontrol/ sikkerhed i http Vi vil lige kort nævne at det også er muligt at sikre adgang til nogle web sider, eller ændre deres indhold i takt med en bestemt bruger. Det kan være nødvendigt eller smart at kunne identificere en bestemt klient. Der er flere muligheder, men vi vil her nævne to: Adgangstilladelse (authorization) og cookies. Adgangstilladelse involverer at brugeren indtaster et brugernavn og kodeord. Der benyttes så specielle HTTP header linier og statuskoder til at klare denne login process. Cookies fungerer ved at gemme nogle oplysninger hos klienten inklusiv et unikt ID som serveren så kan finde i sin egen database. Igen bruges specielle header linier til at kommunikere dette ID og muligvis diverse andre 29

30 informationer til serveren, for at på den måde kunne identificere en tidligere registreret bruger. Cookies kan således også misbruges på det groveste, så det indebærer også et stort ansvar. Men disse metoder er stadigvæk en del af mulighederne i HTTP.[Henvises til 11.0 nr.9] 5.5 Sikkerhed For at forhindre misbrug af systemet, skal der træffes en række sikkerhedsmæssige forholdsregler. Under interaktion mellem bruger og system, udveksles mange informationer, som anvendes flere gange i et forløb. I php er det muligt at gemme disse informationer i sessionsvariable, som er en slags server-side-cookies. Denne anvendelse er praktisk, idet man slipper for at lægge disse informationer ud som cookies på klienten. Det skal derfor tilstræbes at holde alle sessionsrelevante informationer i sessionsvariable. Ved logout skal sessionsvariable slettes. Vi har også overvejet, hvilke sikkerhedsmodeller der kan bruges til at beskytte database forbindelsen i vores system. En af nedenstående løsninger bliver implementeret. En hel triviel løsning er, at benytte sig af SSL forbindelser, som nogle af databaseservere understøtter. Det kræver dog, at man har en central myndighed, som administrerer certifikater. SSL er en stærk krypteret trafik, der kan krypteres med fx. 196 bit kryptering. En anden løsning til at beskytte data kan være at kryptere data før afsendelse og lagring, og sende det i krypteret form som binære objekter. Data skal således afkrypteres på stedet, når det bliver hentet tilbage. På denne måde kan der implementeres en sikker transport af data mellem klienten og de databaser, som ikke understøtter SSL forbindelser. Men da krypteret data er i binær form, er det nødvendigt at kode denne til fx. base64 format. Antivirus og Firewalls og andre produkter er ligeledes anbefalet. 30

31 5.6 JavaScript JavaScript er et objektorienteret scriptsprog, som kan anvende for at gøre sider mere dynamiske. Et JavaScript placeres i head delen af html-dokument. Den form for JavaScript som vi her beskæftiger os med er klient side JS. Som sagt at JavaScript gør sider mere dynamisk. Med JS kan på en let måde indsætte dato og klokkeslæt på hjemmesiden. Eller lave knapper der lyser op når musen føres hen over dem. Man kan lave funktioner der forhindrer at en gæst kan anvende musens højre tast, eller lave pop-up vinduer med beskeder til den besøgende. 5.7 XHTML og HTML XHTML er den nyeste generation af HTML. XHTML er altså intet mindre end det fremtidige kodesprog på internettet. Forskellen på HTML og XHTML er i den stringente struktur, som er påkrævet ved XHTML. XHTML er ikke lige så tilgivende som almindelige HTML, når det gælder småfejl I koderne. Følgende punkter dækker forskellene: Alle sider have en DOCTYPE specifikation. Struktur- alle dokumenter skal overholde en fast og stringent struktur. Struktur- alle elementer skal overholde en stringent struktur og må ikke overlappe Elementer skal lukkes Attributter skal skrives med små bogstaver Attributter må ikke skrives i kort form Attributten name erstattes af id [ henvises til bilag 13.0 nr:1 ] 31

32 5.8 Brugergrænseflade I dette afsnit vil vi fastlægge hvordan det endelige udseende af vores brugergrænseflade skal være, og hvilke egenskaber vi vil lægge vægt på i layoutet. De valgte egenskaber skal resultere i brugervenlighed i layoutet, hvorved vi forstår: ensartet, let forståeligt, vejledende, overskueligt og let at lære. Listen ser ud som følger: Hovedlinks kan hele tiden ses Korte sætninger, som er letforståelige Feedback, når der indtastes forkerte data Brug af dæmpede farver Figur 9: layout 32

33 5.9 Farver og tekst Hvilke farver man bruger i sit system kan betyde en hel del for brugervenligheden. Hvis man bruger de forkerte farver på de forkerte tidspunkter kan man risikere at brugeren bliver forvirret og mister overblikket. Farver skal bruges med varsomhed. Men de skal bruges, for velvalgte farver gør en brugergrænseflade interessant og venlig og mere intuitiv, dvs. de støtter affordance. [Molich, Bruger enlige EDB-systemer, side 70] Vi har valgt at benytte hvidt som baggrundsfarve på alle sider. Tekstfarve har vi valgt ud fra hvad der er nemmest at skelne fra vores baggrundsfarve og som samtidig er i harmoni med baggrunden. Vi har valgt at designe hjemmeside med blå og hvidt farver. Det giver en hjemmeside som både ser flot og iøjefaldende ud samtidig med den virke levende. Første håndsindtryk er altid den vigtigste, så bruger kan se om det er en hjemmeside man kan stole på, og om den virker troværdigt. Der findes en del hjemmesider på Internettet som er falske og prøver at snyde folk for penge. Derfor skal man prøve at skille sig ud fra disse ved at virke troværdigt. Vi har derfor valgt at gøre det ved at vælge nogle gode farver og designs til hjemmeside, da dette virker mere professionelt. Alle og en hver kan designe en hjemmeside, men at lave en hjemmeside på en professionel plan er det sværeste. Det kræver erfaring at lave en hjemmeside professionel og en masse tid. Hjemmeside bliver opbygget således at det vigtige skal vises centralt på hjemmeside, og det ændre sig al efter hvad der vælges i menuerne. Dette gøre så at rammen omkring det centrale altid er den samme, men at midten af hjemmeside altid ændres. Dette gøre det meget nemmer at bruge hjemmeside for alle, da menuerne ikke ændres, så man altid har mulighed for at vælge den ønskede funktion på hjemmesiden. Vores mål med hjemmesiden er, at gøre den så brugervenligt som muligt, mens vi også tager hensyn til design, så det ikke går udover design. 33

34 Det skal være sådan at en bruger som er ny på nettet skal kunne bruge hjemmesiden uden problemer, og ikke forlader siden fordi den er svær at håndtere eller ikke kan finde rundt på hjemmesiden Konceptuel model ur 10: Den konceptuelle model Fig Den konceptuelle model tager udgangspunkt i tredelingen: Præsentations-, applikations- og databaselag. I modellen herover er selve databasen erstattet af et lag som interface til databasen. Applikations- og præsentationslagene holder firmaetslogik og brugergrænseflade adskilte. Designet anbefaler dermed en samling af PHP-scripts og funktioner, som kan kaldes fra brugergrænsen, enten i form af formsubmission eller som almindelige funktionskald Link diagram Vi vil her illustrere hvordan vores web sider er linket sammen og hvilke system interaktioner der sker når de bliver vist, dvs. om de skal have information fra serveren når de bliver vist, vi vil gå udefra de udvidede sekvensdiagrammer som vi har konstrueret. Dette skulle gerne medføre at vi får et overblik over interaktionen i systemet. Herunder er der vist signaturforklaring til link diagrammerne. <<link>> <<build>> <<submit>> Klient side Server side Links imellem to web sider Web sider interaktion med server funktioner Relation mellem form og server side. 34

35 Diagram på figur 11 viser forbindelse mellem web sider for administrator af system, hvor man har mulighed for at oprette et produkt eller slette flere data fra systemet. Link diagram for bruger kan ses i bilag Link diagram for database kan ses i Implementering afsnit under database filer. Figur 11: linke diagram for admin. Konklusion på design Generelt kan vi sige, at det har været godt og interessant at udføre design fasen med de aktiviteter som vi har valgt til netop denne fase. Dog må vi sande, at der har været tale om en særdeles iterativ proces, da vi adskillige gange har måttet ændre diagrammerne. 35

36 6.0 Databaseudvikling Ved udvikling af en database er der flere faser databaseudviklere skal igennem. Vi vil gerne under udviklingen af en database til World TeleCom komme ind i mere eller mindre grad på følgende faser: Databaseplanlægning Systemdefinition Databasedesign - Begrebsmæssig databasedesign - Logisk databasedesign - Fysisk databasedesign Flere faser kræver konfrontation med databasebrugerne for at fastlægge kravene og behovene. Da det er en projektopgave som vi arbejder med vil vi selv forsøge at fastlægge kravene og behovene ved anvendelse af såkaldt fact finding teknik. 6.1 Databaseplanlægning Første trin i udvikling af et databasesystem er, at definere såkaldt mission statement for databasen, hvilket definerer hovedformålene med databasesystemet. Når mission statement er defineret, så vil næste aktivitet involverer identificering af såkaldt mission objectives, hvilket skal fastlægge de opgaver som databasen skal supportere. Fastlæggelsen af hovedformålene kræver umiddelbart at udføre interviews med World TeleCom. I bilag 12.5 har vi forsøgt at lave et interview med firmaet, hvilket ledte os frem til at hovedformålet med databasen er: Formålet med World TeleCom databasesystem er, at vedligeholde de data der bliver brugt og genereret for at supportere ordrehåndtering for vores kunde. 36

37 Yderligere samtaler med firmaet førte os frem til nedenstående mål for databasen - at vedligehold (indtaste, opdatere og slette) data over kunderne. - at vedligehold (indtaste, opdatere og slette) data over varerne. - at vedligehold (indtaste, opdatere og slette) data på ordrerne. - At udfør søgning på kunderne. - At udfør søgning på varerne. - At udfør søgning på ordrerne. - at følge status på en ordre - at følge status på lagret 6.2 Systemdefinition Formålet med denne fase er, at definere omfanget og grænsen for databasen og dens hoved bruger. Igen er der brug for yderligere interviews med firmaet. Samtalen med firmaet omkring systemet førte os til ovenstående systemafgrænsning, hvor det fremgår at der er behov for et databasesystem der håndterer kunder, ordre og varedata. Andre behov kan dækkes ved at integrere systemet med tredjepartssystemer f.eks. betalingssystem, regnskabssystem, og markedsføringssystem. Ejer Kunder Ordre X Egen profil X X Lager X 37

38 6.3 Database Design Næste trin i udviklingen af en database er databasedesign, som indeholder 3 hovedfaser, som er - Logisk databasedesign - Begrebsmæssig databasedesign - Fysisk databasedesign Hver fase omfatter igen en række trin. I det følgende vil vi forsøge at komme rundt om de vigtigste trin i hver fase Logiske databasedesign Formålet med den begrebsmæssige databasedesign er, at konstruere: Model af domænets data, helt uafhængig af fysiske aspekter. Typisk: ER-model Første skridt ved opbygning af den begrebsmæssige datamodel er, at fastlægge hovedobjekter som brugerne er interesserede i. Disse objekter repræsenterer entiteternes typer. En metode til fastlæggelse af entiteter er, at fastlægge navneordene, som man bl.a. kan få fra brugen af kravspecifikation. Nedenstående tabel viser de mulige entiteter. Entiteternes navn Beskrivelse bruger Indeholder fælles oplysninger om kunderne. Ordrestatus Indeholder oplysninger om hvilken status ordren befinder sig i. En ordre kan gå igennem følgende status er: ikke afsendt og afsendt. Ordre Indeholder oplysninger om ordrer der er afgivet; hvem der har afgivet ordren samt bestillings tid, bestillingsdato og leveringstid. Salgsvare Indeholder oplysninger om de vare, der kan sælges. Lager Et opbevaring sted for varer. Faktura Indeholder oplysning om en ordre. 38

39 Næste skridt er fastlæggelse af relationstyperne. Det er nemmere at visualisere komplekse systemer end at lave lange tekstuelle beskrivelser. Såkaldt Entity Relationship (ER) diagram anvendes for at repræsentere entiteterne og hvordan de er relateret til hinanden. Diagram på figur 12 viser ER modellen over systemet. Bruger -brugernavn (PK) -password -cpr -navn -efternavn -adresse -city -postnr -tlf -kon - -fullhost -last_ip -dato_oprettet -dato_sidst -count -aktivering -status -udloeb_dato_aktivering -udloeb_dato_login 1..1 Afgiver 0..* 1..1 Kan have Ordre -ordrenummer (PK) -bestillingsdato -afhentningsdato -totalpris 1..1 Kan have Salgsvare -vareid (PK) -model -beskrivelsen -leveringstid -billede -pris -kategorinavn -under_kategorinavn 1..1 Kan have indholder 0..* 1..1 Lager -navn (PK) -antal 1..1 have 1..1 Kan have * 1..1 Faktura Ordrestatus -ordrestatusid (PK) -dato Kan have fakturanr (PK) -model -antal -pris -fakturadato -kategorinavn Figur 12: ER-diagram På baggrund af bl.a. brugen af kravspecifikation fastlægges attributter for entiteterne og deres relationer. Attributtyperne og deres domæne er nærmere beskrevet i bilag Derefter vælges primærnøglerne. Det gøres ved først, at udpege kandidatnøgler og derefter udvælges primærnøgler ud fra nedenstående kriterier: - En kandidatnøgle med minimalt sæt af attributter. - En kandidatnøgle der mindst ændrer værdi - En kandidatnøgle der er nemt at anvende ud fra brugens synspunkt. 39

40 Eksempelvis er et personnavn ikke særlig god valg som kandidatnøgle, da det kan forekomme, at 2 personer nøjagtigt har samme navn, og dermed kan man ikke oprette en kunde som unikt kan identificeres. Hvorimod et ordreid eller vareid er bedre som kandidatnøgler. Alle primærnøgler fremgår af ER diagrammet. Systemet checkes for redundans, hvilket indebærer kontrol af om samme data er repræsenteret, eller kan udtrækkes flere steder. Det kan konstateres, at systemet er frit for redundans Begrebsmæssige databasedesign Formålet med det logiske databasedesign er, at konstruere: Model af domænets data der afspejler databasens struktur, f.eks. relationel model eller objekt model. Uafhængig af DBMS Typisk: Mapning fra ER Første skridt er, at mappe ER modellen som blev fastlagt i sidste afsnit til relationel model. Til dette formål følges faste retningslinier. Det er en tidskrævende proces, og derfor har vi nedenunder angivet nogle eksempler på mapningsprocessen. 1) 1:1 En til En Faktura Salgsvare Faktura Salgsvare -fakturanr(pk) -model -navn -antal -pris -fakturadato -kategorinavn 1..1 Kan have vareid(pk) -navn -model -beskrivelsen -billede -lager -leveringstid -pris -kategorinavn -under_kategorinavn -fakturanr(pk) -vareid(fk) -model -navn -kategorinavn -antal -pris -fakturadato 1 1 Kan have -vareid(pk) -navn -model -beskrivelsen -billede -lager -leveringstid -pris -kategorinavn -under_kategorinavn Figur 13: 1:1 relation Mapningen sker ved at kopiere primærnøglen fra Salgsvare over til Faktura. Det skal bemærkes, at vi har en ikke obligatorisk deltagelse. 40

41 2) 1:* En til Mange Bruger Bruger -brugernavn(pk) -password -cpr -navn -efternavn -adresse -city -postnr -tlf -kon - -fullhost -last_ip -dato_oprettet -dato_sidst -count -aktivering -status -udloeb_dato_aktivering -udloeb_dato_login Afgiver * Ordre -ordreid(pk) -ordrenummer -bestillingsdato -afhentningsdato -totalpris -brugernavn(pk) -password -cpr -navn -efternavn -adresse -city -postnr -tlf -kon - -fullhost -last_ip -dato_oprettet -dato_sidst -count -aktivering -status -udloeb_dato_aktivering -udloeb_dato_login Afgiver 1 * Ordre -ordreid(pk) -brugernavn(fk) -ordrenummer -bestillingsdato -afhentningsdato -totalpris Figur14 : 1:* realtion Udfra figur 14 kan man se at entiteten på 1-siden betragtes som forældre entitet, og entiteten på mange siden (*) betragtes som barn entitet. Mapningen sker ved at flytte primærnøglen fra en siden (brugernavn) over til mange siden. Brugernavn betragtes som fremmednøgle i Ordre-entiteten. Næste skridt er, at normalisere det relationelle diagram. Men vi har udladt Normaliseringsprocessen, da vi efter en lang diskussion med firmaet synes at alle oplysninger på bruger tabel er nødvendige og derfor skal være i samme tabel, og ikke flytte det til andre tabeller, som vil være tilfælde hvis vi brugte Normaliseringsprocessen. [Henvises til afsnit 9.0] Derefter er det vigtigt at checke integritetsreglerne, som omfatter følgende: a- Obligatoriske attributter (not null) b- Attribut domæner c- Mangfoldighed d- Entitets integritet (aldrig null i primærnøglen) e- Referentiel integritet f- Generelle constraints Til gennemgang af integritetsreglerne har vi valgt, at vise et eksempel 41

42 mysql_query("create TABLE bruger ( brugernavn VARCHAR(20) NOT NULL, password VARCHAR(20), cpr VARCHAR(11), navn VARCHAR(20), efternavn VARCHAR(20), adresse VARCHAR(30), city VARCHAR(20), postnr INT(4), tlf INT(12), kon VARCHAR(6), VARCHAR(25), fullhost VARCHAR(30), last_ip VARCHAR(20), dato_oprettet VARCHAR(25), dato_sidst_login VARCHAR(25), count INT(3), aktivering VARCHAR(40), status VARCHAR(3), udloeb_dato_aktivering VARCHAR(30), udloeb_dato_login VARCHAR(30), PRIMARY KEY (brugernavn) )") Integritetsreglerne for de øvrige tabeller fremgår af bilag Figur 15: Relationel model 42

43 6.3 Fysiske databasedesign Vi har brugt XAMPP, som indeholder PHP-MyAdmin. En af de gode ting ved PHP- MyAdmin er, at den altid viser os SQL-kommandoerne. Flere detaljer om PHP- MyAdmin hensivese til bilag SQL kommandoen Man bruger sql-kommandoer til at udføre de ønskede funktioner med hensyn til database som at hente, slette eller opdater i databasen. INSERT-kommandoen Denne kommando har vi brugt til at indsætter nye poster i tabellerne, som kan ses i det følgende eksempel: ("INSERT INTO ordre (ordrenummer,fakturanr,brugernavn,bestillingsdato,afhentningsdato,totalpris) VALUES('$ordrenummer','$fakturanr','$brugernavn','$bestillingsdato','$afhentningsda to','$samletbelob')") Vi kan se at INSERT-statementet ud over tabelnavn består den af to hovedbestanddele nemlig feltlisten og feltværdierne. SELECT-kommandoen Vi kan hente poster fra vores tabeller ved hjælp sql-kommandoen SELECT. Hvis man vil hente alt (alle poster og alle felter) fra en tabel, kan sql-kommandoen se ud som: ("SELECT * FROM ordre") or die(mysql_error()); Men hvis man ønsker at hente bestemte felter, skal man erstatte *-symbolet med ønskede feltnavne adskilt af kommaer. I det følgende statement henter vi 7 forskellige attributter fra tabel bruger: "SELECT brugernavn,navn,efternavn,adresse,city,postnr, FROM bruger"; 43

44 Hvis man ønsker resultatet af en SELECT sorteret på et bestemt felt, skal man bruge kommandoen ORDER BY. I følgende statement bliver resultatet sorteret i faldende ordren da vi har brugt DESC: SELECT fakturanr,model,navn,kategorinavn,vareid,antal,pris,fakturadato FROM faktura ORDER BY kategorinavn DESC"; WHERE-sætning i forespørgsler Med WHERE-sætning kan man henter bestemt poster. WHERE i den følgende statement angiver en betingelse og det nemlige kategorinavn='mobiltilbehoer'"): ("SELECT*FROM salgsvarer WHERE kategorinavn='mobiltilbehoer'") Betingede opdateringer Betingede opdateringer betyder, at man bruger WHERE-sætningen til at sammenligne bestemt poster, som skal opdateres. Se den nedenstående statement: ("UPDATE salgsvarer SET billede = '$billede' WHERE navn = '$navn'", $conn Betingede sletninger I lighed med SELECT-og UPDATE-kommandoerne findes der selvfølgelig også betingede DELETE-statements, hvor man anvender WHERE-sætningen til at angive, hvilke poster vi vil slette. I den følgende statement kan vi slette bruger fra bruger tabellen: "DELETE FROM bruger WHERE brugernavn = '$slet_brugernavn'") Dataudtræk kan sorteres med ORDER BY og ASC eller DESC. Man kan sortere efter mere end et felt, hvor det første felt nævnt i listen er det der først sorteres efter. Se den nedenstående eksampel fra vores kode: ("SELECT * FROM salgsvarer WHERE kategorinavn='ipod_tilbehoer' ORDER BY navn") 44

45 6.5 Sikkerhed og adgangskontrol Data er en værdifuld ressource som skal kontrolleres og administreres omhyggeligt, og dermed sikres mod trusler (både tilsigtede og utilsigtede). Med dette menes ikke kun sikkerhed mod ulovlig indtrængen, men også mod uforvarende tab af data. Databaser kan sikres på flere måder ved bl.a.: Autorisation Adgangskontrol Views Backup og recovery Integritetskontrol Kryptering Autorisation er en proces, hvor en person eller en rolle bliver tildelt rettigheder, eller privilegier, hvilket giver ret til bestemte handlinger på objekter i et system. I dette følgende eksempel kan man se hvordan det ellers kunne gøres. CREATE USER user [IDENTIFED BY [PASSWORD] 'password'] [, user[identified BY [PASSWORD] 'password']]... Adgangen til databasen kan altså kontrolleres vha. brugernavn og password. De forskellige brugere kan tildeles forskellige rettigheder afhængigt af den rolle den enkelte spiller i virksomheden. Eksempelvis kan brugerne få rettigheder til indsættelse, sletning, opdatering eller indtastning af data i systemet. Denne rettighedstildeling kan gennemføres på følgende måde: a) Giv brugeren med rollen Manager fulde privilegier på kunde - tabellen GRANT ALL PRIVILEGES ON kunde TO Manager WITH GRANT OPTION; 45

46 b) Giv brugeren med rollen medarbejder SELECT og UPDATE maengdepaalager på tabellen Lager GRANT SELECT, UPDATE (maengdepaalager) ON Lager TO medarbejder ; Et view er en magtfuld og fleksibel sikkerhedsmekanisme, idet dele af databasen kan skjules fra bestemte brugere eller brugere kan få begrænset adgang til dataene. En meget vigtig ting til sikring af data er, at foretage backup af hele databasen dagligt, idet det tit ses, selv i større enheder, at der sløses med dette, hvilket medfører et større genopretnings arbejde. Integritetskontrol er med til at sikre en database ved at forhindre at data kan blive ugyldigt, og dermed fører til forkerte resultater. Kryptering er også endnu en metode til sikring af en database. Database konklusion Der er ingen tvivl om at der kan findes flere udvidelser og forbedringer. [Henviser til afsnit 9.0] 46

47 7.0 Implementering Vores grundlag for selve programmeringen er use-cases, som vi vil implementere en ad gangen. I øvrigt henviser vi til kildekoden, som følger med på en CD en. Kildekoden er kommenteret på dansk.[henvises til mappe 2 bilag ] Vi har brugt JavaScripts til validering af inputdata på klientsiden, da det letter presset fra serversiden. Vi bruger session-attributter for bl.a. at gemme oplysninger om den bruger, som er logget på i systemet. Disse bliver selvfølgeligt slettet, når sessionen ikke er gyldig mere når tiden er udløbet 7.1 Meta-tags Meta-tags bruges til beskrivelse af en hjemmesides indhold, og evt. information til browseren om keyword og andre ting. Meta-tags placeres altid i head sektionen. I det følgende skema præsenter nogle af det anvend kommando i meta-tag og deres funktioner: Kommando Keyword Description Author Content-type Refresh 7.2 Grundlæggende struktur Beskrivelse Denne meta-tag anvendes til at angive søgeord til vores hjemmeside Her kan vi skrive hvad vores side handler om. Hvem der har lavet siden. Angiver hvilken tegnset du anvender. Denne kommando fortæller browseren at siden skal opdateres (reloades). Tiden sættes i sekunder. Eventuelt kan man angive en URL, som skal loades efter x sekunder. Firmaets logo bliver brugt flere gange, da den danner rammer for selve indholdet, så den er en genganger på selve hjemmesiden. Web-stedet er derudover opbygget med 4 søjler. Venstre og top søjle anvendes til navigation med interne links. Den midterste søjle viser det ønskede indhold. Nederst søjle anvendes som fodenotta. Der er ligeledes plads til reklamer. Der er anvendt frames til opbygningen af siden. Dette er grunden til det kan lade sige gøre at skifte selve indholdet i midten af siden, mens resten vil være det samme. Der er blevet skrevet kode i Notepad. 47

48 index.php Funktioner Beskrivelser ini_set() Sætter en værdi for en konfriguation. Session_start() Starter session. isset() Kontrollere om variablen eksisterer. Base64_decode() Henvises til Inkluder filer: Connectioninfo.php, warning.php: kontakt.php: next.php: Inkluder filer: Connectioninfo.php, 7.3 Login/aktivering/ logout/ glemt login login.php Funktioner Ob_start() Beskrivelser Session_start() Starter session. Isset() Som kontrollere om variablen eksisterer. JavaScript Alert() Popup meddelelse. Inkluder: connectioninfo.php, mysql_connect.php aktivering.php Funktioner Beskrivelser Ob_start() Starter output buffering. Ob_end_flush() Slutter output buffering og Flusher (sender) output buffering. JavaScript Alert() Popup meddelelse. Inkluder: connectioninfo.php, mysql_connect.php 7.4 Database filer Dette afsnit vil gennemgå samarbejde mellem database filer. Figur 14 viser hvordan det forskellige filer kommunikere med hinanden. Figur 16: kommunikation mellem filerne. 48

49 Ud fra figur 16 kan man se sammenhængene mellem kommunikationen mellem install og de øvrige filer. Connection filen indeholder oplysninger om login til databasen og admin oplysninger i encoded form.connectioninfo henter de encoded oplysninger fra conncetion og decoder det. Mysql_connect opretter forbindelse til databasen med oplysningerne fra conncetion som er blevet decoded af connectioninfo. Tabel indeholder sql kommandoer til oprettelse af entiterne med tilhørende attributter. install.php Funktioner Beskrivelser Session_start() Starter Session. Fopen() Åbne en fil (read,write,append). Isset() Som kontrollere om variablen eksisterer. Is_writable() Den fortæller om man kan skrive til filen. Fwrite() Skrive til filen. Fclose() Luk filen. Base64_decode() Henvises til afsnit Base64_encode() Henvises til afsnit JavaScript alert Popup meddelelse. Inkluder: connectioninfo.php, mysql_connect.php, tabel.php Connectioninfo.php Fopen() Åbne en fil (read,write,append). Feof() Fclose() Luk filen. Base64_decode() Henvises til afsnit mysql_connect.php : At forbinde til en database. Mysql_connect() Forbinder til host, som typisk er localhost. Mysql_select_db() Vælger en database. die() Giver mulighed for at man kan lave fejlmeddelelser base64_encode() og base64_decode base64_encode - kodning af data via MIME base64. base64_encode() returnerer data encoded via base64. Denne kodningsform er udviklet for at binære data kan transporteres via teknologier, som ikke kan overføre 8-bit i tilstrækkelig omfang, som f.eks. . $host = base64_encode($host);//krypter $user = base64_encode($user); $pass = base64_encode($pass); $dbname = base64_encode($dbname); $adminuser = base64_encode($adminuser); $adminpass = base64_encode($adminpass); $ = base64_encode($admin ); 49

50 Returnerer: <?php/*bg9jywxob3n0cm9vda==d29ybgrzag9wywrtaw4=mtizna==aw5mb 0B3b3JsZHRlbGVjb20uZGs=*/?> base64_decode - afkoder (decoder) data som er kodet via MIME base64. base64_decode() afkoder data og returnerer de originale data eller usandt (false) ved fejl. De returnerede data kan være af binært format udfør forespørgelser Php-funktion mysql-query( ) bruges til at send vores SQL-forespørgsel til MySQL. Hvis forespørgslen går godt, returneres et resultatindeks. Hvis forespørgslen fejler, returnerer funktion false. 7.5 Bruger filer Brugeropret.php Funktioner Ob_start() Session_start() Mysql_query( ) Mysql_fetch_array( ) strlen ( ) Preg_match JavaScript Beskrivelser Starter output buffering. Starter Session. Sender en MySQL query. Henter en resultat som et array. Stringens længde. Tjekker to regulære udtryk. Inkluder: connectioninfo.php, mysql_connect.php Minprofil.php Funktioner Beskrivelser ob_start( ) Starter output buffering. Ob_end_flush( ) Slutter output buffering og Flusher (sender) output buffering.. Session_start( ) Starter Session. Mysql_query( ) Sender en MySQL query. Mysql_fetch_array( ) Henter en resultat som et array. ereg( ) Tjekker regulære udtryk. JavaScript Checkform( ) Sender form data, så den kan testes med JavaScript. Alert() Pop meddelelse. 50

51 exitpop( ) Lukker popup window. Inkluder: connectioninfo.php, mysql_connect.php Nybruger.php Funktioner Beskrivelser ereg() Tjekker regulære udtryk. JavaScript Alert() Popup Meddelelse. Checkform(form) Sender form data, så den kan testes med JavaScript Beregning af kontrolciffer ved brug af moduls 11 til CPR. NR. Det bliver brugt moduls 11 for at beregne 10 ciffer i CPR. NR. Et CPR-nummer består af i alt ti cifre, som regel skrevet med en bindestreg mellem de første seks og de sidste fire cifre. De første seks cifre er sat sammen af: Ciffer 1 og 2 angiver hvilken dag personen er født. Ciffer 3 og 4 angiver hvilken måned personen er født. Ciffer 5 og 6 angiver et tocifret tal den årti personen er født. Ciffer 7 og 8 og 9 er et løbenummer. Ciffer 10 angiver dels kønnet på den person og så virker det som et kontrolciffer. Er cifferet lige, er der tale om en kvinde (eller pige) - er det ulige, tilhører nummeret en mand (eller dreng). Det sidste ciffer er et kontrolciffer (checkciffer), som beregnes ud fra de forudgående ni cifre efter den såkaldte modulus 11-metode. Dette har især betydning i edbsystemer, hvor der skal indtastes personnummer, fordi det giver mulighed for at kontrollere det indtastede nummer for slåfejl. Eksempel på kontrolberegning af personnummer Som eksempel bruges en mand der er født xx. december xxxx. Personnummeret er xxxxxx-xxxx. Første tal 2 multipliceres med 4, lig med 8. Næste tal 9 multipliceres med 3, lig med 2 og så fremdeles. Alle multiplikationer lægges sammen og giver moduleres med 11 og giver 0 i restværdi, og personnummeret er kontrolleret til at være korrekt. 51

52 1) CPR. R x x x x x x - x x x x 2) Multiplication med: Sum af produkter 4) Modulus 11 af sum x/x = x 5)x*x = x 6) x-x= x 7) x-x = x 3) Produkt: x x x x x x x x x = x 8) check x-x = 0 Figur 17: Modulus 11-metode (af sikkehedsmæssig grunde er oplysningerne gjorde ulæselig). if(form.cpr0to6.value == "111111" && form.cpr7to11.value == "1118") { alert("ugyldig CPR-NR.!") return (false) } if(form.cpr0to6.value!= "" form.cpr7to11.value!= "") { cpr = form.cpr0to6.value+"-"+form.cpr7to11.value cpr1 = cpr.charat(0) cpr2 = cpr.charat(1) cpr3 = cpr.charat(2) cpr4 = cpr.charat(3) cpr5 = cpr.charat(4) cpr6 = cpr.charat(5) cpr7 = cpr.charat(7) cpr8 = cpr.charat(8) cpr9 = cpr.charat(9) cpr10 = cpr.charat(10) cprtest1 = ((cpr1*4)+(cpr2*3)+(cpr3*2)+(cpr4*7)+ (cpr5*6)+(cpr6*5)+(cpr7*4)+(cpr8*3)+(cpr9*2)) cprtest2 = 11-(Math.round(((cprtest1/11)-Math.floor(cprtest1/11))*11)) if(cpr10!= cprtest2) { alert("ugyldig CPR-NR.!") return (false) } 7.6 Admin filer Nedenstående skema viser nogle af det forskellige funktioner, der tilhører til forskellige php filer, der er blivet brugt i koden. 52

53 Admin.php Funktioner Ob_start( ) Session_start( ) Ob_end_flush ( ) Inkluder: connectioninfo.php Sefaktura.php Funktioner Ob_start( ) Session_start( ) Mysql_query( ) Mysql_error( ) Beskrivelser Starter output buffering. Starter Session. Slutter output buffering og Flusher (sender) output buffering. Beskrivelser Starter output buffering. Starter Session. Sender en MySQL query. Returner fejl besked af sidste MySQL kald. Mysql_fetch_array( ) Henter en resultat som et array. Ob_end_flush ( ) Slutter output buffering og Flusher (sender) output buffering. Inkluder: connectioninfo.php, mysql_connect.php Visordrestatus.php Funktioner Beskrivelser Ob_start( ) Starter output buffering. Session_start( ) Starter Session. Mysql_query( ) Sender en MySQL query. Mysql_error( ) Returner fejl besked af sidste MySQL kald. Mysql_fetch_array( ) Henter en resultat som et array. Ob_end_flush ( ) Slutter output buffering og Flusher (sender) output buffering. Inkluder: connectioninfo.php, mysql_connect.php Opretprodukt.php Funktioner Beskrivelser Session_start( ) Starter Session. Mysql_query( ) Sender en MySQL query. Mysql_error( ) Returner fejl besked af sidste MySQL kald. JavaScript Alert( ) Popup meddelelse. Inkluder: connectioninfo.php, mysql_connect.php Sletbruger.php Funktioner Beskrivelser Ob_start( ) Starter output buffering. Session_start( ) Starter Session. Mysql_query( ) Sender en MySQL query. Mysql_error( ) Returner fejl besked af sidste MySQL kald. Mysql_fetch_array( ) Henter en resultat som et array. Ob_end_flush ( ) Slutter output buffering og Flusher (sender) output buffering. Inkluder: connectioninfo.php, mysql_connect.php 53

54 Visprodukterrediger.php Funktioner Beskrivelser Ob_start( ) Starter output buffering. Session_start( ) Starter Session. Mysql_query( ) Sender en MySQL query. Mysql_error( ) Returner fejl besked af sidste MySQL kald. Mysql_fetch_array( ) Henter en resultat som et array. Ob_end_flush ( ) Slutter output buffering og Flusher (sender) output buffering. Inkluder: connectioninfo.php, mysql_connect.php Visdetaljer.php Funktioner Beskrivelser Session_start( ) Starter Session. Mysql_query( ) Sender en MySQL query. Mysql_fetch_array( ) Henter en resultat som et array. Inkluder: connectioninfo.php, mysql_connect.php Visproduktslet.php Funktioner Beskrivelser Ob_start( ) Starter output buffering. Session_start( ) Starter Session. Mysql_query( ) Sender en MySQL query. Mysql_error( ) Returner fejl besked af sidste MySQL kald. Mysql_fetch_array( ) Henter en resultat som et array. Ob_end_flush ( ) Slutter output buffering og Flusher (sender) output buffering. Inkluder: connectioninfo.php, mysql_connect.php Visproduktdetaljerrediger.php Funktioner Beskrivelser Ob_start( ) Starter output buffering. Session_start( ) Starter Session. Mysql_query( ) Sender en MySQL query. Mysql_error( ) Returner fejl besked af sidste MySQL kald. Mysql_fetch_array( ) Henter en resultat som et array. Str_replace Ob_end_flush ( ) Slutter output buffering og Flusher (sender) output buffering. JavaScript Alert ( ) Pop meddelelse. Inkluder: connectioninfo.php, mysql_connect.php Viskunder.php Funktioner Beskrivelser Ob_start( ) Starter output buffering. Session_start( ) Starter Session. Mysql_query( ) Mysql_error( ) Sender en MySQL query. Returner fejl besked af sidste MySQL kald. 54

55 Mysql_fetch_array( ) Henter en resultat som et array. Ob_end_flush ( ) Slutter output buffering og Flusher (sender) output buffering. Inkluder: connectioninfo.php, mysql_connect.php Opretdatabase.php Funktioner Beskrivelser Ob_start( ) Starter output buffering. Session_start( ) Starter Session. Mysql_query( ) Sender en MySQL query. Ob_end_flush ( ) Slutter output buffering og Flusher (sender) output buffering. JavaScript Alert ( ) Pop meddelelse. Inkluder: connectioninfo.php, mysql_connect.php, tabel.php 7.7 Afgive ordre filer Fra den nedstående [ henviset til bilage 14.3] Produkter.php Funktioner Mysql_query( ) Mysql_error( ) Mysql_fetch_array( ) JavaScript Alert () Inkluder: connectioninfo.php, mysql_connect Mobiltelefoner.php Indeholder hml kode Mobiltelefonertilbehoer Indeholder hml kode Tilbehoerlink.php Indeholder hml kode Koeb.php Funktioner Ob_start( ) Session_start( ) Mysql_query( ) Mysql_error( ) Mysql_fetch_array( ) Isset ( ) Preg_match ( ) Setcookie( ) Ob_end_flush ( ) Inkluder: connectioninfo.php, mysql_connect.php Beskrivelser Sender en MySQL query. Returner fejl besked af sidste MySQL kald. Henter en resultat som et array. Pop meddelelse. Beskrivelser Starter output buffering. Starter Session. Sender en MySQL query. Returner fejl besked af sidste MySQL kald. Henter en resultat som et array. Tjekker om variablen er sat. Tjekker regulære udtryk. Opretter cookie. Slutter output buffering og Flusher (sender) output buffering. 55

56 Vis.php Funktioner Beskrivelser Mysql_query( ) Sender en MySQL query. Mysql_error( ) Returner fejl besked af sidste MySQL kald. Mysql_fetch_array( ) Henter en resultat som et array. Inkluder: connectioninfo.php, mysql_connect.php Kurv.php Funktioner Beskrivelser Session_start( ) Starter Session. Isset ( ) Tjekker om variablen er sat. explode ( ) Splitter en string. Setcookie( ) Opretter cookie. Mysql_query( ) Sender en MySQL query. Mysql_error( ) Returner fejl besked af sidste MySQL kald. Mysql_fetch_array( ) Henter en resultat som et array. Ob_end_flush ( ) Slutter output buffering og Flusher (sender) output buffering. Inkluder: connectioninfo.php, mysql_connect.php Ordre.php Funktioner Beskrivelser Ob_start( ) Starter output buffering. Session_start( ) Starter Session. Isset ( ) Tjekker om variablen er sat. Mysql_query( ) Sender en MySQL query. Mysql_fetch_array( ) Henter en resultat som et array. Setcookie( ) Opretter cookie. eregi_replace( ) Erstatter regulære udtryk. strlen ( ) Stringens længde. Is_int( ) Tjekker hvilken type. Preg_match( ) Regulære udtryk. Mysql_fetch_array( ) Henter en resultat som et array. JavaScript Inkluder: connectioninfo.php, mysql_connect.php Kvittering.php Funktioner Beskrivelser Ob_start( ) Starter output buffering. Mysql_query( ) Sender en MySQL query. Mysql_fetch_array( ) Henter en resultat som et array. Isset ( ) Tjekker om variablen er sat. Numer_format Viser nummer format. JavaScript Printkvittering ( ) Inkluder: connectioninfo.php, mysql_connect.php 56

57 7.7.1 Beregning af kontrolciffer ved brug af moduls 10 til visa kort. Card Nr. Dubble Subtitute Result Dette skema forklar hvad moduls 10 går ud på. Denne princep har vi oversate til kode, for at validere visa kort. Ud fra den nedestående er kode til algoritmen. if(preg_match($udtryk,$kortnummer)) { $verified = "True"; } for($i=strlen($kortnummer)-1; $i+1;$i--) { $sum += $kortnummer[$i]; $multiplikation = $kortnummer[--$i]*2; if(strlen($multiplikation) == 2) { $split1 = substr($multiplikation, 0, 1); $split2 = substr($multiplikation, 1, 2); $sum += $split1+$split2; } else $sum += $multiplikation; } if($sum % 10) Konklusion på implementering Programmeringsdelen af et projekt er altid det sted, der har den største risiko. Vi er tilfredse med resultatet, som vi har opnået i forbindelse med denne fase (af hensyn til projektet varighed). Derfor skal vi i gang med næste og sidste fase i vores projekt, testen af systemet. 57

58 8.0 Test En fejltagelse er en menneskelig handling, der frembringer et ukorrekt resultat. En fejl er en manifestation af en fejltagelse i softwaren. Fejltagelser opstår, fordi vi ikke er perfekte og - selv om vi var det - arbejder vi under krav og er underlagt begrænsninger, som for eksempel deadlines for levering. Formålet med testen er, at forsøge at afdække og efterfølgende rette så mange af systemets fejl som muligt af strukturel og funktionel karakter. Da der findes 2 klassiske metoder for testning af system, nemlig black-box og whitebox test. Vi har besluttet at test vores system med blackbox test. Fordi ulempe med whitebox er, at antallet af kombinationsmuligheder bliver hurtigt astronomisk stort. Hvornår ved man, at man er færdig med at teste? Men man kan blive nødt til at stoppe: Når tiden er udløbet Når man ikke mere finder fejl. Og på den måde er test er vellykket, når Ingen fejl blev afsløret! Til trods for en gennemtænkt test senarie, kan det ikke garanteres, at der leveres et stykke fejlfri software.[ Henviser vi til bilag 12.8 og ] 8.1 Browser test Vi har valgt at teste hjemmesiden på følgende browsere: - Mozilla FireFox [Henviser vi til bilag 12.8 Browser Test ] - Microsoft IE 6.0 [Henviser vi til bilag 12.8 Browser Test] - Opera 9.25 [Henviser vi til bilag 12.8 Browser Test] - Netscape navigator 9.0 [Henviser vi til bilag 12.8 Browser Test] Der er ikke testet på ældre versioner Konklusion på test Testene er blevet gennemgået for de vitale dele af projektet. Vi er godt tilfredse med udfaldet af vores test. Vi har opnået det meste af den funktionalitet hvor det har været vores fokus, og ikke brugergrænsefladen, og vi mener derfor at have opfyldt de fleste af punkterne i vores system, men det betyder ikke alle punkterne er opfyldt. 58

59 9.0 Forslag til forbedring af vores løsning Til sidst har vi tænkt os at forlægge en diskussion om eventuelle forbedringer til vores system, som vi mener, er nødvendige for at dække kundens krav fuldstændigt. Mange af disse overvejelser er vores idéer, som vi har fået under projektets forløb. Vores løsning en prototype der vil blive anvendt som grundlag til udviklingen af det endelige system. For eksempel vi kunne ikke nå at integrere vores system med betaling system fra PBS, da det skyldes svar forsinkelse fra dem. Efter implementeringen er afsluttet, kunne vi godt forestille os følgende optimeringer: Databasen 1) Kigger man nærmere på ER modellen eller den relationelle model kan man opdage, at der en del uhensigtsmæssigheder eller mangler. Eksempelvis er det uhensigtsmæssigt, at have cpr, navn og efternavn som 3 attributter i bruger tabellen. Vi forsøger i dette afsnit at rette op på nogle uhensigtsmæssigheder samt bruge normalisering til 3NF på alle tabeller. Formålet med normalisering er, at fjerne redundans, dvs. det fænomen at samme oplysninger er registreret flere steder i databasen. Ved normalisering skal relationerne opfylde forskellige grader af normalformer. Første normal form (1. NF) er opfyldt, hvis hver tupel i relationen kun indeholder en værdi pr. attribut og hvis hver tupel er unik, det vil sige kan udpeges ved hjælp af en primærnøgle. Anden normalform (2. NF) er opfyldt, hvis 1. NF er opfyldt og hvis alle ikke-primære attributter er fuldt funktionelt afhængige af primærnøglen. Funktionel afhængighed er, hvis en given værdi af attributten A medfører en værdi af B. Fuld funktionel afhængighed er, hvis A er en sammensat nøgle, så skal B være afhængig af hele nøglen og ikke kun en del af den. 59

60 Tredje normalform (3. NF) er opfyldt, hvis 2. NF er opfyldt og hvis ikke-primære attributter er transitivt afhængige af primærnøglen. C er transitiv afhængig af A, når A determinerer B og B determinerer C (forudsat at C eller B ikke determinerer A). 2) Et potential forbedring til vores databasedel vil være at benytte transaktioner. Nogle af stored procedures indeholder flere queries, der skal eksekveres som atomiske handlinger for at sikre dataintegritet i tabellerne. Normaliseringsgraden kan også forbedres, hvis man ønsker en hurtigere database. Fejlhåndtering Mange steder har vi undgået at lave brugervenlige fejlbeskeder og implementere en rigtig fejlhåndtering. Dette skyldes at vi har valgt at fokusere på mere relevante ting. Brugervenlighed På et tidspunkt vil systemet indeholde som mange data, at det vil blive umuligt at overskue de lister, som blive generet af vores web-applikation. Man kan eventuelt tilføje søgefunktioner, der vil kunne finde de ønskede data efter numrene, navne, datoer osv. Validering For at valider sider går man til og indtast adressen (URL'en) på hjemmesiden og valider den. Hvis HTML er fejlfri vil man få en fin lykønskning. Ellers får man en fejlrapport, der fortæller dig præcis hvad og hvor, du har gjort noget forkert. Validatoren hjælper ikke kun med at lokalisere fejl. Nogle browsere forsøger at kompensere for fejl og mangler i koden. Derfor vil man måske ikke se fejlen i sin egen browser, men andre vil måske opleve hjemmesiden helt anderledes. Validatoren kan hjælpe med at finde de fejl, som man ikke vidste eksisterede. Derfor er det altid godt at valider hjemmesider, så er man ret sikker, på at de korrekt i alle browsere. På grund af tidspres har vi ikke vaildere vores kode med w3c standarden. 60

61 10.0 Konklusion og opsummering Der er blevet designet, implementeret og testet et system, der opfylder de krav, som World TeleCom og PBS stiller (PBS pga. deres krav til hjemmesiden før man kan få lov til at benytte deres PBS system). Vi har også gennemgået ønskede diskussionstemaer og kommet med vores egne forslag til eventuelle forbedringer af systemet, som vi har tænkt os at implementere. Under udviklingen har vi brugt en række Software Engineering metoder (OOAD), som vi har lært i forrige kurser på DTU, og det har hjulpet ret meget med struktureringen af vores arbejdsgang. Projektet som helhed er implementeret tilfredsstillende umiddelbart efter hensigten. Generelt set har projektforløbet været yderst tilfredsstillende, og arbejdet med udvikling af applikationen har været spændende og udfordrende. Og arbejdet med projektet har givet os bedere erfaring i at designe, implementere, programmere samt teste og fejlfinde. 61

62 11.0 Referencer og links UML Applying UML and Patterns: Craig Larman,ISBN , Addison Wesley Object-oriented Analysis and Design and Databases (Slides fra campusnet) 5. Web Application Design Using UML jim conallen, Rational Software Corporation

63 12.0 Bilag 12.1 Installationsvejledning Vi har vedlagt en CD, som indeholder både kildekode og programmet XAMPP. Mappen med kildekoden hedder Hjemmeside og der ligger følgende undermapper/filer i denne: Billeder Private Aktivering Install Login Next Produkter Kontakt Sefaktura Tilbehoerlin k Visordrestat us Connection Brugeropret Koeb Mobiltelefoner Nybruger Profil Minprofil Sletbruger Sletbruger Visprodukterrediger Connectioninfo Kurv Mobiltelefonertilbeho er Opretdatabase Read Me Robots Style Visdetaljer Visproduktslet Admin Index Kvittering mysql_connect opretprodukt ordre visproduktdetaljerredig er tabel viskunder warning Denne mappe skal bruges, hvis man ønsker at åbne projekterne i XAMPP. Meget vigtigt: mappen skal kopieres til\xampp\htdocs\. Mappen Billeder indeholder alle hjemmesidens billeder. Mappen Private indeholder de uploadet billede ved oprettelse af produkter. Via browseren kan man tilgå web-applikationen via dette URL: https://localhost/hjemmeside 63

64 12.2 Use case beskrivelser Opret kunde- Use Case Use case: Opret kunde. Nummer: 02 Formål: At oprette en kunde i systemet med navn, adresse og telefon nr. Scope: System. Niveau: Primær (essentiel). Primær aktør: Kunde eller Ejer. Sekundær aktør: Ingen. Prækondition: Systemet er startet op og er online. Postkondition: Kunde er blevet oprettet i systemet. Frekvens: En gang imellem. Trigger: En kunde ønsker at blive oprettet i systemet. Typisk hændelsesforløb: Aktør System 1. Kunde meddeler at vedkommende ønsker at blive oprettet som kunde (enten personligt i butikken, eller online på hjemmeside). 3. Kundedata indtastes (enten af kunden selv, eller kasseassistent). 3. System frembringer vindue, hvor der kan indtastes navn, adresse og telefon nr. 4. System gemmer kunde data, og kunden er blevet oprettet i systemet. Alternativt hændelsesforløb: 3a. Kunden går videre uden at indtaster brugernavn. 1. Feltet brugernavn må ikke være tomt. 3b. Kunden går videre med indtast mindre en 4 bogstaver på brugernavn. 1. Brugernavn skal indeholder minimum 4 tegn. 3c. Kunden går videre uden at indtaster Adgangskode. 1. Feltet adgangskode må ikke være tomt. 3d. Kunden indtaster Adgangskode. 1. Fejl: Feltet gentage adgangskode må ikke være tomt. 2. Fejl: Adgangskode skal indeholde minimum 6 tegn. 3. Fejl: Adgangskode må ikke indeholde ulovlige tegn. 4. Fejl: Adgangskode skal være forskellig fra brugernavn! 5. Fejl: Adgangskode skal indeholde mindst et stort bogstav. 6. Fejl: Adgangskode skal indeholde mindst et lille bogstav. 7. Fejl: Adgangskode skal indeholde mindst et tal (0-9). 8. Fejl: Gentagelsen af adgangskoden var forkert. 3e. Kunden indtaster CPR-Nr. 1. Fejl: Feltet CPR-NR. må ikke være tomt. 2. Fejl: CPR-NR. må ikke indeholde ulovlige tegn. 3. Ugyldig CPR-NR. 64

65 3f. Kunden indtaster Fornavn. 1. Fejl: Feltet fornavn må ikke være tomt. 2. Fejl: Fornavn må ikke indeholde ulovlige tegn. 3. Fejl: Fornavn må kun indeholde bogstaver. 3g. Kunden indtaster efternavn. 1. Fejl: Feltet efternavn må ikke være tomt. 2. Fejl: Efternavn må ikke indeholde ulovlige tegn. 3. Fejl: Efternavn må kun indeholde bogstaver. 4. Fejl: Feltet adresse må ikke være tomt. 3h. Kunden indtaster adresse. 1. Fejl: Feltet adresse må ikke være tomt. 2. Fejl: Adresse skal indeholde både bogstaver og tal. 3i. Kunden indtaster postnr. 1. Fejl: Feltet postnummer må ikke være tomt. 2. Fejl: Postnummer skal indeholde minimum 4 tal. 3. Fejl: Postnummer må ikke indeholde ulovlige tegn. 4. Fejl: Postnummer må kun indeholde tal (0-9). 3i. Kunden indtaster telefonnummer. 1. Fejl: Feltet telefonnummer må ikke være tomt. 2. Fejl: Telefonnummer må ikke indeholde ulovlige tegn. 3. Fejl: Telefonnummer må kun indeholde tal (0-9). 4. Fejl: Telefonnummer skal indeholde minimum 8 tal. 3i. Kunden indtaster Fejl: Feltet må ikke være tomt. 2. Fejl: Feltet gentagelse må ikke være tomt. 3. Fejl: Gentagelsen af var forkert igen. 4. Fejl: Ugyldig . 4a: Der er ingen DB tilgang. 4b. System signalerer en fejl. 65

66 Afgiv ordre - Use Case Use case: Afgiv ordre. Nummer: 03 Formål: En kunde bestiller en eller flere varer, bestillingen registreres med afleverings tid og kvittering for bestillingen vises til kunden. Scope: System. Niveau: Primær (essentiel). Primær aktør: Kunde. Sekundær aktør: Ingen. Prækondition: Kunden er oprettet og godkendt i systemet. Postkondition: Kunden har bestilt varer, bestillingen er registreret og en kvittering vises. Frekvens: Ofte. Trigger: Kunden ønsker at afgive ordre. Typisk hændelsesforløb: Aktør System 1. Kunden indleder en ny ordre. 2. Systemet viser det forskellige man har på 3. Kunden vælger en vare og indtaster antal og lager. bestiller den. 4. Systemet tilføjer ordren. 5. Kunden afslutter bestillingen. 7. Kunden vælger afhentningsmåde. 6. Systemet opdaterer ordren (eller bestillingen eller indkøbskurv). 9. Kunden godkender afhentningsmåder. 10. Kunden vælger betaling. 12. Kunden bekræfter betaling. 8. Systemet viser afhentningsmåder. 11. Systemet viser betaling. 13. Systemet godkender betaling. 14. Systemet udskriver en kvittering. Alternativt hændelsesforløb: *a. På et eller andet tidspunkt ønsker kunden, at slette vare fra ordren. *b. På et eller andet tidspunkt ønsker kunden, at opdatere en bestilling. 2a: Der er ingen DB tilgang. 1. System signalerer en fejl. 2. Bruger foretager handling. 3a: Varen er udsolgt. 1a Kunden annullerer hele ordren. 1b Kunden vælger en ny vare. 8a: Kunden afslutter ikke bestillingen. 1. Efter 15 minutter påmindes kunden om at ordren ikke er bekræftet. 7a Kunden går videre uden at vælge afhentningsmåde. 66

67 1. Systemet signalerer en fejl. 1a. Systemet forbliver i punkt 10 indtil der vælges en afhentningsmåde. 12a.Kunden bekræfter ikke ordren. Kunden annullerer hele ordren. Kunden sletter vare fra ordren. Kunden ændrer på ordren. 13a.Ordren godkendes ikke. Fejl i oplysningerne. Dårlig forbindelse til DB. Kunden prøver en anden løsning. Kunden annullerer ordren. 14a.Udskrivning mislykkedes... Systemet signalerer en fejl.. Kunden undlader at udskrive kvittering. Foretag betaling- Use Case Use case: Foretag betaling. Nummer: 04 Formål: At kunden betaler for sine varer. Scope: Niveau: Primær aktør: Kunde. Sekundær aktør: Ingen. Prækondition: 1. Kunden er oprettet som bruger i systemet og med en gyldig adresse. 2. Kunden er logget ind. 3. Kunden har bestilt varer via butikkens hjemmeside. Postkondition: Kunden har betalt for sine varer, og butikkens pengebeholdning er blevet opdateret. Frekvens: Ofte. Trigger: Kunden har bestilt varer, og skal til at betale. Typisk hændelsesforløb: (Alle typer) Aktør System 1. Kunden foretager bestilling. 2. Kunden bliver bedt om at betale. 3. Kunden indtaster sine oplysninger for hans/hendes dankort. 4. System håndterer transaktion, og viser faktura.. Alternativt hændelsesforløb: (Dankort) Aktør System 67

68 3a. Kunden indtaster sit kortnummer. 1. Fejl: Du har angivet et forkert kortnummer. 2. Fejl: Kortnummer er ugyldigt! 3b. Kunden indtaster sin kontrolcifre. 1. Fejl: Kontrolcifre må ikke være tomt og skal indeholde 3 cifre. 2. Fejl: Kontrolcifre må kun indeholde tal. 3c. Kunden går videre uden at acceptere vilkårene. 1. Fejl: Du skal acceptere vilkårene. 4a. Systemafviser betaling med forkerte oplysninger. 4b. System giver kunden mulighed for at starte betalingen forfra. Min profil- use case Use case: Min profil. Nummer: 05 Formål: At kunden ser sine profil. Scope: Niveau: Primær aktør: Kunde. Sekundær aktør: Ingen. Prækondition: Kunden er logget ind. Postkondition: Kunden logger ind i systemet. Frekvens: Ofte. Trigger: Kunden ønsker at se/opdater profil. Typisk hændelsesforløb: (Alle typer) Aktør System 1. Kunden er log ind i systemet og skal klikke på min profil. 2. System frembringer min profil side. 3. Kunden indtaster nye oplysninger. 4. System gemmer kundedata. Alternativt hændelsesforløb 3a. Kunden indtaster Adgangskode. 1. Fejl: Feltet adgangskode må ikke være tomt. 2. Fejl: Adgangskode skal indeholde minimum 6 tegn. 3. Fejl: Adgangskode må ikke indeholde ulovlige tegn. 4. Fejl: Adgangskode skal være forskellig fra brugernavn. 5. Fejl: Adgangskode skal indeholde mindst et stort bogstav. 6. Fejl: Adgangskode skal indeholde mindst et lille bogstav. 7. Fejl: Adgangskode skal indeholde mindst et tal (0-9). 3b. Kunde indtaster adresse. 1. Fejl: Feltet adresse må ikke være tomt. 2. Fejl: Adresse skal indeholde både bogstaver og tal. 3c. Kunde indtaster postnr. 1. Fejl: Feltet postnummer må ikke være tomt. 2. Fejl: Postnummer skal indeholde minimum 4 tegn. 68

69 3. Fejl: Postnummer må ikke indeholde ulovlige tegn. 4. Fejl: Postnummer er ugyldigt. 5. Fejl: Postnummer må kun indeholde tal (0-9). 3.d Kunde indtaster telefonnummer. 1. Fejl: Feltet telefonnummer må ikke være tomt. 2. Fejl: Telefonnummer må kun indeholde tal (0-9). 3. Fejl: Telefonnummer skal indeholde minimum 8 tal. Opret produkt use case Use case: Opret produkt. Nummer: 06 Formål: At admin opretter vare på siden. Scope: Niveau: Primær aktør: Admin. Sekundær aktør: Ingen. Prækondition: Admin er logget ind. Postkondition: Admin logger ind i systemet. Frekvens: Ofte. Trigger: Kunden ønsker at opretter produkt. Typisk hændelsesforløb: (Alle typer) Aktør System 1. Admin er log ind i systemet og vælger opret produkt knap. 2. System viser opret produkt side. 3. Admin tilfører nye produkter og klikker på opret knap. 4. System gemmer data. Alternativt hændelsesforløb 3.a Admin tilfører produkts billede. 1. Fejl: Det er ikke den rigtige type fil, så du kan ikke uploade (det skal være jpeg eller jpg). 69

70 Se faktura- use case Use case: Se faktura. Nummer: 07 Formål: At admin ser faktura. Scope: Niveau: Primær aktør: Admin. Sekundær aktør: Ingen. Prækondition: Admin er logget ind. Postkondition: Admin logger ind i systemet. Frekvens: Ofte. Trigger: Admin ønsker at se faktura. Typisk hændelsesforløb: (Alle typer) Aktør System 1. Admin er log ind i systemet og vælger at se faktura. 2. System frembringer se faktura siden. Alternativt hændelsesforløb. Vis bruger - use case Use case: Vis bruger. Nummer: 08 Formål: At admin ser bruger. Scope: Niveau: Primær aktør: Admin. Sekundær aktør: Ingen. Prækondition: Admin er logget ind. Postkondition: Admin logger ind i systemet. Frekvens: Ofte. Trigger: Admin ønsker at se kunder. Typisk hændelsesforløb: (Alle typer) Aktør System 1.Admin er log ind i systemet vælger at se bruger. 2. System frembringer vis bruger siden. Alternativt hændelsesforløb. 70

71 Installer database- use case Use case: Installer database. Nummer: 09 Formål: At admin installer database. Scope: Niveau: Primær aktør: Admin. Sekundær aktør: Ingen. Prækondition: Admin er logget ind. Postkondition: Admin logger ind i systemet. Frekvens: Trigger: Admin ønsker at installer database. Typisk hændelsesforløb: (Alle typer) Aktør System 1. Admin er log ind i systemet og vælger at installer database. 2. System installer database. Alternativt hændelsesforløb. Slet bruger- use case Use case: Slet bruger. Nummer: 10 Formål: At admin ser sine profil. Scope: Niveau: Primær aktør: Admin. Sekundær aktør: Ingen. Prækondition: Admin er logget ind. Postkondition: Admin logger ind i systemet.. Frekvens: Ofte. Trigger: Admin ønsker at slet bruger. Typisk hændelsesforløb: (Alle typer) Aktør System 1. Admin er log ind i systemet og klikker på Admin. 2. System frembringer min profil side. 3. Admin vælger at slette bruger. 4. System sletter brugerne fra database. Alternativt hændelsesforløb 71

72 Se ordrestatus- use case Use case: Se ordrestatus. Nummer: 11 Formål: At admin ser sine profil. Scope: Niveau: Primær aktør: Admin. Sekundær aktør: Ingen. Prækondition: Admin er logget ind. Postkondition: Admin logger ind i systemet. Frekvens: Ofte. Trigger: Admin ønsker at se ordrestatus. Typisk hændelsesforløb: (Alle typer) Aktør System 1. Admin er log ind i systemet og klikker på Admin. 2. System frembringer min profil side. 3. Admin vælger at se ordrestatus. 4. System viser ordrestatus. Alternativt hændelsesforløb Slet produkt- use case Use case: Slet produkt. Nummer: 12 Formål: At admin ser sine profil. Scope: Niveau: Primær aktør: Admin. Sekundær aktør: Ingen. Prækondition: Admin er logget ind. Postkondition: Admin logger ind i systemet. Frekvens: Ofte. Trigger: Admin ønsker at slette produkt. Typisk hændelsesforløb: (Alle typer) Aktør System 1. Admin er logget ind i systemet og klikker på Admin. 2. System frembringer admin side. 3. Admin sletter det valgt produkt. 4. System sletter produkt fra database. Alternativt hændelsesforløb. 72

73 Rediger produkt- use case Use case: Rediger produkt. Nummer: 13 Formål: At admin rediger produkt. Scope: Niveau: Primær aktør: Admin. Sekundær aktør: Ingen. Prækondition: Admin er logget ind. Postkondition: Admin logger ind i systemet. Frekvens: Ofte. Trigger: Admin ønsker rediger produkt. Typisk hændelsesforløb: (Alle typer) Aktør System 1. Admin er log ind i systemet og klikker på Admin. 2. System frembringer min admin side. 3. Admin rediger det valgte produkt. 4. System gemmer data. Alternativt hændelsesforløb 3a: Fejl, det er ikke den rigtige type fil, så den kan ikke upload sekvensdiagrammer Vi vil gøre læseren opmærksom på, at disse diagrammer ikke nødvendigvis afspejler alle små detaljer, men skal bruges til at få overblikket over arkitekturen af vores webapplikation. 73

74 Afgive ordre 74

75 Foretag betaling Installer database 75

76 Min profil Rediger produkt 76

77 Se faktura Se ordrestatus 77

78 Slet bruger eller produkt Vis bruger admin vis bruger vis bruger visdetaljer visdetaljer DB 1: Vælg vis bruger 2a: Send forespørgsel 2b: hent data 3: vis bruger siden 4: vis mere detaljer om bruger 5a: Send forespørgsel 5b: hent data 6: visdetaljer 7: vis visdetaljer side 78

79 12.4 Link diagram for burger Vi vil gøre læseren opmærksom på, at disse diagrammer ikke nødvendigvis afspejler alle små detaljer, men skal bruges til at få overblikket over arkitekturen af vores webapplikation. Figur : linke diagram for bruger. 79

80 12.5 interviews Interview med firmaets Ejer Ejer: Hvad er formålet med virksomheden? Jeg driver World TeleCom i København N. Vores hovedopgave er, at sælge, reparer og køb mobiltelefoner, mobil tilbehør, ipod, MP3, MP4, memory kort og bluetooth. Hvorfor mener du at du har brug for en database? Jeg vil gerne automatisere bestillingsprocessen således at kunderne også kan bestille online over nettet eller telefonisk. For at håndtere denne proces er der brug for at gemme informationer om kunderne og ordrerne. Til at sælge mobiltelefoner har vi et lager indeholdende varer. Disse varer skal selvfølgelig også gemmes i databasen. Dette vil give os mulighed for at udtrække nogle rapporter over disse. Lagerbeholdningen, således at man kan bestille varer i god tid, hvis vi er ved at løbe tør for en bestemt varer. Hvordan kan du vide at en database vil løse dine problemer? Vi modtager nu telefonisk bestillinger, men der er bare det problem at vi nemt kan miste overblikket, da vi nedskriver ordrerne på papir. Det er altså lidt uoverskueligt hvem der har afgivet hvilke ordrer, og hvor samt hvornår ordren skal afleveres eller afhentes. Jeg mener at ved at gemme informationerne i en database vil det være nemt at styre ordrehåndtering fra bestilling til afsendelse. Formålet med World TeleCom databasesystem er, at vedligeholde de data der bliver brugt og genereret for at supportere ordrehåndtering for vores kunde. Hvilken rolle spiller du for virksomheden? Jeg fører tilsyn med virksomhedens drift for at sikre mig at vi leverer den bedste produkter i byen og konkurrencedygtige ydelser til vores kunder. 80

81 Hvilke slags opgaver udfører du på en bestemt dag? Jeg følger driften af virksomheden. Jeg forsøger at sikre mig at arbejdet i virksomheden går godt. Hvad har du brug for at arbejde med? Jeg har brug for at kunne se alt, altså for det mindste oversigt over de data der bruges eller genereres af World TeleCom. Det er bl.a. kunderne, varerne, ordrerne osv. Jeg vil også holde øje med efterspørgsel på varer samt om kunderne efterspørge bestemte varer som vi ikke sælger, reparer eller køber. Hvilke slags udskrifter bruger du? Jeg vil have udskrifter der giver mig overblik over virksomheden økonomi, lagerbeholdning faktisk alt der giver mig et billede over virksomheden. Hvilke slags ting har du brug for at holde styr på? Som nævnt før skal jeg have overblik over alt som giver et billede af virksomheden. Hvilke ydelser leverer din virksomhed til dine kunder? Vi skal leverer den varer som kunderne bestiller til tiden. Vi skal også kunne sælge andre varer end dem som vi sælger hvis der er stor efterspørgsel på dem. - at vedligeholde (indtaste, opdatere and slette) data over forretningen (forretningerne). - at vedligeholde (indtaste, opdatere and slette) data over kunderne. - at vedligeholde (indtaste, opdatere and slette) data over varerne. - at vedligeholde (indtaste, opdatere and slette) data på ordrerne. Hvis kunden f.eks. vil ændre på sin bestillingen før den er blevet godkendt sendt. - at udføre søgning på kunderne. - at udføre søgning på varerne. - at udføre søgning på ordrerne. - at følge status på en ordre - at følge status på lagret 81

82 12.6 Relationsbeskrivelse for ER diagrammet Tabelleres navn Multiplicitet Relation Multiplicitet Tabelleres navn Bruger 1..1 Afgiver 0..* Ordre Bruger 1..1 Kan have 0..* Ordrestatus Ordre 0..* Tilhører 1..1 Bruger Ordre 1..1 Kan have 1..1 Faktura Ordre 1..1 Kan have 1..1 Ordrestatus Salgsvare 0..* Kan lægge i 1..1 Lager Salgsvare 1..1 Kan have 1..1 Faktura Faktura 1..1 Tilhører til 1..1 Salgsvare Faktura 1..1 Tilhører 1..1 Ordre Faktura 1..1 Tilhører 1..1 Ordrestatus Faktura 1..1 Tilhører 1..1 Lager Ordrestatus 1..1 Tilhører til 1..1 Ordre Ordrestatus 0..* Tilhører til 1..1 Bruger Ordrestatus 1..1 Tilhører til 1..1 Faktura Lager 1..1 Tilhører 0..* Faktura Lager 1..1 Indholder 0..* Salgsvare 12.7 Databasetabeller kon VARCHAR(6) NOT NULL Om bruger er en mand eller kvinde. VARCHAR(25) NOT NULL for hver bruger. fullhost VARCHAR(30) NOT NULL Fullhost for hver bruger. Last_ip VARCHAR(20) NOT NULL Ip adresse Dato_oprettet VARCHAR(25) NOT NULL Dato på brugers oprettelse. Dato_sidst VARCHAR(25) NOT NULL Dato på sidste gange brugern har log ind i systemet. count INT(3) NOT NULL Antal log ind på hjemmesiden. aktivering VARCHAR(40) NOT NULL Kode for aktivering for hver bruger. status VARCHAR(3) NOT NULL Status for hver bruger. udloeb_dato_aktivering VARCHAR(30) NOT NULL Udløbesdato for aktivering for hver bruger. udloeb_dato_login VARCHAR(30) NOT NULL Udløbes dato for log ind for hver bruger. 82

83 ordre Kolonne Type Default Beskrivelse ordrenummer Char(20) Nummer for hver ordre. bestillingsdato På hvilken dato ordre er bestilt. afhentningsdato Hvornår ordre er klar til afhentning. totalpris Total pris på ordren. fakturanr Nummer på ordre faktura. brugernavn Brugernavn på den person der har bestilt ordren. ordrestatus Kolonne Type Default Beskrivelse ordrestatusid INT(10) NOT NULL Id på ordre. AUTO_INCREMENT status VARCHAR(20) Status på ordre, om den er afsendt eller ikke afsendt. dato VARCHAR(20) Dato på ordrestatus. ordrenummer VARCHAR(20) Nummer på ordre. fakturanr VARCHAR(20) Nummer på faktura. brugernavn VARCHAR(20) Brugernavn på person der har bestilt ordren. faktura Kolonne Type Default Beskrivelse fakturanr VARCHAR(20) NOT NULL Nummer på faktura. 83

84 model VARCHAR(20) Model på saglevare. navn VARCHAR(20) Navn på saglvare. kategorinavn VARCHAR(20) Navn på kategori. vareid VARCHAR(10) Id på vare. antal VARCHAR(4) Anatl køb af varer. pris VARCHAR(8) Pris på salgsvarer. fakturadato VARCHAR(20) Dato på faktura. salgsvarer Kolonne Type Default Beskrivelse vareidi INT(10) NOT NULL Id på vare. AUTO_INCREMENT navn VARCHAR(20) Navn på lager. model VARCHAR(20) Model på vare. beskrivelse VARCHAR(5000) Beskrivelse om hver enkelt vare. leveringstid VARCHAR(10) Hvornår kan firmaet levere produkt. billede VARCHAR(30) Billede der tilhører til hver enkelt produkt. pris VARCHAR(8) Pris på hver enkelte produkt. kategorinavn VARCHAR(20) Navn på kategori. under_kategorinavn VARCHAR(20) Navn på under kategori. lager Kolonne Type Default Beskrivelse navn INT(10) NOT NULL Navn på lager. AUTO_INCREMENT antal INT(5) Antal vare på lager. 84

85 12.8 Black-box Test Henviser vi til mappe 2 bilag Manuel test af brugerinterface I dette afsnit testes brugerinterfacet manuelt. Her vil vi præsentere den del af brugerinterfacet, hvor en bruger kan logge ind. For at der kan logges ind, skal bruger befinde sig på log ind siden. Hvis man indtaster et gyldigt brugernavn og adgangskode, så bliver man sendt videre til næste side hvorfra man kan bestille varer. Hvis brugernavn eller adgangskode er ugyldigt, så forbliver den aktuelle bruger på login-siden. Database installer Fra localhost, går vi til PHP-Myadmin og opretter databasen. Figure : Opret database Figure : Installer database. Fra localhost/hjemmeside/installe.php installer man vores database. 85

86 Figure : Installer er lykkes Figure : Database tabeller. Figure : Efter installering af database gemmes oplysningerne om admin og db i connection filen i krypteret form. Figure : Filen er tom fordi database er ikke installeret. Login for eksisterende bruger: Er man logget ind, har man adgang til at købe og rette sin profil for bruger. Er man logget ind som admin har man adgang til alt. Tastes forkert på enten brugernavn eller adgangskode vil systemet vise teksten med fejlmeddelelse der kan ses på figur 7. 86

87 Fejl ved login forsøg! Figure : Fejlmeddelelse ved forkert login. Således oplyses der ikke om, hvilke dele af det indtastede der er forkert. Dette er for at minimere muligheden for at gætte brugernavn, osv. De to kategorier en besøgende på hjemmesiden kan have er: Bruger: Rettigheder til dele af hjemmesiden. Administrator: Rettighed til hele hjemmesiden, det vil sige oprette produkter, slette disse, se alle registrerede brugere osv. I forbindelse med login kontrolleres brugernavn og adgangskode. I bekræftende fald logges brugeren ind, og i modsat fald vises fejlmeddelelsen på figur 7. Glemt brugernavn eller adgangskode: Har en bruger glemt brugernavn eller adgangskode anvendes Glemt kodord knappen. Hvis den indtastede findes i databasen, sendes der en til personen med brugernavn og adgangskode se figur 8. 87

88 Figur : med glemte oplysninger. Opret bruger: Udførelse af opret bruger. Man opretter en bruger ved at udfylde en formular med felter, der kan ses i figur 9. Figur : Formular for at opret bruger. Inden afsendelse til serveren, kontrolleres der for at alle felter er udfyldt. Tastes forkert oplysning vil systemet vise teksten med følgende fejl: 88

89 Feltet bruger navn må ikke være tomt. Brugernavn skal indeholder minimum 4 tegn. Feltet adgangskode navn må ikke være tomt. Fejl: Feltet gentage adgangskode må ikke være tomt. Fejl: Adgangskode skal indeholde minimum 6 tegn. Fejl: Adgangskode må ikke indeholde ulovlige tegn. Fejl: Adgangskode skal være forskellig fra brugernavn! Fejl: Adgangskode skal indeholde mindst et stort bogstav. Fejl: Adgangskode skal indeholde mindst et lille bogstav. Fejl: Adgangskode skal indeholde mindst et tal (0-9). Fejl: Gentagelsen af adgangskoden var forkert. Fejl: Feltet CPR-NR. må ikke være tomt. Fejl: CPR-NR. må ikke indeholde ulovlige tegn. Ugyldig CPR-NR. Fejl: Feltet fornavn må ikke være tomt. Fejl: Fornavn må ikke indeholde ulovlige tegn. Fejl: Fornavn må kun indeholde bogstaver. Fejl: Feltet efternavn må ikke være tomt. Fejl: Efternavn må ikke indeholde ulovlige tegn. Fejl: Efternavn må kun indeholde bogstaver. Fejl: Feltet adresse må ikke være tomt. Fejl: Feltet adresse må ikke være tomt. Fejl: Adresse skal indeholde både bogstaver og tal. Fejl: Feltet postnummer må ikke være tomt. Fejl: Postnummer skal indeholde minimum 4 tal. Fejl: Postnummer må ikke indeholde ulovlige tegn. Fejl: Postnummer må kun indeholde tal (0-9). Fejl: Feltet telefonnummer må ikke være tomt. Fejl: Telefonnummer må ikke indeholde ulovlige tegn. Fejl: Telefonnummer må kun indeholde tal (0-9). Fejl: Telefonnummer skal indeholde minimum 8 tal. Fejl: Feltet må ikke være tomt. Fejl: Feltet gentagelse må ikke være tomt. Fejl: Gentagelsen af var forkert igen. Fejl: Ugyldig . På serversiden oprettes brugere først i databasen, hvis følgende er overholdt: Det valgte brugernavn må ikke være oprettet i forvejen. Det valgte cpr.nr må ikke være oprettet i forvejen. Den valgte adresse må ikke være oprettet i forvejen. Eller den viser følgende fejl, der vist på figur

90 Figur : Mulige fejl. Database test Ud fra figur 11 kan man se at brugerens data er, blev sat i bruger tabellen. Figur : Bruger tabel Aktivering 90

91 Figur : aktivering log ind. Figur : Når bruger aktiver sin log ind igen. Figur : Når man log ind uden at aktiveret sin login. Ændrer på min profil Figur : Viser min profil før opdatering. Fejl: Adgangskode skal indeholde minimum 6 tegn. Fejl: Adgangskode må ikke indeholde ulovlige tegn. Fejl: Adgangskode skal være forskellig fra brugernavn! Fejl: Adgangskode skal indeholde mindst et stort bogstav. Fejl: Adgangskode skal indeholde mindst et lille bogstav. Fejl: Adgangskode skal indeholde mindst et tal (0-9). Fejl vises ved forkert indtastning. 91

92 Figur : Viser min profil efter opdatering. Database test Her kan ses på tabellen efter opdatering. For at se tabel før opdatering, henvises tilbage til figur 11. Opret bruger under database test.. Figur : Bruger tabel. Admin modul En administrator har mulighed for at se oplysninger om alle registrerede brugere, samt opret produkter, slet produkter osv. Log ind som admin præsenteres billede på figur 18. Figur : Admin side. 92

93 Ved at klik på vis bruger præsenteres følgende billede, der vist på figur 18. Figur : Side for firmaets bruger. For at se detaljer om en person, klikkes på vis knap, som kan ses på figur 19, derefter kan der vises figur 20. Figur : Siden der viser bruger data. For at installer database, klikkes på installer database som kan ses på figur 18, efter installation vises figur 21 frem. Figur : Popup vindue. For at opret produkt, klikkes på opret produkt knap, som der kan ses på figur 18, derefter præsenteres billede på figur

94 Figur : Opret produkt side. Ud fra figur 23 og 24 kan man se at hvis man vælger mobiltilbehør dukker en under kategori op med forskellige muligheder. Figur : når man vælger mobilt tilbehør Figur : skifter man til under_kategori Tastes admin på en forkert type fil vil systemet vise teksten, der vist på figur 25. Figur : Popup vindue. Hvis der ikke er fejl vil system vise teksten, som vist på figur

95 Figur : Popup vindue. På figur 27 kan man se at produkt bliver tilført på den rigtige kategori. Figur : Disse varer er placeret kategori mobiltelefoner. For at se flere detaljer om produkt trykker man på vis knap på figur 27, og derefter kommer man frem til den næste side, der er vist på figur 28. Figur : Den side kommer frem efter man har klikket på vis knap. Database test Figur A: Tabel for salgsvarer efter oprettelse af produkt. Figur B: Tabel for lager efter oprettelse af produkt. 95

96 Ved at klik på se faktura knap fra figur 18, præsenteres følgende billede på figur 30. Figur : Faktura siden. Når man klikker på vis knap i eksempel figur 30, kommer man frem til figur 50, og man kan se faktura med detaljer. Ved at klikke på slet bruger knap i figur 18, vises figur 31. Figur : Før sletning af bruger. Figure : Efter sletning på bruger. Når man klikker på slet knap i figur 31 præsenteres figur 32. Database test Figure : Bruger tabellen efter sletning 96

97 Ved at klikke på at se ordrestatus knap fra figur 18, præsenteres figur 34. Figure : Her vises status på de forskellige ordrer. Når man klikker på skift knap fra figur 34, præsenteres figur 35. Figure : Her vises nye status er på de forskellige ordrer efter skiftning på deres status. Database test Figure : Tabellen for ordrestatus før skiftning. Figure : Tabellen for ordrestatus før skiftning. 97

98 Når man klikker på rediger produkt knap fra figur 18, vises figur 38. Figure : Rediger produkt. Når man klikker på vis knap fra figur 38, vises figur 39. Vi tager for eksempel Nokia 6500 og rediger i den. Figure : Rediger produkt. 98

99 Tastes admin på en forkert type fil vil systemet vise teksten på figur 40. Figure : Popup vindue vises når admin klikker på opdater knap. Figure : Popup vindue. Database test Figure : Salgsvare tabellen før rediger produkter. Figure : Salgsvare tabellen efter rediger produkter. 99

100 Figure : Lager tabellen før rediger. Fra figur 45 kan man konkluder at antal på lager tabel styre om produktet er på lager eller ikke. Figure : Fra figur 18 klikker admin på slet produkt kommer man frem til figur 46. Figur : Før sletning. Figur : Efter sletning. 100

101 Database test : Figur : Før sletning. Figur : Efter sletning. Afgiver ordre Afgiv ordre foretages ved at klikke på køb knappe som første skridt. For at kunne afgive ordre skal man være logget ind. Figure : Popup vindue. Det ses af figuren 50, efter tryk på køb knap bliver der tilføjet varer til kurven. Resultatet kan ses på figur 51. Figure : Visning af det valgt produkt på kurv. Figure : Visning af det udvalgt produkter i kurv. 101

102 Figure : Ordre side, hvor brugerne kan tjek adressen og vælge betalingsform. Inden afsendelse til serveren, kontrolleres der for at alle felter er udfyldt, og udfyldt korrekt. Tastes bruger på et forkert oplysning viser system følgende: Fejl: Du har angivet et forkert kortnummer. Fejl: Kortnummer er ugyldigt. Fejl: Kontrolcifre må ikke være tomt og skal indeholde 3 cifre. Fejl: Kontrolcifre må kun indeholde tal. Fejl: Du skal acceptere vilkårene. Ved klik på godkendt betaling knap figur 54 vises kvittering. 102

103 Figure : Kvittering. Derefter kan brugerne vælge at print faktura ud, se på figur 55. Figure : 103

104 Database test Figure : Tabel lager før det bliver købte nogle varer. Figure : Tabel lager efter afgivet ordre. Kontakt Når man sende en besked fra siden, så viser figur 58 frem. Figure : Kontakt side Figure : 104

105 Figure : fra hjemmesiden. Figure : Indholde af Browser Test Figur : Test med Firefox browser. 105

106 Figur : Test med Microsoft IE. Figur : Test med opera browser. 106

107 Figur : Test med Netscape browser Adobe Photoshop Figur : Hjemmesidens design blvet lavet med Adobe Photoshop XAMPP vejledning 107

108 Installation af XAMPP Gå ind på Klik på XAMPP for Windows Under Download vælges XAMPP Klik det link der hedder Installer, og gem filen et sted på din PC Find filen, og dobbelt-klik på den Vælg sprog til installationen Klik næste 108

109 Vælg hvor XAMPP skal installeres Vælg alle fluebenene i dette billede, pånær Install FileZilla as service. Create a XAMPP desktop icon: Der laves et ikon på skrivebordet Create an Apache Friends XAMPP folder in the start menu: Der laves en mappe i Start-menuen 109

110 Install Apache as service Webserveren Apache installeres som en tjeneste (dvs. et program der altid kører i baggrunden). Install MySQL as service MySQL databasen installeres som en tjeneste Klik Install. Nu installeres XAMPP. Det kan være at der kommer nogle ekstra vinduer undervejs, men det gør ikke noget. Til sidst kan man vælge om man vil starte kontrol-panelet til XAMPP I kontrol-panelet kan man se hvilke tjenester der kører, og starte/stoppe dem. 110

111 Brug af XAMPP Nu vil vi gerne bruge vores nye MySQL. Dette gøres ved at åbne en internet-browser (f.eks. Internet Explorer), og taste: i adresse-feltet. Localhost er et specielt navn på netværket, som altid refererer til den maskine man sidder ved. Når man åbner denne side, får man billedet på næste side. Vælg et sprog (engelsk er vel det mest logiske, da der ikke er dansk). 111

112 Menupunkter: Welcome: Startsiden. Status: Viser hvilke dele af XAMPP der kører MySQL skulle gerne være grøn. Security: Her kan man se om systemet er sikkert. Documentation: Manualer. Components: Links til de programmer der indgår i XAMPP. PHP Info: Info om PHP programmerings-sproget. Demos: Små hjemmesider osv. som er lavet for at demonstrere XAMPP. Tools: Værktøjer til administration af XAMPP s programmer. Vi kan se at der her er værktøjet PH-MyAdmin. 112

113 Brug af PHPMyAdmin På hovedbilledet af PHP-MyAdmin kan man se mange informationer. Nogle af de vigtigste: Vi er logget på en server der hedder localhost. Vi er logget på som en bruger der hedder root (det er superbrugeren/administratoren på en MySQL Server). Vi kan lave en ny database i Opret ny database. En MySQL server kan indholde mange databaser Vi kan se hvilke databaser der allerede eksisterer, ved at bladre i kombinationsboksen til venstre. Vi kan få diverse information om systemvariable osv. for MySQL. Vi kan (til højre i billedet) se informationer om PHP-MyAdmin. Nederst i billedet får vi at vide at vi er logget på som root, og at der intet kodeord er. Dette skulle selvølgelig ændres på en server der skulle bruges i virkeligheden. Det kan hjælpe at tænke på MySQL som stedet hvor database- filerne er lagret, og PHP-MyAdmin som programmet vi håndtere dem med. Fra den nedstående figur kan man se hvordan man oprette en database. 113

114 Fra den nedestående figur kan man se at database worldtelecom_dk er oprettet. 114

Dokument- og Sagsstyringssystem

Dokument- og Sagsstyringssystem Dokument- og Sagsstyringssystem Mads Nissen Kongens Lyngby 2010 IMM-B.Eng-2009-36 Technical University of Denmark Informatics and Mathematical Modelling Building 321, DK-2800 Kongens Lyngby, Denmark Phone

Læs mere

Tidsregistrering. Jacob E., Jacob H., Mathias, Mads H., Jonatan og Dan 3.4. Informationsteknologi B. Roskilde Tekniske Gymnasium 25-11-2014

Tidsregistrering. Jacob E., Jacob H., Mathias, Mads H., Jonatan og Dan 3.4. Informationsteknologi B. Roskilde Tekniske Gymnasium 25-11-2014 2014 Tidsregistrering Jacob E., Jacob H., Mathias, Mads H., Jonatan og Dan 3.4 Informationsteknologi B Roskilde Tekniske Gymnasium 25-11-2014 Indholdsfortegnelse 1 Indledning... 3 2 User stories... 3 3

Læs mere

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4 Maskine Udlejning 15. oktober 2010 Jacob Weng, Jeppe Boese og Mads Anthony Roskilde Tekniske Gymnasium Udlejningsvirksomhed 3.4 Indholdsfortegnelse Problemformulering:... 2 Planlægning:... 2 Analyse af

Læs mere

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4 Projekt Database, Gruppe 4A 0 Projekt 1, 3. Semester D A T A B A S E Klasse MulA13 Gruppenummer: A4 Projekt Database, Gruppe 4A 1 Fakta-ark Klasse MulA13, Gruppenummer: A4 Gruppemedlemmer: Amalie Ardahl

Læs mere

Administrator v1.0 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk

Administrator v1.0 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk Administrator v1.0 QUICK GUIDE Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk INTRODUKTION TIL REKVI-KONTOR Ideen med Rekvi-Kontor systemet udsprang

Læs mere

LEMAN / Præsentation

LEMAN / Præsentation LEMAN / Præsentation Velkommen til LEMAN Internet booking. Vi vil i det følgende gennemgå login, opsætning og indtastnings-muligheder. Systemet findes på http://booking.leman.dk eller via LEMAN s hjemmeside.

Læs mere

Data lagring. 2. iteration (implement backend)

Data lagring. 2. iteration (implement backend) Data lagring 2. iteration (implement backend) Emner Grundlæggende database begreber. Data definitionskommandoer ER-diagrammer og cardinalitet/relationer mellem tabeller Redundant data og Normalisering

Læs mere

PHP Quick Teknisk Ordbog

PHP Quick Teknisk Ordbog PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,

Læs mere

Indholdsfortegnelse for kapitel 1

Indholdsfortegnelse for kapitel 1 Indholdsfortegnelse for kapitel 1 Forord.................................................................... 2 Kapitel 1.................................................................. 3 Formål............................................................

Læs mere

Internet. Komplet featureliste. Aesiras - integreret Regnskab, Handel og Internet

Internet. Komplet featureliste. Aesiras - integreret Regnskab, Handel og Internet Internet Komplet featureliste Aesiras - integreret Regnskab, Handel og Internet Aesiras Internet gør det let at komme i gang med en professionel hjemmeside og webshop. Som standard medfølger et grafisk

Læs mere

:: Implementering af Betalingssystem

:: Implementering af Betalingssystem :: Implementering af Betalingssystem Implementeringen kræver viden om HTML, asp eller php. Er du i tvivl, om du selv er i stand at gennemføre implementeringen bør du kontakte din webmaster. Få i dette

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

Skriftlig opgave. Designtanker i database-nære systemer Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design

Læs mere

2. SEMESTER PROJEKT 3 INTERAKTIONSUDVIKLING

2. SEMESTER PROJEKT 3 INTERAKTIONSUDVIKLING 2. SEMESTER PROJEKT 3 INTERAKTIONSUDVIKLING Baggrund Udgangspunktet er projekt 2, dvs. en blog om cupcakes, hvor målgruppe, afsender og modtager allerede er defineret. Du bliver nu bedt om at udvikle et

Læs mere

Kom godt i gang med DanaShop

Kom godt i gang med DanaShop Kom godt i gang med DanaShop Tillykke med jeres nye webshop I din webshop fra DanaWeb findes der utroligt mange muligheder for at tilpasse den til lige netop jeres behov. DanaWeb har opsat alle shoppens

Læs mere

Hvad du søgte efter Identiteten på det websted, du besøgte umiddelbart før vores websted (henvisende websted).

Hvad du søgte efter Identiteten på det websted, du besøgte umiddelbart før vores websted (henvisende websted). Brugervilkår og andre gode ting, som du bør vide for at være sikker online. Sikkerhed er alles ansvar En del af IKEA ånden er "jeg gør min del, du gør din del, og sammen gør vi en masse." Dette gælder

Læs mere

Eksamen, DSDS, efterår 2008

Eksamen, DSDS, efterår 2008 Eksamen, DSDS, efterår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 6. januar 2009 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

DTU 02335 Net Teknologi A Webprogrammering og Datakommunikation Eksamensprojekt Krav til rapport September 2008 KRAV TIL RAPPORTEN

DTU 02335 Net Teknologi A Webprogrammering og Datakommunikation Eksamensprojekt Krav til rapport September 2008 KRAV TIL RAPPORTEN KRAV TIL RAPPORTEN Eksamensprojektet i Web-programmering og Datakommunikation skal afleveres som en rapport. Rapporten skal afleveres, i 2 eksemplarer (kopier). Endvidere skal være angivet URL, for emner

Læs mere

Opdatering af ISOWARE til version 6.1.0

Opdatering af ISOWARE til version 6.1.0 Opdatering af ISOWARE til version 6.1.0 September 2015 Indhold Kontaktoplysninger... 1 VIGTIGT... 2 Opdatering af trejdepartssoftware... 2 Opdatering til version 6.1.0.... 2 1. Backup af databasen... 3

Læs mere

My booking. Generelt. Forsiden. Version 9.0

My booking. Generelt. Forsiden. Version 9.0 My booking Version 9.0 System til at lave online bookinger, med mulighed for opdeling i grupper, forskellige booking typer, ændre layout indstillinger, status styring, sprogvalg samt en del mere, detaljer

Læs mere

Umbraco installationsvejledning

Umbraco installationsvejledning på et ScanNet ASP Webhotel Indledning Beskrivelse Denne vejledning vil indeholde installation af CMS systemet Umbraco på et ASP Webhotel. Det dansk grundlagt Content Management System (CMS) Umbraco er

Læs mere

Datamodeller. 1. Elementerne. Vi betragter E/R-diagrammet, som et diagram over entiteter og relationer Tegneregler: Entitet

Datamodeller. 1. Elementerne. Vi betragter E/R-diagrammet, som et diagram over entiteter og relationer Tegneregler: Entitet Datamodeller I forlængelse af noten om normalisering, følges der her op med redskabet E/R-diagrammer til opstilling af en datamodel, opfat således dette som en alternativ metode mere end endnu et redskab

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Exchange 2010 SSL certifikat administration Følgende vejledning beskriver hvordan man vælger hvilke adresser der skal være i ens Exchange 2010 SAN SSL certifikat. Derudover er der tekniske guides til at

Læs mere

Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen

Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen Nets Denmark A/S Lautrupbjerg 10 P.O. 500 DK 2750 Ballerup T +45 44 68 44 68 F +45 44 86 09 30 www.nets.eu Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen

Læs mere

Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony)

Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony) Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony) Generelt Mobil Reception er et værktøj som bruges til at overvåge medarbejdere, kø er og meget andet samt styre dit omstillingsanlæg

Læs mere

Introduktion til frontend

Introduktion til frontend Side 1 af 43 Introduktion til frontend Dette dokument beskriver kort, hvordan du bruger WeroShop frontend. Dette omfatter at sætte dig ind i varegrupper, producenter og produkter, filtrering af produkter,

Læs mere

SmartWeb Brugermanual

SmartWeb Brugermanual SmartWeb Brugermanual Table of Content Table of Content... 1 Best Practice SmartWeb:... 2 Implementering... 4 Egenskaber:... 5 Filer:... 7 Oprettelse af Kategori... 9 Sider og Tekster:... 11 Slideshow...

Læs mere

PHP kode til hjemmeside menu.

PHP kode til hjemmeside menu. PHP kode til hjemmeside menu. Home Hovedmenu 1 Hovedmenu 2 Hovedmenu 3 Hovedmenu 4 Undermenu 1 Breadcrumb Her vises indholdet af den valgte side Undermenu 2 Undermenu 3 Undermenu 4 Evt. en mulighed for

Læs mere

Indholdsfortegnelse. Hvorfor skal jeg tage backup af min blog? Side 3. Tag backup med UpDraft Side 4. Tag manuelt backup Side 8 - 2 -

Indholdsfortegnelse. Hvorfor skal jeg tage backup af min blog? Side 3. Tag backup med UpDraft Side 4. Tag manuelt backup Side 8 - 2 - - 1 - Indholdsfortegnelse Hvorfor skal jeg tage backup af min blog? Side 3 Tag backup med UpDraft Side 4 Tag manuelt backup Side 8-2 - Hvorfor skal jeg tage backup af min blog? Lige meget om du har opbygget

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Microsoft IIS 6 Certifikat administration Følgende vejledning beskriver hvordan man installere et certifikat på en IIS 6 For support og hjælp til anvendelsen af denne vejledning kan du kontakte FairSSL

Læs mere

LUDUS WEB. Installations- og konfigurations-vejledning. Den 7. april 2009. J.nr.: 4004 V0624 09

LUDUS WEB. Installations- og konfigurations-vejledning. Den 7. april 2009. J.nr.: 4004 V0624 09 LUDUS WEB Installations- og konfigurations-vejledning Den 7. april 2009 J.nr.: 4004 V0624 09 CSC Scandihealth A/S, P.O. Pedersens Vej 2, DK-8200 Århus N Tlf. +45 3614 4000, fax +45 3614 7324, www.scandihealth.dk,

Læs mere

Carry it Easy Brugermanual

Carry it Easy Brugermanual Carry it Easy Brugermanual Brugermanual Version 2.0 2004-2006 CoSoSys SRL Carry it Easy Brugermanual Indholdsfortegnelse Indholdsfortegnelse...I 1. Introduktion...1 2. Systemkrav...2 3. Installation...2

Læs mere

Bruger v1.5 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk

Bruger v1.5 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk Bruger v1.5 QUICK GUIDE Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk INTRODUKTION TIL REKVI-SKOLE Ideen med Rekvi-skole systemet udsprang fra et behov

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Procesbeskrivelse - Webprogrammering

Procesbeskrivelse - Webprogrammering Procesbeskrivelse - Webprogrammering Indholdsfortegnelse Forudsætninger... 1 Konceptet... 2 Hjemmesiden... 2 Server-side... 3 Filstrukturen... 3 Databasehåndtering og serverforbindelse... 4 Client-side...

Læs mere

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning 1. Lokalt installeret afleveringsprogram til stedprøver... 2 2. Systemkrav... 3 3. Netværksopsætning... 4 4. Installation

Læs mere

Vejledning til Autodesk Subscription Center

Vejledning til Autodesk Subscription Center Vejledning til Autodesk Subscription Center Udarbejdet af NTI CADcenter A/S maj 2013 Gå ind på internetadressen: http://subscription.autodesk.com som ser således ud: - Tast dit brugernavn og adgangskode

Læs mere

3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015

3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015 PROJECT DATABASE 3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015 Ved at underskrive dette dokument bekræfter vi, at det indsendte materiale alt sammen er vores eget materiale og arbejde. Andreas

Læs mere

Velkomstmappe ectrl. Deloitte Birkerød Kongevej 25C 3460 Birkerød Telefon 45 94 50 00

Velkomstmappe ectrl. Deloitte Birkerød Kongevej 25C 3460 Birkerød Telefon 45 94 50 00 Velkomstmappe ectrl Deloitte Birkerød Kongevej 25C 3460 Birkerød Telefon 45 94 50 00 Indholdsfortegnelse HVAD ER ECTRL?... 3 SUPPORT... 3 INSTALLATIONSVEJLEDNING TIL ECTRL... 4 OPRETTELSE OG ADMINISTRATION

Læs mere

Arvid Nilsson Webshop Adgang til webshoppen

Arvid Nilsson Webshop Adgang til webshoppen Arvid Nilsson Webshop Adgang til webshoppen Du finder webshoppen ved at gå ind på www.arvidnilsson.com og vælge dit lokale sprog. I topmenuens højre side finder du knappen WEBSHOP, som du klikker på -

Læs mere

Brugervejledning. Generering af nøgler til SFTP-løsningen vedrørende. datakommunikation med Nets. Nets A/S - versionsdato 28.

Brugervejledning. Generering af nøgler til SFTP-løsningen vedrørende. datakommunikation med Nets. Nets A/S - versionsdato 28. Nets A/S Lautrupbjerg 10 P.O. 500 DK-2750 Ballerup T +45 44 68 44 68 F +45 44 86 09 30 www.nets.eu CVR-nr. 20016175 Brugervejledning Generering af nøgler til SFTP-løsningen vedrørende datakommunikation

Læs mere

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database Kursusbeskrivelse Oprettelse af en Access-database Som eksempel på en Access-database oprettes en simpelt system til administration af kurser. Access-databasen skal indeholde: et instruktørkartotek et

Læs mere

BAAN IVc. Brugervejledning til BAAN Data Navigator

BAAN IVc. Brugervejledning til BAAN Data Navigator BAAN IVc Brugervejledning til BAAN Data Navigator En udgivelse af: Baan Development B.V. P.O.Box 143 3770 AC Barneveld Holland Trykt i Holland Baan Development B.V. 1997. Alle rettigheder forbeholdes.

Læs mere

GUIDE TIL OPRETTELSE AF SIDER OG INDHOLD I UMBRACO ONLINE BETJENING

GUIDE TIL OPRETTELSE AF SIDER OG INDHOLD I UMBRACO ONLINE BETJENING GUIDE TIL OPRETTELSE AF SIDER OG INDHOLD I UMBRACO ONLINE BETJENING DANSKE BEDEMÆND august 2014 v1.4 1 P a g e INDHOLDSFORTEGNELSE Adgang... 3 Overordnet om Umbraco... 4 Højreklik muligheder i oversigten...

Læs mere

NemHandel registreringsvejledning. Navision Stat, INDFAK og Nemkonto. Introduktion. Overblik. Side 1 af 15. ØS/ØSY/CPS 7.

NemHandel registreringsvejledning. Navision Stat, INDFAK og Nemkonto. Introduktion. Overblik. Side 1 af 15. ØS/ØSY/CPS 7. Side 1 af 15 NemHandel registreringsvejledning ØS/ØSY/CPS 7. januar 2015 Navision Stat, INDFAK og Nemkonto Dette dokument beskriver den nødvendig EAN registrering på Nemhandelsregistret via NS NHR WEB

Læs mere

Version 1.0 Januar 2011. Xerox Phaser 3635MFP Extensible Interface Platform

Version 1.0 Januar 2011. Xerox Phaser 3635MFP Extensible Interface Platform Version 1.0 Januar 2011 Xerox Phaser 3635MFP 2011 Xerox Corporation. XEROX og XEROX and Design er varemærker tilhørende Xerox Corporation i USA og/eller andre lande Der foretages regelmæssigt ændringer

Læs mere

Sådan installeres og teste WordPress på en lokal server

Sådan installeres og teste WordPress på en lokal server Sådan installeres og teste WordPress på en lokal server Det gratis WordPress blog værktøj er vokset gennem årene til et fuldgyldigt CMS-system content management system). WordPress har forenklet processen

Læs mere

Nets - Medarbejder Signatur

Nets - Medarbejder Signatur Nets - Medarbejder Signatur Nets Direkte Kommunikation Nøgle Bestilling Version: 2.1, Oktober 2013 Continia Software a/s Hjulmagervej 55 DK-9000 Aalborg Denmark Tel. +45 82 30 50 00 Support mail: cm@continia.dk

Læs mere

Daglig brug af JitBesked 2.0

Daglig brug af JitBesked 2.0 Daglig brug af JitBesked 2.0 Indholdsfortegnelse Oprettelse af personer (modtagere)...3 Afsendelse af besked...4 Valg af flere modtagere...5 Valg af flere personer der ligger i rækkefølge...5 Valg af flere

Læs mere

DATABASE Projekt 1-3. semester

DATABASE Projekt 1-3. semester DATABASE Projekt 1-3. semester Gruppe 2- CLmul-a12e Projekt URL http://www.lucasperch.dk/projekter/database.pdf Gruppe 2 Lucas Perch-Nielsen cph-lp14@cphbusiness.dk http://lucasperch.dk/skole.php Niclas

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Small Business Server 2008 SSL certifikat administration Følgende vejledning beskriver hvordan man installere et certifikat på en SBS 2008 server. Ved bestilling af certifikater til Small Business Server

Læs mere

WinDCCD Brugervejledning. Indhold. Adgangskontrol...2

WinDCCD Brugervejledning. Indhold. Adgangskontrol...2 Indhold Adgangskontrol...2 WinDCCD Hovedmenu...3 Information på tværs...3 Opret generel information...3 Slet generel information...3 Patienter...4 Patienter...4 Sådan filtrerer du data...4 Sådan redigerer

Læs mere

Patient Database - Manual

Patient Database - Manual Patient Database - Manual Side 1 af 36 Adgang til systemet... 4 Glemt brugernavn og kode... 4 Opret projekt (kun System Administrator)... 6 Klik på NYT PROJEKT -knappen øverst til venstre.... 6 Udfyld

Læs mere

Ruko SmartAir. Updater installation

Ruko SmartAir. Updater installation Ruko SmartAir Updater installation Introduktion. Updateren er en speciel enhed som giver os mulighed for at tilføje, læse og skrive funktioner i en offline installation. Med læse og skrive funktionen kan

Læs mere

Vejledning til bydende. Rev.: 2015-05-27 / LW. Side 1

Vejledning til bydende. Rev.: 2015-05-27 / LW. Side 1 Vejledning til bydende Rev.: 2015-05-27 / LW Side 1 Indhold Indhold... 2 Indledning... 3 Log på... 4 Opret din bruger... 4 Personlige informationer... 4 Gem login... 5 Glemt password... 5 Brugerfladen

Læs mere

LUDUS Web Installations- og konfigurationsvejledning

LUDUS Web Installations- og konfigurationsvejledning LUDUS Web Installations- og konfigurationsvejledning Indhold LUDUS Web Installations- og konfigurationsvejledning... 1 1. Forudsætninger... 2 2. Installation... 3 3. Konfiguration... 9 3.1 LUDUS Databasekonfiguration...

Læs mere

Indhold. 1 Indledning... 3. 1.1 Kompatible browsere... 3. 2 Log ind i Umbraco... 3. 3 Content-delen... 4. 3.1 Indholdstræet... 4

Indhold. 1 Indledning... 3. 1.1 Kompatible browsere... 3. 2 Log ind i Umbraco... 3. 3 Content-delen... 4. 3.1 Indholdstræet... 4 Indhold 1 Indledning... 3 1.1 Kompatible browsere... 3 2 Log ind i Umbraco... 3 3 Content-delen... 4 3.1 Indholdstræet... 4 3.2 Ændring af indhold... 5 3.3 Tilføjelse af en side/sektion... 6 3.4. At arbejde

Læs mere

Vejledning for opdatering af hjemmesiden opbygget med. KlubCMS

Vejledning for opdatering af hjemmesiden opbygget med. KlubCMS Vejledning for opdatering af hjemmesiden opbygget med KlubCMS Indholdsfortegnelse Indhold Indholdsfortegnelse... 2 Indledning... 3 Lidt generelt om KlubCMS... 3 Sideopbygning:... 4 Brugere/Brugergrupper...

Læs mere

BlackBerry Internet Service. Version: 4.5.1. Brugervejledning

BlackBerry Internet Service. Version: 4.5.1. Brugervejledning BlackBerry Internet Service Version: 4.5.1 Brugervejledning Publiceret: 2014-01-08 SWD-20140108172804123 Indhold 1 Kom godt i gang...7 Om meddelelelsesserviceplanerne for BlackBerry Internet Service...7

Læs mere

Spiller / Pårørende manual Til www.kampseddel.dk

Spiller / Pårørende manual Til www.kampseddel.dk Spiller / Pårørende manual Til www.kampseddel.dk Brugervejledning for Spiller/Pårørende Kort om kampseddel.dk Kampseddel.dk er udarbejdet som et webbaseret værktøj til den frivillige Træner/Leder i en

Læs mere

FSFIs lynguide til DFRs elektronisk bevissystem

FSFIs lynguide til DFRs elektronisk bevissystem FSFIs lynguide til DFRs elektronisk bevissystem Dette er en kort guide i anvendelsen af Dansk Førstehjælpsråd elektroniske bevissystem. Guiden viser og forklarer hvordan du som instruktør og medlem af

Læs mere

EasyIQ Opdatering 5.2.3 -> 5.4.0

EasyIQ Opdatering 5.2.3 -> 5.4.0 EasyIQ Opdatering 5.2.3 -> 5.4.0 Kunde: Forfatter: Thomas W. Yde Systemtech A/S Side: 1 af 17 1 Indholdsfortegnelse 2 GENERELT OMKRING FORUDSÆTNINGEN OG OPDATERINGS FORLØBET... 3 2.1 FORUDSÆTNINGER...

Læs mere

Mayianne Nøks Pedersen www.mypedersen.dk/sem3projekt2databasewebsite.html Mail: mypedersen@gmail.com

Mayianne Nøks Pedersen www.mypedersen.dk/sem3projekt2databasewebsite.html Mail: mypedersen@gmail.com WEB & DATABASE 2. PROJEKT 3. SEMESTER Et projekt udarbejdet af studerende fra gruppe 1 klasse CL12mul3b11e: Elin Vatnhamar Olsen www.web324.webkn.dk/portfolio/websits.html Mail: elin.v.olsen@hotmail.com

Læs mere

Mini-guide for opdatering af hjemmesiden for. SOIF www.soif.dk

Mini-guide for opdatering af hjemmesiden for. SOIF www.soif.dk Mini-guide for opdatering af hjemmesiden for SOIF www.soif.dk Senest opdateret: 03-07-2009 Indholdsfortegnelse 2 Indholdsfortegnelse 2 Lidt generelt om KlubCMS 3 Brugere/Brugergrupper 3 Sideopbygning:

Læs mere

Brugervejledning for. Telenor Dialer

Brugervejledning for. Telenor Dialer Brugervejledning for Telenor Dialer 1 Indholdsfortegnelse Generelt om Telenor Dialer.... 5 Telenor Dialer og OneNumber.... 6 Telenor Dialer og OneNumber Mobile.... 6 Faciliteter i Telenor Dialer...7 Installation

Læs mere

srum Fritidsaktiviteter 04-12-2008: 1. Semester. Multimediedesigner Projektstart: 17/11-2008 Aflevering: 4/12-2008

srum Fritidsaktiviteter 04-12-2008: 1. Semester. Multimediedesigner Projektstart: 17/11-2008 Aflevering: 4/12-2008 Gruppe 9: Besir Redzepi, Jacob Pedersen, Garwun Jeffrey Lai og Sean Rørgren srum Fritidsaktiviteter 04-12-2008: 1. Semester. Multimediedesigner Projektstart: 17/11-2008 Aflevering: 4/12-2008 Indholdsfortegenelse

Læs mere

www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www

www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www.taxa.nu www Opsætning Indhold: Side 2 Login Side 3 Hovedmenu Administration Side 4 Opret bruger Rediger afdeling

Læs mere

e-konto manual 01.08.2011 e-konto manual Side 1

e-konto manual 01.08.2011 e-konto manual Side 1 e-konto manual 01.08.2011 e-konto manual Side 1 Indhold 1. Overordnet beskrivelse... 3 2. Login... 3 3. Se og ret kundeoplysninger... 4 4. Rediger kontaktoplysninger... 6 5. Skift adgangskode... 7 6. BroBizz-oversigt...

Læs mere

Tlf. +45 7027 1699 Fax + 45 7027 1899

Tlf. +45 7027 1699 Fax + 45 7027 1899 Firmaordninger I firmaoversigten kan du holde styr på dit kundekartotek samt disses bookinger. Der kan desuden oprettes andre firmaer end dit eget. Herved kan der udbydes særlige ydelser på med egne arbejdstider.

Læs mere

Web 2.0. World Wide Web (www)

Web 2.0. World Wide Web (www) Web 2.0 World Wide Web (www) I marts 1989 skrev Tim Berners-Lee et information udveksling program kaldt ENQUIRE. Da han arbejde i CERN, var han ikke tilfreds med kommunikationen, derfor videreudviklede

Læs mere

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Copenhagen Business Academy Multimediedesigner 3. semester - 1. projekt, september 2014 Gruppe 1 - MulA Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Study: Multimedia Design Project:

Læs mere

WORKCYCLUS. Administration. Vers 4.0. Juni 2013. Workcompany A/S. Amagertorvet 33, 4.sal. DK-1160 København K. www.workcompany.dk

WORKCYCLUS. Administration. Vers 4.0. Juni 2013. Workcompany A/S. Amagertorvet 33, 4.sal. DK-1160 København K. www.workcompany.dk WORKCYCLUS Administration Vers 4.0 Juni 2013 Workcompany A/S Amagertorvet 33, 4.sal DK-1160 København K www.workcompany.dk Workcyclus Professionel Brugerguide Administration - Version 4.0 (Juni 2013) 1.

Læs mere

Rapport generator til Microsoft C5

Rapport generator til Microsoft C5 Generelt Rapportgeneratoren til C5 kan benyttes sammen med alle versioner af C5 og kræver INGEN tillægsmoduler eller tilkøb af C5. Den kører på: C5 version 1.5x, 1.6x, 2.x, 3.x, 4.x, 2008, 2010 og 2012.

Læs mere

eksamensprojekt 2. sem

eksamensprojekt 2. sem Multimediedesigner Klima 2009 Virksomheder i en klimakontekst eksamensprojekt 2. sem maj - juni 2009 www.cphnorth.dk Trongårdsvej 44 DK 2800 Kgs. Lyngby 1. Opgaven Indledning: I december 2009 skal Danmark

Læs mere

09/03 2009 Version 1.4 Side 1 af 37

09/03 2009 Version 1.4 Side 1 af 37 Login til DJAS Gå ind på adressen http://www.djas.dk I feltet Brugernavn skrives den e-mail adresse som brugeren er registeret med i systemet. I feltet Password skrives brugerens adgangskode. Ved at sætte

Læs mere

Vejledning og kommentarer til ny version

Vejledning og kommentarer til ny version Vejledning og kommentarer til ny version Udgave: SummaSummarum 4 Version: 4.10 SummaSummarum 4.10 & integration til Visma Avendo Webshop Visma Software lancerer en ny version af SummaSummarum, SummaSummarum

Læs mere

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. .NET UDVIKLER NATIONALITET: DANSK PROFIL Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. Stor erfaring omkring databasedesign, datahåndtering og MS

Læs mere

Mamut Enterprise Kunde- og Partner Web

Mamut Enterprise Kunde- og Partner Web Mamut Enterprise Kunde- og Partner Web Dette er en indføring i, hvordan du anvender tillægs-produktet Mamut Enterprise Kunde- og Partner Web. Det vil ved hjælp af et fiktivt eksempel, som omhandler bedriften

Læs mere

Sådan kommer du i gang med at handle på Berners WEBshop

Sådan kommer du i gang med at handle på Berners WEBshop Sådan kommer du i gang med at handle på Berners WEBshop Bestil dine varer, når DU har tid! Berners webshop tilbyder en række unikke værktøjer, hvor du som kunde har mulighed for at skræddersy din personlige

Læs mere

Upload af billeder til hjemmesiden m.m.

Upload af billeder til hjemmesiden m.m. Upload af billeder til hjemmesiden m.m. Fremgangsmåde VVS-inst.dk Upload af billeder m.m., Side 1 Så går vi i gang Åben Firefox browseren Gå ind på denne adresse, for at komme til hjemmeside programmet.

Læs mere

Lundtofte skole 2007/08. Åbn FrontPageExpress og Explorer begge programmer skal være åbne når du laver hjemmesiden.

Lundtofte skole 2007/08. Åbn FrontPageExpress og Explorer begge programmer skal være åbne når du laver hjemmesiden. Det vigtigste Hjemmeside i FrontPageExpress Åbn FrontPageExpress og Explorer begge programmer skal være åbne når du laver hjemmesiden. Lav en mappe til din hjemmeside. Find først din mappe på skolens netværk,

Læs mere

Guide - Sådan opretter du en backup

Guide - Sådan opretter du en backup Guide - Varighed: ca. 10 min Denne guide gennemgår hvordan en backup oprettes i Excovery. Guiden vil trinvist lede dig igennem processen og vil undervejs introducere de grundlæggende indstillingsmuligheder.

Læs mere

Installation af WeroShop 2.4 S

Installation af WeroShop 2.4 S 2012 Installation af WeroShop 2.4 S Tommy Westerdahl Christensen Wero Electronics 23-02-2012 Indholdsfortegnelse INDLEDNING... 2 INSTALLATION... 3 GENEREL OPSÆTNING... 8 MOMS OPSÆTNING... 10 BETALINGSFORMER...

Læs mere

Vejledning til Club Counsellor i brug af RYE Database 2008

Vejledning til Club Counsellor i brug af RYE Database 2008 Vejledning til Club Counsellor i brug af RYE Database 2008 Indledning Multi District Denmark har udviklet en database til brug ved administration af udvekslingsstudenter. Databasen kan åbnes fra alle pc

Læs mere

Installation af WeroShop 2.8

Installation af WeroShop 2.8 2013 Installation af WeroShop 2.8 Tommy Westerdahl Christensen Wero Electronics 01-01-2013 Indholdsfortegnelse INDLEDNING... 2 INSTALLATION... 3 GENEREL OPSÆTNING... 8 MOMS OPSÆTNING... 10 BETALINGSFORMER...

Læs mere

GUIDE TIL CLOUD DRIVE

GUIDE TIL CLOUD DRIVE GUIDE TIL CLOUD DRIVE Dette er en guide du kan anvende til nemt at komme effektivt i gang med at anvende Cloud Drive Indholdsfortegnelse 1. Tilgængelige Cloud Drive klienter 2. Guide til Windows klienten

Læs mere

Lavet af Danni jensen og David Olsen

Lavet af Danni jensen og David Olsen Projekt Delfin Lavet af Danni jensen og David Olsen 19/5-2008 Indholdsfortegnelse. Side 1: Indholdsfortegnelse og forord. Side 2: Kravsliste. Side 3: Use Case Model. Side 4: Formandens aktørbeskrivelse

Læs mere

Indholdsfortegnelse Dankort og kreditkort...2 Betalingsgateway...2 Flytte aftale hos PBS...2 Etablere ny aftale hos PBS...5 Håndtering af ordrer...

Indholdsfortegnelse Dankort og kreditkort...2 Betalingsgateway...2 Flytte aftale hos PBS...2 Etablere ny aftale hos PBS...5 Håndtering af ordrer... Indholdsfortegnelse Dankort og kreditkort...2 Betalingsgateway...2 Flytte aftale hos PBS...2 Etablere ny aftale hos PBS...5 Håndtering af ordrer...9 Betalingsmodulet...10 Betalingsikoner i butikken...13

Læs mere

Rev. 05-10. Brugervejledning. Webshop Sika Danmark A/S

Rev. 05-10. Brugervejledning. Webshop Sika Danmark A/S Rev. 05-10 Brugervejledning Webshop Sika Danmark A/S Indholdsfortegnelse Afsnit Emne Side 1. Indledning 2 2. Quickguide forklaring af menu 3 2.1 Menu til venstre 3 2.2 Topmenu 3 3. Log-in 5 4. Bestilling

Læs mere

eservice Den enkle måde at administrere dine Ricoh-produkter Brugervejledning til RICOH eservice

eservice Den enkle måde at administrere dine Ricoh-produkter Brugervejledning til RICOH eservice eservice Den enkle måde at administrere dine Ricoh-produkter Brugervejledning til RICOH eservice eservice-portalen er udviklet med tanke på brugervenlighed, så du hurtigt og intuitivt kan sende forespørgsler

Læs mere

bedreweb.dk - Bolette Obbekær 2012 SÅDAN LÆGGER DU WORDPRESS PÅ DIT WEBHOTEL

bedreweb.dk - Bolette Obbekær 2012 SÅDAN LÆGGER DU WORDPRESS PÅ DIT WEBHOTEL SÅDAN LÆGGER DU WORDPRESS PÅ DIT WEBHOTEL TRIN 1: WORDPRESS MAPPEN WordPress er et gratis program, der bruges til at lave hjemmesider og blogs. Du skal downloade WordPress og bagefter lægge det på dit

Læs mere

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0 SmartFraming Et vindue til nationale sundhedssystemer Version 3.0 Infrastruktur i dagens sundheds IT Det sundhedsfaglige personale benytter sig i dag af en række forskellige systemer i forbindelse med

Læs mere

Internet Information Services (IIS)

Internet Information Services (IIS) Internet Information Services (IIS) Casper Simonsen & Yulia Sadovskaya H1we080113 06-11-2013 Indholdsfortegnelse Problemformulering... 2 Hvorfor:... 2 Hvad:... 2 Hvordan:... 2 Problembehandling... 3 Introduktion...

Læs mere

Sådan kommer du i gang

Sådan kommer du i gang Sådan kommer du i gang Første gang du logger på shoppen, kan du følge denne vejledning, for at komme godt i gang: 1. Gå ind på shop.mto-electric.dk 2. Klik på login i menu-linien 3. Indtast eller kopiér

Læs mere

Vejledning til udbyder. Rev.: 2015-05-27 / LW. Side 1

Vejledning til udbyder. Rev.: 2015-05-27 / LW. Side 1 Vejledning til udbyder Rev.: 2015-05-27 / LW Side 1 Indhold Indhold... 2 Indledning... 3 Log på... 4 Opret din bruger... 4 Personlige informationer... 4 Gem login... 5 Glemt password... 5 Brugerfladen

Læs mere

Henkel Norden AB ("Henkel") er en del af Henkel Corporation, og i henhold til DPA, er Jörg Heine, den dataansvarlige: schwarzkopf.dk@henkel.

Henkel Norden AB (Henkel) er en del af Henkel Corporation, og i henhold til DPA, er Jörg Heine, den dataansvarlige: schwarzkopf.dk@henkel. HENKEL FORTROLIGHEDSPOLITIK Vi, hos Henkel, tager vores forpligtelser i henhold til dansk lov om databeskyttelse (persondataloven) alvorligt og er forpligtet til at beskytte dit privatliv. Denne fortrolighedserklæring

Læs mere

MANUAL. Siteloom CMS

MANUAL. Siteloom CMS MANUAL Siteloom CMS www.hjerteforeningen.dk/cms Brugernavn: Password: 3. oktober, 2013 BASIS FUNKTIONER 1. Kalender... 4 1.a. Opret... 5 1.b. Rediger eller slet... 9 2. Sider...12 2.a. Opret side...13

Læs mere

Onlinebooking.dk. Book online nemt som 1 2 3

Onlinebooking.dk. Book online nemt som 1 2 3 Onlinebooking.dk Book online nemt som 1 2 3 Med onnlinebooking kan du tilbyde din kunder at booke deres ferie direkte hjemme fra deres stue. Derved slipper campingpladsen for al administration, og butikken

Læs mere

Spiked Reality. Kvikguide til oprettelse af tilbud, nyheder og begivenheder. Version 2.0, september 2013

Spiked Reality. Kvikguide til oprettelse af tilbud, nyheder og begivenheder. Version 2.0, september 2013 Spiked Reality Kvikguide til oprettelse af tilbud, nyheder og begivenheder Version 2.0, september 2013 Indholdsfortegnelse Indledning... 3 Mine oplysninger... 3 Online Administration... 3 Dit log ind...

Læs mere

Få din egen hjemmeside

Få din egen hjemmeside I dette afsnit lærer du at bygge din egen hjemmeside tilføje tekst og billeder lave dit eget design lægge en baggrund på hjemmesiden I næste nummer får du hjælp til at bygge en større hjemmeside til en

Læs mere