KAi SENSEMAKING SYSTEM



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

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

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

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

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

Slutrapport Thunderbug

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

Slutrapport YUNSIT.se Portfolio/blogg

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

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

Endless shooter neon - Post mortem

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

Slutrapport för Pacman

Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt

SLUTRAPPORT WEBBPROJEKT 1

Slutrapport Get it going contracts

Praktikrapport. Sofia Larsson MKVA12, HT12

Slutrapport för JMDB.COM. Johan Wibjer

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

hannalabom.se Alexandra Jonasson Aj222im

sida 1 Grupp 6 co-browsing 1DV411 - Webbprojekt I Markus Axelsson Stavros Gemitzoglou Axel Hernborg Joakim Jonsson Rickard Karlsson Peter Magnusson

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

Intra EV. Webbprojekt I, 1DV411. Alex Driaguine. Kristoffer Karlsson. Martin Carlsson. Joakim Holmewi. Mattias Johansson. Uppdragsgivare: Grupp 4:

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

DD

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

Individuellt Mjukvaruutvecklingsprojekt

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

1/21/13 Redigera formulär [ Kursvärdering för kursen 1DV450 - Webbramverk - VT12 ] Google Dokument

Arbetsrapport CEQ, ETS170

Gillakampen. av Merkur Hoxha WP

Slutrapport för SquareShooter

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

Henrik Häggbom Examensarbete Nackademin Våren 2015

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

Hoppa till... Exportera till Excel

Projektuppgift.

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år

- en expertanalys. av Anna Olvenmyr

Projektet. TNMK30 - Elektronisk publicering

GYMKEEPER ANDREAS SÖDERSTRÖM

Kräftriket Hus 8c Roslagsvägen Stockholm

HejKalmar app. Projektrapport. Webbprojekt I

Någonting står i vägen

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

Kommunal Jämförelsetjänst

Rabattsystem TEXTILGALLERIAN RABATTSYSTEM

Hur bedömer du som helhet det bemötande du fått som student under kursens gång? ( ), där 1 anger lägsta betyg och 5 anger högsta betyg)

Labrapport över Rumbokningssytemet Grupp:1

SEGLAISOLEN.SE En Wordpres Webbsajt

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Projektmaterial. ITS4 U ( IT-SATSNING FOR YOU, IT-SATSNING FÖR DIG) ABF Gästrikebygden

Redogörelse för utvecklingsprocessen av spelet The Legend of Chalmers

Sammanställning av kursutvärdering Samlad bedömning

Företagarens vardag 2014

5 I vilken utsträckning har kurslitteraturen varit till hjälp för ditt lärande?

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum:

hh.se/studentsupport goda råd för en hållbar studietid Studentsupport

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

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

4. Beskriv projektets inslag av och inriktning mot ett flexibelt lärande

Moodle på Åsö för lärare

<script src= "

Kursplan Webbutveckling 2, 100p Läsår

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

DESIGNDOKUMENT 1(8) 1. Idé & koncept. Grundidé, syfte & innehåll. Målgrupp, koncept & sammanhang

Det handlar om dig. Björn Täljsten vd, Sto Scandinavia AB

Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén

Kursplan Gränssnittsdesign, 100p Läsår

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Projektplan Magasinet

Introduktion till MySQL

WEBBSERVERPROGRAMMERING

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

Filhanterare med AngularJS

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

Evaluation Summary - CT3380 Grundläggande webbdesign HT05 Dan Levin

Bli ett proffs på arkitekt.se

Goda råd från studenterna som gjorde kandidatprojektet 2018

Dagbok Mikael Lyck

12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE

Process- och metodreflektion. Grupp 3; Ida Gustafsson, Mikael Karlsson, Jonas Lind, Hanne Sundin, Maria Törnkvist

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

WEBBDIST13: Formgivning och layout, 7,5 hp V14 (31EFO1)

TIPS FÖR ATT ÖKA 3DIN FÖRSÄLJNING

Digitala Minnen. Luleå kommun

Webbserverprogrammering

Lektionsbank på Musiklärarportalen.se

1DV450 - vt2014. Har du läst kursen på Campus eller distans. Antal respondenter: 24. Antal svar. Svarsfrekvens: 37,50 %

Företagarens vardag i Karlstad 2014

Sammanställning av enkäten

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Strategi för e-service

ASTRAKAN COURSEPLAN. Programmet som sparar tid och förenklar kursadministrationen! ASTRAKAN COURSEPLAN BESTÅR AV TVÅ DELAR:

Hoppa till... Exportera till Excel

Universe Engine Rapport

Community-utveckling i Ruby on Rails

Transkript:

Alexander Hall, 791023-8554 Individuellt mjukvaruutvecklingsprojekt 7,5 hp Linnéuniversitetet 2013-06-09 KAi SENSEMAKING SYSTEM ABSTRAKT KAi Sensemaking System är en webbapplikation för feedback/återkoppling och insamling av data. Ett enkätsystem som ska göra det enklare, och förhoppningsvis lite roligare än vanligt, att skapa och besvara enkäter. Det som framförallt skiljer KAi Sensemaking System från andra enkätsystem på marknaden är dess särskilda fokus på nya former av interaktiva gränsnittselement/-moduler för insamling av data. Följande rapport beskriver processen bakom Alexander Halls arbete med KAi Sensemaking System, vilken genomfördes inom ramarna för kursen Individuellt mjukvaruutvecklingsprojekt vid Linnéuniversitetet våren 2013. 1

INNEHÅLLSFÖRTECKNING INLEDNING / BAKGRUND... 3 MÅLGRUPPER... 3 TEKNIK... 3 GENOMFÖRANDE... 4 POSITIVA ERFARENHETER... 4 NEGATIVA ERFARENHETER... 5 SAMMANFATTNING... 5 2

INLEDNING / BAKGRUND KAi Sensemaking System är en webbapplikation för feedback/återkoppling och insamling av data. Applikationen skapades på uppdrag av KAi (kai-creative.se) - en kommunikationsbyrå som tillhandahåller kurser, workshops och konsulttjänster med inriktning mot innovation, kommunikation och konceptutveckling. Företaget har utvecklat en rad specifika metoder för feedback/återkoppling, med syfte att på ett kreativt och lustfyllt sätt samla in information och mätbar data som sedan kan användas för utveckla olika typer av innovationsprocesser. KAi Sensemaking System har realiserats med utgångspunkt ifrån dessa metoder. Det finns i dagsläget många olika enkätsystem på marknaden, både öppna och kommersiella alternativ. Det som skiljer KAi Sensemaking System från många av dessa är dess fokus på grafisk överskådlighet och användarvänlighet. Utgångspunkten har varit att ett mer genomarbetat grafiskt gränssnitt på sikt leder till både bättre kvantitet och kvalitet på insamlad data. Med inspiration från modern infografik och datavisualisering har jag med hjälp av moderna webbtekniker velat erbjuda ett visuellt tilltalande och användarvänligt gränsnsitt där de grafiska elementen inte enbart används för att presentera data, utan även för att hämta in data och interagera med slutanvändare. Inom ramarna för kursen Individuellt mjukvaruutvecklingsprojekt var ambitionen att ta fram en fungerande prototyp som visar upp applikationens grundläggande koncept och funktionalitet på ett bra sätt. Utvecklingen av KAi Sensemaking System kommer med andra ord att fortsätta även efter att denna kurs har avslutats. MÅLGRUPPER Applikationens målgrupper kan delas in i två huvudsakliga kategorier - Datainsamlare och Datalämnare. Primära målgrupper för den prototyp jag utvecklat inom ramarna för utbildningen är i första hand projektledare och anställda på KAi, vilka alltså tillhör kategorin Datainsamlare, samt deras kunder (beslutsfattare/projektledare inom privat/offentlig sektor) som i detta fall fungerar som Datalämnare. TEKNIK KAi Sensemaking System har byggts i Ruby on Rails (rubyonrails.org) - ett öppet ramverk för utveckling av webbapplikationer. Ruby on Rails är baserat på det objektorienterade skriptspråket Ruby och följer ett designmönster som kallas Model-View-Controller (MVC). Andra centrala filosofier för Ruby on Rails är: - Convention over Configuration. Handlar i korta drag om att utvecklare i så stor utsträckning som möjligt ska slippa skriva väldigt mycket kod från grunden, utan ska istället snarare kunna fokusera på att konfigurera de specifika delar som går emot konvention och vedertagen praktik. 3

- Don t repeat yourself. Ruby on Rails implementerar en rad tekniska lösningar med syfte att i så stor utsträckning som möjligt undvika onödig duplicering av kod. - Fat models, skinny controllers. Detta handlar om att större delen av en applikations logik bör placeras i model -lagret, och att controller -lagret i sin tur bör hållas så lätt och rent som möjligt. Via Ruby on Rails har jag även haft möjlighet att dra nytta av en rad andra ramverk och tekniker. De som främst använts vid utvecklingen av KAi Sensemaking System är SASS (sasslang.com) - en preprocessor för CSS, JavaScript-ramverket jquery(jquery.com)samt ett administrationsramverk som heter Active Admin (activeadmin.info). GENOMFÖRANDE KAi Sensemaking System inbegriper i sitt nuvarande utförande två separata gränssnittslager. Ett backendsystem för att skapa enkäter och administrera sitt konto på olika sätt, samt ett frontendgränssnitt som i detta fall är de enkäter som slutanvändare ser och interagerar med. I backendsystemet ska användare kunna logga in/ut, skapa projekt och mottagarlistor samt skapa och förhandsvisa enkäter som innehåller frågor och olika svarsalternativ. Det ska även vara möjligt att se och exportera insamlad data i olika format. Jag har inom ramarna för denna kurs implementerat alla dessa funktioner, vissa fullt ut och vissa i något enklare utförande. Funktionalitet som inte implementerats i denna första prototyp är bl.a. möjligheten att skicka ut enkäter per epost till flera användare, samt mer genomarbetade lösningar för att sortera och överblicka insamlad data. Dessa funktioner har helt enkelt legat längre ned i prioritetsordningen, och jag har inom ramarna för denna kurs valt att fokusera på att få ordning på de mest grundläggande funktionerna först. De delar jag fokuserat extra mycket på har varit möjligheten att skapa och redigera enkäter som integrerar olika s.k. gränssnittsmoduler för interaktion med användare. Och att sedan via olika formulär koppla dessa moduler till en PostgreSQL-databas, för att spara undan data. Sett över hela kursen har en hel del tid (förutom att lära mig Ruby on Rails) gått åt till datamodellering och övergripande databasarkitektur, samt att utveckla de grafiska gränssnittslösningarna. POSITIVA ERFARENHETER Generellt har det varit en svår men samtidigt oerhört lärorik process. Att arbeta på egen hand med ett relativt stort mjukvaruutvecklingsprojekt kräver både disciplin och struktur. Jag har under dessa veckor tillskansat mig oerhört mycket ny kunskap och erfarenhet som jag förmodligen kommer att ha väldigt mycket nytta av framöver. 4

Att arbeta med Ruby on Rails har varit en mestadels positiv erfarenhet, även om det var en hyfsat brant inlärningskurva. Designmönstret MVC var lite svårt att greppa till en början, men när jag väl fått in det i skallen känns det helt logiskt, och som ett väldigt flexibelt och bra sätt att strukturera en applikation. Andra aspekter av Rails som jag uppskattade var Active Record (ett slags mellanlager som förenklar åtkomst till databasen) samt Migrations - ett slags versionshanteringssystem för databaskommandon. Andra positiva erfarenheter var att jag fick möjlighet att bättre sätta mig in i Git (versionshantering), SASS och jquery - vilka jag tidigare arbetat med i viss utsträckning, men aldrig på ett mer strukturerat sätt. Överlag känner jag mig nöjd med den prototyp jag utvecklat. Det känns som en bra och flexibel grund att bygga vidare på, vilket hela tiden varit min ambition. Känslan är att grundkonceptet håller och att applikationen med viss kompletterande funktionalitet kommer att vara redo att användas i skarpt läge inom en inte alltför avlägsen framtid. NEGATIVA ERFARENHETER Mycket av det som varit positivt under arbetet ryms också inom det som varit negativt. Som tidigare nämnts kräver denna typ av individuellt arbete stora doser disciplin och struktur. Ibland har det känts svårt att veta vad som bör prioriteras, och snudd på övermäktigt att ensam hinna med alla delar på ett tillfredsställande vis. Mycket av detta grundar sig förmodligen i viss orutin, då det är svårt att uppskatta hur lång tid saker och ting tar när man gör dem för första gången. För egen del har just tidsuppskattningen varit problematisk. Ofta har jag stött på oväntade problem som omkullkastat min tidsplanering fullständigt, vilket i sin tur fått konsekvenser för andra delar. I mitt fall har framförallt testningen blivit lidande. Jag inledde väldigt ambitiöst med s.k. testdriven utveckling (TDD), men tyckte det var svårt att upprätthålla detta på ett konsekvent sätt då känslan var att det tog för mycket tid från andra uppgifter. Jag kan definitivt se värdet av att jobba på detta sättet, och jag antar att det är något man lär sig och blir bättre på ju mer man gör det. Men för mig kändes det helt enkelt alltför tidsödande och svårt, och jag valde tyvärr att nedprioritera den s.k. White Box-testningen ju närmare deadline jag kom. SAMMANFATTNING Att jobba helt själv med ett större projekt har varit en både positiv och negativ erfarenhet. Många gånger har jag känt mig frustrerad och övergiven i processen. Otaliga timmar har gått åt till att söka svar på mer eller mindre obskyra problem på mer eller mindre obskyra forum på nätet. Det har känts svårt att ta upp denna typ av problem under de schemalagda handledningstiderna, eftersom de ofta varit så nischade till just den specifika utvecklingsmiljö och kontext jag jobbat med eller för att de helt enkelt känts svåra att förklara på ett vettigt sätt. Den andra sidan av detta mynt är dock känslan av tillfredsställelse när man lyckats lösa ett till synes omöjligt problem på egen hand (eller kanske snarare med hjälp av någon annan stackare 5

som stött på precis samma problem), och detta är givetvis det optimala sättet att faktiskt lära sig något nytt. Jag uppskattar att formen för kursen till stora delar tycks ha baserats på en idé om frihet under ansvar, och jag känner mig som sagt också nöjd med den applikation jag utvecklat. Det har även fungerat bra att integrera denna kurs med den kurs i gränssnittsutveckling som löpte parallellt (de hade nästan kunnat integreras ännu mer kan jag tycka). Överlag en mycket lärorik process och en nödvändig erfarenhet inför framtida webbutvecklingsprojekt, antingen de sker individuellt eller i grupp. 6