Priskamp. En prisjämförelsesite Björn Larsson 130609



Relevanta dokument
Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Slutrapport YUNSIT.se Portfolio/blogg

VIDEODAGBOKEN. Individuellt Mjukvaruutvecklingsprojekt. En dagbok i videoform online. Robert Forsgren (rf222ce) UD

Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt

SLUTRAPPORT. Sebastianlund.com. Individuellt mjukvaruutveckingsprojekt, 1DV430. Författare: Sebastian Lund WP11 Datum:

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Erik Holmström Projektrapport- KalmarKendo Erik Holmström UD12 Individuellt mjukvaruutvecklingsprojekt

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

Slutrapport Thunderbug

Skissa och gissa. Individuellt Mjukvaruutvecklingsprojekt, 1DV430. Christian Nilsson, cn222gc, WP

KAi SENSEMAKING SYSTEM

Slutrapport för JMDB.COM. Johan Wibjer

Individuellt Mjukvaruutvecklingsprojekt

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

Collector en Android-app för att samla saker. Kim Grönqvist (kg222dk) Slutrapport

Tepz klon. - Projektrapport. Linnéuniversitetet, Individuellt mjukvaruutvecklingsprojekt Janina Bergström, WP12 Distans

hannalabom.se Alexandra Jonasson Aj222im

ToDo ios-applikation. Mikael Östman. Mikael Östman - mo22ez Linnéuniversitetet

Elevernas uppfattningar om alltmer digitaliserad undervisning

Mjukvaruprojekt Onlinebooks

SEGLAISOLEN.SE En Wordpres Webbsajt

LNU INDIVIDUELLT MJUKVARUUTVECKLINGSPROJEKT. Honey Hunter. Androidspel. Martin Karlsson 1/17/2014

Evaluation Summary - CD5570 DoA, distans VT 2004 Dan Levin

URVAL AV UTFÖRDA FRILANSJOBB

[SLUTRAPPORT: DRAWPIXLZ (ANDROID-APP)] Slutrapport. Författare: Zlatko Ladan. Program: Utvecklare av Digitala Tjänster 180P

Gillakampen. av Merkur Hoxha WP

Callisma (2 mån) Adam levererade en modern och plattformsoberoende webbplats som även är integrerad till en E-handelsplattform.

Slutrapport Get it going contracts

SLUTRAPPORT WEBBPROJEKT 1

Sammanfattning av kursutvärdering. Informatik C, IT-arkitektur vt2014. Sammanfattning Svarsfrekvens: 18% ( 7 / 39 ).

CMS. - Content management system

Erik Lundgren GarageLoppisen.se. Projekt i kursen Individuellt Mjukvaruutvecklingsprojekt, 1dv430

Individuellt Mjukvaruutvecklingsprojekt. Slutrapport. Projekt: ASP.NET Applikation: Clustery Gaming Datum: Författare: Adam Gustafsson UD11

GYMKEEPER ANDREAS SÖDERSTRÖM

Haris Kljajic Individuellt mjukvaruprojekt. Projekt Rapport. Insatsplutonen. Haris Kljajic UD11

Slutrapport - Intranät

Slutrapport för SquareShooter

Webbprogrammering, grundkurs 725G54

Har du läst kursen på Campus eller distans Campus 8 53% Distans 7 47%

MYCKET BRA (14/48) BRA (30/48) GANSKA BRA (3/48) INTE BRA (1/48)

Mental träning termin 2 HT-10 Sida 1 av 1

Mathias Ericsson. Curriculum Vitae. Mathias Ericsson

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

HejKalmar app. Projektrapport. Webbprojekt I

KONSULTPROFIL Rodrigo

METODER OCH VERKTYG EXEMPEL PÅ UPPDRAG KOMPETENSOMRÅDEN

YH, Systemutvecklare agil webbprogrammering 400 Yh- poäng (utbildningsnummer: ) Connectivity och Internet of things IoT

Roligaste Sommarjobbet 2014

Sommarpraktik - Ungdom

JavaScript del 3 If, Operatorer och Confirm

Någonting står i vägen

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

JAG LÅG BREDVID DIG EN NATT OCH SÅG DIG ANDAS

Anläggnings- och apparatteknik

Sammanställning av kursvärdering

PROJEKTLEDNING inom produktutveckling. Individuell inlämningsuppgift KPP039 Produktutvekling 3 Boris Mrden

Hemsideutveckling för Anjool AB

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

Tove Carlsund Systemutvecklare

Rabattsystem TEXTILGALLERIAN RABATTSYSTEM

Kort om World Wide Web (webben)

Kursvärdering 1DV433 Strukturerad programmering med C++ LP Lärare: Tommy Löfqvist 17 svar

SLUTRAPPORT FÖR PROJEKT

"Content is king" - Vacker Webbdesign & Effektiv Sökmotorsoptimering för företag

Filhanterare med AngularJS

Röna fingrar e gött o ha:) SLUTRAPPORT BUDGETSYSTEM LNU

Ingenjörsinriktad yrkesträning - Softhouse Crossmedia Avenue. Ronny Roos, d04rr

Professionellt har det gett nya kontakter och framförallt kunskaper i de ämnen som avhandlas.

Slutrapport för Pacman

Nya webbservern Dvwebb.mah.se

Hur det är att vara arbetslös i fina Sverige.

Slutrapport. Super Mario klon. Tomas Wallin tw222bv WP

Årsberättelse

Meritförteckning. Mer än 3 års professionell erfarenhet av PHP, SQL, C# och VB.NET,

2015/16 Företags ID: Emil Lund Sjövägen 3, Upplands Väsby Sollentuna, Stockholms län ÅRSREDOVISNING. Move it Bag UF

Eventuella kommentarer: Under kursens gång har 4 studenter hoppat av utbildningen.

En Single-Page Application för små barn, barnens föräldrar samt en och annan mormor

DD

Hoppa till... Exportera till Excel

Thomas Padron-Mccarthy Mobila applikationer med Android, 7.5 hp (Distans) (DT107G ) Antal svarande = 11. Svarsfrekvens i procent = 14.

Endless shooter neon - Post mortem

ANONYMA TENTAMINA (FÖRDELAR) ÅSIKTSTORG:

Content Management System. Publiceringssystem

Evaluation Summary - CDT104 Grundläggande Webbdesign HT07 Dan Levin

Kommunal Jämförelsetjänst

Evaluation Summary - CT3380 Grundäggande webbdesign HT06 Dan Levin

CMS, optimerade för programmerare Eller hur kan ett sådan skapas.

BLODGIVNINGSBEFRÄMJANDE ARBETE OCH SAMTALSTEKNIK. DEN 2 APRIL 2014 Antal svar 32 av 38 Hur givarna förstår information och frågor var?

Daniel Persson. Födelsedatum: Vindragaregatan 3B, Göteborg Telefon: Portfolio:

Planeringsspelets mysterier, del 1

THFR41 - Teknisk kommunikation på franska del II

ebson Split Screen Boka lätt Boka rätt! Bokningssystem för Restaurang & Konferens Ebson Split Screen

Projekt Foreläsning VI

Hur upplevde eleverna sin Prao?

Informatik B, moment 2: Databasdesign, 7,5 hp, våren 2015 och. Databasdesign, 7,5 hp (som ges inom ramen för statistikerprogrammet)

Federerad Roll Administration ÄR GROUPER EN MEDSPELARE? OVE OLANDER MITTUNIVERSITETET

Ge ditt supportärende en flygande start. Tips och fallgropar.

Skolprogram på hembygdsmuseum

Transkript:

Priskamp En prisjämförelsesite Björn Larsson 130609

Abstrakt Detta är en post-mortem slutrapport om mitt projekt "Priskamp" inom ramen för kursen Individuellt Mjukvaruutvecklingsprojekt VT 2013. Projektets mål var att skapa en prisjämförelsesite i PHP med MySQL som databas. Drupal skulle även undersökas som potentiellt CMS för applikationen. Det blev en prisjämförelsesite som fungerar men projektet fick fokusera mer på ramverk, pattern och det faktum att Drupal inte passade så bra in i projektet och alla delar i visionen hanns därför inte med.

Bakgrund Syftet med sidan var att göra en prisjämförelsesite i stil med Prisjakt eller Pricerunner. Dock begränsades projektet till att endast jämföra räntor på bolån och sparräntor från ett mindre antal leverantörer. Det blir ganska mycket jobb även med detta ringa antal produkter och leverantörer. En del av projektet var att undersöka om Drupal skulle vara lämpligt som CMS(Content Management System), detta för att det är ett väldigt populärt CMS som många använder. Att använda en färdig kodbas för saker som struktur, authentication, templating osv är ju potentiellt en tidsbesparing och nått som många gör. Den största moroten var dock att kunna skriva att man kan Drupal på sitt CV. Tekniker som skulle användas var PHP som programmeringsspråk med MySQL som databas och driftas på en Apache server, mao klassika webbtekniker. I frontend HTML, CSS och Javascript, även där inga konstigheter. Jag har jobbat iterativt enligt ett scrum koncept, dvs jag har uppskattat vad varje delmoment skall ta och sen hela tiden jämfört med hur det låg till i verkligheten. Det är ett väldigt bra sätt att strukturera upp sitt arbete och skapa fokus. Projektet har följt tidsplanen så till vida att jag är nöjd med slutprodukten men att projektet gled in mer på att handla om struktur och ramverk än om själva applikationen. Därför hade jag nog högre förhoppningar på funktioner som aldrig realiserades inom ramen för projektet. Det visade sig ganska snabbt att Drupal inte passade så bra för det jag ville åstadkomma. Overheaden av att skriva applikationen i Drupal visade sig vara mycket större än jag anat och jag valde tidigt att rikta in mig på att skriva allt från grunden istället. Jag tittade lite på andra tillgängliga ramverk men eftersom jag redan använt en del av projekttiden till Drupal undersökningen så var jag mer eller mindre tvungen att börja koda. Jag valde att skriva applikationen i en lagerstruktur även kallad 3-tier eller n-tier. Det verkar vara väldigt ovanligt inom PHP världen att man jobbar på det viset men vi har jobbat så tidigare i.net på programmet så jag tänkte att det skulle nog fungera, och det gör det. Det är väldigt praktiskt om man har flera gränssnitt som backend för administration och frontend mot besökare för man kan separera dem från varandra på ett logiskt sätt men ändå återanvända mycket kod.

Positiva erfarenheter Det mest positiva är nog egentligen känslan av att ro hem ett stort projekt på egen hand. Att dessutom hålla en tidsplanering och jobba strukturerat och målinriktat var väldigt givande. Inför framtiden kommer jag definitivt att jobba iterativt igen. Jag har, helt ofrivilligt, lärt mig att skriva ett säkert login/authentication system, en router för SEO anpassade URL:er, mer eller mindre ett ramverk med funktioner som jag kan använda i framtida projekt som session hantering, templating system etc. Detta ger mig en möjlighet att förstå om ett annat ramverk är mer eller mindre användbart för en framtida applikation. Kunskaper som jag helt ofrivilligt var tvungen att skaffa mig har gjort mig till en bättre utvecklare på områden jag trodde jag inte skulle beröra. PHP är väldigt tacksamt att jobba med eftersom det är enkelt att komma igång, gratis och det finns mycket information på nätet om alla möjliga problem som folk har stött på. Jag har lärt mig mycket nytt och det har flutit på relativt bra allting så jag är överlag nöjd med projektet och resultatet.

Negativa erfarenheter Drupal var en stor besvikelse. Det är ett CMS som nog är bättre anpassat för att bygga mindre portaler till företag där det sitter en webbredaktör och publicerar artiklar. Då sparar man nog tid eftersom det finns många funktioner att tillgå för sånt. Jag gav dock upp när det visade sig att man inte ens har kontroll över databasen utan måste köra allt via Drupals system. Jag behövde ha kontroll hela vägen för att kunna bygga det jag ville så jag övergav Drupal. Jag gjorde iaf tre stora refaktoreringar och det kommer jag försöka undvika i framtiden genom att läsa på bättre om det pattern jag valt att jobba efter. Att börja koda bara för att det skall bli nått är ju mer kul än smart. Till nästa gång skall jag välja en struktur och sen börja koda, inte tvärt om. PHP är ju från början ett procedurellt språk och det märks. Tyvärr faller man in i det ganska lätt och i framtiden skall jag försöka jobba ännu mer objektorienterat. Det mesta är iofs objektorienterat men vissa delar i mitt templating system kan nog skrivas och bli mer OOP. Att skriva allt från grunden tar tid. Det är kul och lärorikt men egentligen onödigt. Det finns en uppsjö med ramverk i PHP man skulle kunna använda och det är något jag ämnar göra fortsättningsvis. Nu studerar jag förvisso så då kan man ju uppfinna hjulet för att lära sig något nytt, men i arbetslivet kan det bli svårt att motivera den typen av aktivitet. Jag hade velat skriva mitt eget köhanteringssystem för mina scrapers(informationsinhämtnings script), men det hann jag inte pga ovanstående. Jag ville dessutom titta på hur man skulle kunna effektivisera eller generalisera mer av informationsinhämtningen och sorteringen i backend. Där finns otroliga vinster att hämta om man vill skriva ett större system, vilket ju är drömmen. Men som sagt om man skriver allt från grunden så hinner man inte allt man vill.

Sammanfattning Jag personligen är nöjd med resultatet även om jag hade önskat att jag hade kunnat implementera andra funktioner än de jag tvingades göra. I framtiden kommer jag definitivt använda ett ramverk för pattern, routers, templating, auth/acl osv. Eventuellt det jag skrivit i det här projektet. En prisjämförelsesite är komplex. Det är mer komplext än man kanske först tänker. På pappret är det enkelt, man hämtar hem information, stuvar om den och presenterar den på en sida. Låter enkelt men är på intet sätt trivialt. Varje delmoment är i sig ett mindre forskningsområde. Jag hade viss kunskap om scrapers innan jag satte igång och jag kunde en del PHP men det var mycket mer komplext än jag anade. Dessutom har jag inte ens börjat titta på dom delar som handlar om rent affärsmässiga saker tex hur man skall kunna fakturera, analys och besökarstatistik, CRM etc. Jag har bara jobbat med basfunktionalitet och det finns hur mycket som helst man skulle kunna göra ovanpå detta. Det jag på ett personligt plan har märkt är att jag vet mycket bättre hur jag skall strukturera ett projekt. Inför nästa projekt så kommer jag definitivt ta med scrumtänket och UP med user tasks, product backlog, krav och testning. Har planer på att skriva nått enklare system för att hantera dokumentationsbiten och då framförallt krav och test något som blir lite tidskrävande bara genom en texteditor. Jag kommer definitivt fortsätta att utveckla Priskamp i någon form.