Hack13 kopi
>

Dette er PLUKK: et pantesystem for plast – og et resultat av 24 timer med intenst arbeid

Redaksjonen 
3. okt. 2019

Hva skjer når du setter syv dyktige utviklere i et rom og gir de et problem som skal løses på 24 timer? Det fant vi ut da vi arrangerte et live hackathon som vi streamet direkte på Youtube. Resultatet ble en webapplikasjon som forhåpentligvis skal gjøre verden til et litt bedre sted.

Se oppsummering av døgnet her:

Fredag 01. februar var den store dagen kommet. 7 Bouvet-utviklere skulle bruke 24 timer på å lage noe konkret som kunne bidra til å redusere mengden plast i havet, og fra kl.12:00 kunne alle som var interessert følge med på hvert sekund av prosessen live via YouTube. Til slutt endte utviklerne opp med å lage en webapplikasjon for panting av plast, samt en morsom lotterimaskin som skulle bidra til mindre kasting av sneip, snus og tyggis.

Les mer om hvordan oppgaven ble valgt her!

For å gi dere som ikke så på en oppsummering av det utfordrende døgnet og webapplikasjonen, har vi snakket med noen av utviklerne på teamet. De er veldig fornøyde med resultatet, og håper og tror at dette kan være noe som i lengden vil kunne bidra til mindre plast både i hav og på land.

Slik ble PLUKK til

Britt Marie Skaflestad og Kamilla Nyborg Gregertsen var begge med i hackathon-teamet. De kan fortelle at det fort ble enighet om at en plastpanteordning var veien å gå, selv om det også kom frem flere andre gode ideer under idémyldringen i begynnelsen av hackathonet.

Løsningene som ble laget under hackathon
Under hackathonet ble det både laget en panteløsning for plast og morsom lotterimaskin.

– I begynnelsen diskuterte vi frem og tilbake mellom flere forskjellige løsninger. Alt i fra ryddeapp og ingrediensliste-scanner, til sensorer i havet og droner som plukker søppel var oppe til diskusjon. Utfordringen var å finne en idé som både ville være mulig å levere på 24 timer, og som alle var motiverte til å jobbe med. Da plastpanteideen kom på bordet, var det raskt stor enighet om at dette ville vi gjøre. I tillegg hjalp det mye at både publikum og plastkoordinator fra Bymiljøetaten i Oslo kommune, Anja Stokkan (som kom for å bistå teamet med sin ekspertise), støttet denne ideen, forteller Kamilla.

Britt legger til at det var viktig for teamet å lage en løsning som gjør det enklest mulig for sluttbruker, som kan nå ut til et stort publikum og som alle virkelig tror er mulig å realisere i etterkant. Plastpanteideen tikket alle disse boksene, og ved god hjelp fra noen interne UX-designere, fikk webapplikasjonen navnet PLUKK.

Dette er PLUKK

Først og fremst er PLUKK en webapplikasjon, som ved hjelp av QR-kode skal kunne registrere sekker med plast som leveres til avfallsmottak eller gjenvinning. Når posen leveres og registreres på det aktuelle avfall- eller gjenvinningsmottaket, skal du få en økonomisk belønning basert på vekten av plast som leveres. Implementering av løsning og levering av plast er tenkt å kunne knyttes opp til et eksisterende avfall- eller pantesystem. Den overordnede tanken er at et system som er så lettfattelig som mulig, der du får økonomiske belønning for pant av plast.

Plukk_webapplikasjon

For deg som er interessert i hvordan løsningen er bygd opp, er dette Britt og Kamillas oppsummering av hvilken teknologi som er brukt, og hvordan den er anvendt:

Det første som ble gjort:

  • Rent teknisk startet vi med å legge kodeprosjektene på en åpen github-konto, hvor kun teamet hadde admin-tilgang. Dette gjorde vi for å sikre at publikum kunne legge inn forslag til endringer og funksjonalitet ved bruk av «pull request». Vi fikk også på plass automatisk bygging av løsningen til Azure websites, slik at det var mulig å teste underveis.

Dette er komponentene som ble laget:

  • En PWA (Progressive Web Application) laget i React. Her brukte vi en ferdig komponent for QR-kode-scanningen, som heter react-qr-code, og ikoner fra react-icons. PWA-en innebefatter en QR-kode-leser, en informasjonsside som viser saldo og en profilside for å ta ut saldo eller for å gi penger til veldedige formål.
     
  • Rest API i .NET Core med logikk som genererer QR-koder, aktiverer QR-koder på plastsekkene og som gir mulighet for et eventuelt mottak å registrere at sekken er kommet inn ved å scanne samme QR-kode. API henter ut saldo og annen statistikk for mengde plast som er scannet både for bruker og gitt lokasjon. API skal også håndtere anonyme eller innloggede profiler, samt utføre utbetaling til en person eller valgfri veldedig organisasjon.
     
  • NoSQL Cosmos-database i Azure Storage, for lagring av QR koder og brukerdata (GDPR er her ivaretatt på en enkel og håndterlig måte, siden "partition", eller nøkkelen i databasen, er selve bruker-Id'en.
     
  • Webapplikasjon for mottak, med QR-kode-scanner som gir plastsekkene verdi i profilsiden.
     
  • Azure Resource Group for deploy og håndtering av webapplikasjoner og Rest API.

Etter endt idemyldring på hackathobet, ga Kristian Nøstdal en liten oppsummering av hva de hadde planlagt før arbeidet begynte. Denne kan du se her.

Slik skal den brukes:

  • PLUKK-webapplikasjon skal først generere QR-koder som skal benyttes på PLUKK-plastsekk. QR-kodene ligger registrert i en database som "inaktiv"
     
  • Sluttbrukers oppgave er først å samle inn plast i en plastsekk med PLUKK-QR-kode, og deretter skanne koden med kamera eller QR-leser på sin telefon. Når sluttbruker gjør dette, blir QR-koden "aktivert" i databasen, og dermed koblet til brukeren. Det er kun mulig å aktivere den samme QR-koden én gang.
     
  • Sluttbrukerne er ikke avhengig av å lage profil, men må opprette en profil når de ønsker å ta ut saldoen som er opparbeidet, eller gi til veldedig formål om de ønsker det.
     
  • Videre leverer sluttbruker plastsekken til et eksisterende mottak som har implementert PLUKK. Dette kan være alt i fra vanlige søppelordninger, flaskepant-stasjoner, avfallsmottak eller resirkuleringsstasjoner.
     
  • Når plastsekken mottas og scannes, blir informasjonen som er knyttet til plastsekk oppdatert. Dette innebærer verdi basert på vekt av plastsekken, lokasjon for mottak og annen data av interesse.
     
  • Bruker ser til slutt oppdatert informasjon om sin saldo i webapplikasjonen, samt annen informasjon om pantet plast. Tanken er også at denne informasjonen skal kunne deles i sosiale medier.

Det famøse sideprosjektet

Som om ikke det var nok jobb å lage PLUKK i løpet av de 24 timene, ble det i tillegg satt i gang et sideprosjekt. Litt fordi det var en idé som var godt likt av gruppa i idéfasen, og litt fordi to av utviklerne på teamet, Martin Gravråk og Nikhil André Luthra, hadde et stort ønske om å dra inn Labben (vårt eget makerspace) på en eller annen måte.

Jesper fikser sneipomat
Jesper Andersson, utvikler i Bouvet, kom til studioet og hjalp til med å bygge på sideprosjektet.

– Sideprosjektet var kort forklart å lage en type lotterimaskin som gir deg en belønning dersom du putter sneip, snus eller tyggis oppi. Dette er de tre verstingene som blir kastet på bakken daglig, og de inneholder alle plast. Tanken bak denne maskinen var at vi ønsket å lage noe morsomt, men som også kan bidra til å redusere plastforsøpling. Maskinen er bemerkelsesverdig, og vi tror at om den brukes i rett miljø, så kan den øke bevisstheten rundt håndtering av plast, forklarer Nikhil André.

Mer spesifikt består maskinen av en ESP8266 mikrokontroller, 7-segment 8-bit display, steppermotor og IR-sensorer for å detektere at en sigarett blir sluppet nedi. De vitale delene av maskinen ble selvsagt produsert i vår egen 3d printer. Det hele ble montert inni en resirkulert konfekteske.

– Vi elsker jo å lage slike ting på Labben vår, og vi visste vi kunne få til et artig innslag her med hjelp av kollegaen vår Jesper, som faktisk kom til studioet etter å ha sett på hjemmefra, forteller Nikhil og Martin.

PS. Når vi først er inne på det at Nikhil og Martin G liker å lage morsomme dingser, må du få med deg da Nikhil hacket hev/senk-pulten til Martin G og Britt med sin hjemmelagde "desk bot".

Takknemlige for god hjelp

I løpet av hackathonet støtte utviklerne på flere «humper i veien», men fikk god hjelp fra publikum. De vil derfor benytte anledningen til å takke alle som så på og bidro!

– Vi støtte på noen problemer underveis, og flere av disse tror jeg faktisk at vi hadde løst mye lettere om vi satt på kontoret og hadde en vanlig arbeidsdag. Men med tanke på at flere av oss brukte nye teknologier som vi ikke hadde like stor erfaring med, var det veldig nyttig med hjelp fra publikum både fra GitHub og kommentarfeltet på Youtube. Der kom det nemlig inn hjelp på både store og små problemer fra erfarne og dyktige folk som hadde lyst til å hjelpe. Noe av den viktigste hjelpen vi fikk, var likevel fra noen interne UX-designere. Denne hjelpen dro virkelig løsningen i land. I den fasen gikk applikasjonen fra å være en standard svart/hvit webapplikasjon uten noen wow-faktor, til å bli et produkt man kunne være stolt av, påpeker Kamilla.

Veien videre

Det jobbes for øyeblikket med å se på hvordan PLUKK kan testes ut i praksis, og når det kan settes i gang videre arbeid. Utviklerne selv har stor tro på at dette kan være interessant for flere aktører, fordi det ikke er nødvendig med store investeringer i verken system eller ny infrastruktur for å implementere en slik panteordning for plast.

– Jeg tror at konkrete tiltak som PLUKK kan bevise at IT kan gjøre store utfordringer som plast-forurensning mer overkommelig og mindre håpløst. Panting av flasker er en velfungerende ordning i Norge, og det er nærliggende å tenke at en panteordning for plast ville ført til bedre håndtering av plast, både fra private husholdninger og fra næringslivet. Vi tror også at en panteordning vil gi ytterligere motivasjon for å rydde plast som er kommet på avveie i naturen, forteller Britt.

Kamilla poengterer at de også leverte en enkel POC (proof of concept) for mottaksapplikasjonen, men at den er avhengig av samarbeid med aktuelle aktører for implementering av løsningen i et mottak. Dette jobbes med fortløpende, og det vil mest sannsynlig komme oppdateringer på hva som skjer videre snart – så følg med!

Se hele livesendingen her:

Temaer