I samband med att VK drog igång sin granskning om sjuksköterskornas situation och löner ville de ha ett crowdsourcing system liknande räntekartansvd.se. Vi bestämde oss för att, likt SvD, använda Googles tjänster för att skapa systemet. För oss var syftet främst att undersöka om Spreadsheets och Forms var något att satsa på vid framtida projekt istället för någon egen lösning med exempelvis en databas. De dynamiska formulären kopplade till kalkylbladen ska ju vara väldigt smidiga att använda sägs det. Du kan se resultatet här, och läsa mer om lite tankar och funderingar om hur det fungerade nedan.

Systemet är uppbyggt av ett formulär (Google Forms) som är kopplat till ett kalkylblad (Google Spreadsheets). Kalkylbladet fylls i automatiskt allt eftersom svar skickas in genom formuläret. Datan hämtas som json mha Googles API och presenteras på en Google Map och i en tabell. All hämtning och visning av datan sker med hjälp av javascript i form av ajaxanrop, Googles APIer samt JQuery.

I överlag väldigt smidiga system och APIer att arbeta med. Google Maps API är väldokumenterat och kraftfullt, och likaså geocodingen. Spreadsheet APIet är i princip bara att anropa en url och slänga med några querystrings om du vill sortera eller söka på något särskilt, vilket är väldigt lättanvänt.

Är det något man kan klaga över är det Google Forms. Att sätta upp ett formulär gick snabbt och smidigt, däremot kan de inbyggda valideringsfunktionerna lämna något att önska. I början hade vi ingen validering på något fält, men det visade sig att löner inlämnade på formen “22.100” (med en punkt) blev konverterade till “23.40.00”. Efter en lång stunds huvudbry insåg vi att Google tolkade det som 22 timmar och 100 minuter, vilket i sin tur blir 23 timmar, 40 minuter och 0 sekunder.

(Upptäcker nu i skrivande stund att det finns några liknande under yrkesår. Exempelvis har “2.5” blivit 02.05.00)

Efter att vi satt att endast nummer var tillåtna som lön fick vi bara svar i korrekt form. Däremot får användarna endast ett generiskt “ett fel uppstod i formuläret” när de försöker posta något felaktigt, vilket inte är särskilt användarvänligt.

En annan sak att tänka på är att cachea de koordinater man får från Googles geocoding. Istället för ett anrop per markör (1000 st i skrivande stund) per visning räckte det med ett anrop per ort – i vårt fall ca 20 totalt.

Sen att folk skickar in tvivelaktiga uppgifter (99 årig man, tjänar 99999 i månaden med 5/5 i trivsel (såklart)) är något man inte slipper undan då man tar hjälp av allmänheten. Men säger vi att 10% av svaren går bort har våra journalister fortfarande 900 inskickade löner att använda och analysera – inte alls dumt!

Rekommenderas då Googles tjänster för denna typ av crowdsourcing? Ja, säger jag – men bygg formuläret med hjälp av APIet istället för att använda det dynamiska, allt för att användarvänligheten ska bli så hög som möjligt.