2 Moduler Tilbud på betalingsmodul til Facecv.dk 1 Overblik Et eksisterende Codec9 baseret websted skal udvides til at understøtte dankortbetaling via en betalingsgateway. Webstedet er i opstartsfasen, og jeg forestiller mig at det, efterhånden som der opnåes større volumen, kan blive attraktivt at implementere en mere skræddersyet løsning, der i højere grad imødekommer den specifikke forretningsmodel. Ydermere antager jeg, at det er attraktivt for kunden at have så lave udviklingsomkostninger som muligt, indtil den større volumen er opnået. Derfor anbefaler jeg en strategi, hvor betalingssystemet laves som et seperat modul, hvor den nødvendige integration med Codec9 sker ved at patche Codec9 kildekoden direkte, fremfor at arbejde indenfor rammerne og begrænsningerne af CMS ets modulsystem. Denne tilgang vil føre til hurtigere og derved billigere udvikling, og hvis det på et senere tidspunkt skønnes nødvendigt vil muligheden for at videreudvikle koden til at fungere indenfor rammerne af Codec9 s modulsystem stadig stå åben. Diagram 1 viser den overordnede sammenhæng mellem de moduler jeg mener der skal udvikles. Pilenes retning angiver ydre afhængighed for et givet modul. De primære moduler er transaktionsmodulet og brugerstatusmodulet. Derudover er det værd at bemærke en række pseudo-moduler angivet inde i den boks der repræsenterer Codec9 systemet. Diagram 2 viser den samme model, men mere detaljeret med forbindelserne imellem modulernes delelementer. Diagram 2 er måske primært til internt brug for mig, men vi kan også referere til det, hvis vi skal diskutere løsningen mere detaljeret. Codec9 pseudo-moduler Transaktionsadministration Automagisk vedligehold Betaling Brugerhåndtering Statuseffekt2 Statuseffekt1 transaktionsmodul brugerstatusmodul Betalingsgateway mailmodul Diagram 1: Forsimplet fremstilling af sammenhæng mellem modulerne 2 Moduler 2.1 Transaktionsmodul Dette modul varetager al kommunikation med betalingsgateway en og journaliserer alle transaktioner i en lokal database. 2.1.1 Transaktionsadministration En webflade der viser data fra transaktionsmodulet og giver mulighed for at administrere transaktionerne efter behov. F.eks. antager jeg at der vil være køb foretaget af brugerne 1
2 Moduler Tilbud på betalingsmodul til Facecv.dk der ligger autoriserede i transaktionsmodulet, men som først gennemføres når kunden har modtaget den ydelse der er betalt for, f.eks. en videoptagelse eller et kursus. 2.2 Brugerstatusmodul En betaling medfører en ændring i en brugers status, f.eks. tilkøb af en bestemt type abonnement, der journaliseres og håndteres af dette modul. Modulet tænkes at bruge de interne bruger-id fra Codec9 systemet. Det er også dette modul der noterer, hvornår en given status er tilføjet brugeren og, hvornår den udløber. Transaktionsadministration annuller gennemfør liste Codec9 pseudo-moduler Brugerhåndtering Statuseffekt2 Betaling transaktionsmodul cancelpayment Betalingsgateway Statuseffekt1 getuserpayments authorizepayment brugerstatusmodul listpayments paymentstatus getuserswithstatus finalizepayment grantstatus paymenthistory Automagisk vedligehold getuserstatus setwarningsent forny abonnenter revokestatus getpendingexpiration mail til brugere medsnarligt udløb revokeexpired opdater udløbne mail Admin om kritiske tilstande Diagram 2: Udførlig sammenhæng mellem modulerne 2.3 Codec9 Som nævnt ovenfor er den anbefalede udviklingstrategi herfra at patche funktionalitet direkte ind i Codec9 kildekoden. Dette foregår helt systematisk ved at man udvikler på en lokal kopi af kildekoden, og når man er klar til udrulning bruger man bestemte værktøjer til at ekstraprolere forskellen på den nye og den gamle kode til en form, der kan påføres den oprindelige kode. Denne forklaring for at understrege at der er tale om en systematisk, testbar og reproducerbar fremgangsmåd, fremfor kodning i blinde. Dette modul tænkes også at fungere som produktkatalog, hvor en given status og dens beskrivelse betragtes som et tilkøb kunden endnu ikke har foretaget og derfor tilbydes bestemte steder i brugerfladen. 2
2.3.1 Brugerhåndtering Jeg tænker at udvide brugerhåndteringen inde i selve Codec9 systemet, så der i forskellige sammenhænge vises hvilke status er en given bruger har. Eksempler på sammenhænge kan være som brugeren ses af andre brugere, af brugeren selv inde i profilhåndtering eller af en administrator. 2.3.2 Betaling Integration af betaling er tænkt som en generel funktion, der knyttes til tilkøb af en bestemt status og aktiverer transaktionsmodulet til at gennemføre selve betalingen. 2.3.3 Statuseffekt X Jeg har angivet Statuseffekt1 og Statuseffekt2 i diagrammerne som pladsholdere for givne effekter som en given status måtte ønskes at påvirke Codec9 på. Dette aftales nærmere når vi når så langt. 2.4 Automagisk vedligehold Dette er ikke så meget et modul, som det er en process der kører på jeres server med et fastsat interval og foretager vedligehold af systemet. Eksempler på opgaver foretaget af dette system kan være at sende mails til brugere der har en status der er lige ved at udløbe, sende mails til en administrator om en transaktion der skal gøres noget ved eller forny faste abonnementer. 2.5 Mailmodul Lille php-modul der gør de øvrige moduler i stand til sende html-formatterede e-mails. Kan være der er noget funktionalitet i Codec9 i forvejen vi kan gøre brug af. 3 Timeestimat Min timepris er 650 kroner i timen eks. moms. Jeg angiver for hvert modul et forventet timeforbrug og et maks timeforbrug. Maks timeforbruget skal forståes på den måde at, hvis jeg når udover dette timeforbrug på en given opgave, så fakturer jeg kun op til maks timeantallet på den delopgave. 4 Design 12timer timer 4.1 Transaktionsmodul 15 timer 3
4.1.1 Transaktionsadministration 5 timer 12 timer 4.2 Brugerstatusmodul 5 timer 12 timer 4.3 Codec9 Alle estimater herunder sælges som elastik i metermål, da timeforbruget vil være afhængigt af hvordan og hvor meget en given integration skal indarbejdes i Codec9. Jeg vil også gerne sætte jer eller en 3. part ind i hvordan informationerne trækkes ud af systemet, så arbejdet kan fordeles på flere hænder. 4.3.1 Brugerhåndtering 4 timer 1 4.3.2 Betaling 3 timer 4.3.3 Statuseffekt X Ikke til at sige, da det afhænger af hvad I ønsker. Men på det tidspunkt hvor vi når dertil vil jeg med meget større sikkerhed kunne estimere timeforbruget udfra hvad I beder om. 4.4 Automagisk vedligehold 4 timer 4.5 Mailmodul Hvis nødvendigt. 3 timer 7 timer 4
4.6 Samlet 42 timer 8 5