Detta dokument är en beskrivning av mitt gesällprov till kursen IP2 på DSV, SU. Nedan finnes en beskrivning av den webtjänst jag utvecklat samt en kortfattad steg-för-steg med bilder på tjänstens funktionalitet under körning.
Jag har valt att göra en tjänst som jag själv skulle kunna tänka mig att använda. Det är ett avcheckningsverktyg i listform baserat på veckor. I tjänsten ser man en vecka i taget och man kan endast lägga till punkter per vecka (inget hindrar att skriva ett datum i punkttexten dock). De punkter som inte prickats av spänner vidare över nästkommande veckor tills punkten prickas av.
För en slutanvändare behövs endast att man använder sin browser och går till en hypotetisk live-länk. För att kunna köra ToDoo på sin egen webserver krävs att man installerar Flask som är ett webramverk i Python 2.x. Installationsinstruktioner för Flask finns här.
En sak som lätt kan bli ett pitfall är att databasen och även katalogen databasen ligger i måste ha rätt permissions. Användaren bör vara webservern som bör ha rwx, alltså på både databasfilen OCH katalogen databasfilen ligger i (detta för att SQLite lägger temporära filer i katalogen).
Här nedan kommer tjänstens olika funktionalitet att beskrivas i bild och ord.
Från signup-sidan kan man registrera ett konto för ToDoo. Detta görs genom att skriva in ett önskat användarnamn och lösenord och trycka på 'Register'. Finns användarnamnet redan i databasen visas ett felmeddelande.
Från login-sidan kan man logga in till tjänsten. Man skriver in sitt användarnamn och lösenord (som man naturligtvis har registrerat innan) och trycker på 'Login'. Är användarnamnet eller lösenordet felaktigt visas ett felmeddelande och man får försöka igen.
Den nuvarande veckan visas och dess punkter listas. Har man klarat av alla punkter eller om det t.ex. är första gången man loggar in så syns istället texten "No tasks." för att indikera på att det inte finns några aktualle punkter att ta sig an.
Man kan lägga till en punkt på den aktuella veckan genom att skriva in texten som ska visas och trycka på knappen "Add task". Punkten läggs då till i databasen och man får en bekräftelse ovan på sidan att en punkt har lagts till. Här syns också alla attribut för en viss punkt. Från vänster: tidsspannet (just nu från vecka 50 och framåt, eftersom vi inte checkat av punkten), checkrutan som man checkar av punkten med, panic-toggle-knapp (ifall man vill att punkten ska sticka ut lite extra), remove-knapp (ta bort punkt permanent), punkttexten (i.e. vad som ska göras för att man ska få checka av punkten).
När man checkar av en punkt markeras detta dels genom att checkrutan blir förkryssad, men även genom att all text blir grå/inaktiverad. Tidspannet för punkten (längst till vänster) har även fått en slutvecka för när punkten checkades av. Eftersom det är tänkt att punkterna inte ska spänna över flera år så visas endast veckorna i tidsspannet och inte året.
Man kan markera en punkt som extra viktig, eller som panic. Texten blir då röd och i fetstil, så att den signalerar högre prioritet.
En punkt visas alltid så länge den aktuella veckan är inom tidspannet för punkten. I bilderna nedan har en andra punkt lagts till i vecka 1 2012, vilken är slutveckan för första punkten. Visas sedan vecka 2 2012 så visas inte den första punkten längre, eftersom den blev klar vecka 1 2012.
Veckan som visas först när man loggat in är den faktiska veckan (utifrån webserverns tidsinställning). Sedan kan man välja att gå framåt veckovis eller årsvis genom att trycka på pil-länkarna vid sidorna om texten som visar vilken som är den aktuella veckan för listvisningen. Man kan även lägga till punkter på både föregående och kommande veckor, likaså checka av punkter i föregående och kommande veckor.