– Jeg skraper priser på dagligvarer og mat fra butikker i Norge, og visualiserer dette med produktinformasjon og prishistorikk slik at du kan se prisendringer og tilbud.
Det forteller Helge Sverre Hessevik Liseth, som står bak hobbyprosjektet Kassal.app – som han selv omtaler som en "Prisjakt-lignende" tjeneste for norske dagligvarer.
I tillegg til prissammenligning har tjenesten kart over butikker, integrasjon mot brukernes bankkontoer, samt API-er andre utviklere kan bruke til å lage apper og andre tjenester basert på dataene Kassalapp samler inn.
– Jeg visste hva jeg ville lage, og at jeg ville ha en alt-i-ett-løsning med Prisjakt og økonomioversikt koblet sammen. Så da bare lagde jeg det, sier Helge Sverre.
Reverse engineering og skraping
Helge Sverre er til daglig teknologisjef (CTO) og fullstack-utvikler i Tjommi.
Selv om Kassalapp bare er et sideprosjekt han har ved siden av hovedjobben i Tjommi, har erfaringen derfra kommet godt med i arbeidet med Kassalapp. Begge løsningene handler til en viss grad om sammenligning av priser.
I tillegg til at du kan sammenligne prisene på varer som selges i norske dagligvarebutikker, gir Kassalapp deg lister over varer som har falt eller økt mye i pris.
Helge Sverre forteller at løsningen fungerer ved å skrape nettbutikkene til de store matkjedene, i tillegg til at han har "reverse engineer-et" API-ene til nettbutikkene eller nettbutikkenes mobilapper. For Norgesgruppens butikker brukes Norgesgruppens egne API-er.
For øyeblikket inneholder tjenesten vareinformasjon fra Norgesgruppens butikker, altså Meny, Kiwi, Joker og Spar, i tillegg til Oda, Bunnpris, Havaristen, Holdbart.no og Engrosnett.no.
– Jeg mangler foreløpig varer fra Rema og Coop, siden jeg ikke har noe sted å hente data fra. Men jeg er i kontakt med dem for å se om det lar seg gjøre, sier Helge Sverre.
Dette blir Tjommi-CTO-en (26) stressa av: - Får klump i halsen
«API-et fikk jeg opp på en helg da jeg hadde lite å gjøre.»
Bygget API-er for andre utviklere
I tillegg til all funksjonaliteten som er beregnet på sluttbrukere av Kassalapp-tjenesten, har Helge Sverre bygget API-er andre utviklere kan bruke for å hente ut informasjon om produkter, priser eller butikker.
Hvem som helst kan få tilgang til API-ene ved å registrere seg som bruker på Kassal.app og deretter opprette en API-nøkkel på profilsiden.
– API-et fikk jeg opp på en helg da jeg hadde lite å gjøre, sier Helge Sverre.
Han forteller at API-et gir deg tilgang til mye av det han har samlet inn, som produkter og butikker. Det er også mulig å bruke API-et til å gjøre oppslag på EAN-koder, altså koden som ligger i strekkoden på varene.
Bruker Laravel og PHP
Jobben med å lage Kassalapp startet i januar 2022, men først utpå sommeren i fjor begynte Helge Sverre å jobbe for fullt med den.
Dette er stacken han har brukt:
- PHP-rammeverket Laravel med Laravel Livewire
- Tailwind CSS
- Alpine.js
- Hostet i AWS med Laravel Vapor
- AWS RDS som database
- Laravel Vapors cache-driver for DynamoDB
- Nordigen for å koble til kunders bankkonti
Kombinasjonen av Laravel, Alpine.js, Tailwind CSS og Livewire kalles gjerne TALL stack, og er Helge Sverres favoritt-stack – i tillegg til Vue.
I tillegg til teknologiene i listen over, har han også brukt Chart.js for å lage grafer og Figma til å tegne ikoner til butikkoversiktene på kassal.app.
«...så slipper man å tenke på serveren, på DevOps og sånt tullball.»
– Det vanskelige med å bygge Kassalapp var å få det til å se pent ut, men med Tailwind er det lett. Og så speeder det opp ting å bruke Laravel Vapor så man slipper å tenke på serveren, på DevOps og sånt tullball.
Kassalapp er tilgjengelig som mobilapp på Android i tillegg til web. Foreløpig er det ikke noen iOS-app.
For å gjøre den om til en app har Helge Sverre brukt PWABuilder. Han har skrevet en guide til hvordan han har klart å sette opp en PWA som hostes hos AWS ved hjelp av Laravel Vapor her – det krevde nemlig litt ekstra "magi" å få til.
Tore lager sjokk-rapport over Dagbladet.no: - Ikke sjokkert, sier redaktør
Strekkodeskanner og bankintegrasjon
Selv om Kassalapp er "bare" et sideprosjekt, har Helge Sverre store ambisjoner om å bygge en best mulig tjeneste. Han bruker derfor ledige stunder til å utvikle nye funksjoner.
Nå har tjenesten for eksempel et kart over butikker, slik at du kan finne ut hvilke butikker som er i nærheten og åpningstidene til disse.
– Jeg har også laget en strekkodeskanner som bruker QuaggaJS for å gjøre oppslag på strekkoden. Her bruker jeg også tekst-til-tale-API-et i nettleseren for å lese opp informasjon, forklarer Helge Sverre.
Noe av det han er mest fornøyd med å ha fått på plass er integrasjon mot bankkontoer. Takket være PSD2-API-ene til bankene er det mulig for brukere av Kassalapp å koble tjenesten opp mot sin egen bankkonto, hente ut banktransaksjoner og på den måten få oversikt over pengeforbruket.
Tjenesten kan automatisk identifisere at du har kjøpt noe fra en matbutikk. Hvis du vil kan du ta bilde av og laste opp kvitteringen som tilhører det aktuelle innkjøpet.
God trafikk, men lite penger
– Har du planer om å tjene penger på tjenesten?
– Ambisjonen er å tjene noen lapper, men jeg fokuserer ikke så mye på det. Jeg ville ha tjenesten, og bygde den.
Tjenesten har i dag noen affiliate-lenker der han får kommisjon hvis noen kjøper noe via lenkene.
«Hittil har jeg tjent 400 kroner, så dette er ingenting å bli rik av.»
– Men hittil har jeg tjent 400 kroner, så dette er ingenting å bli rik av. Jeg vil heller ikke lage en tjeneste full av reklame, sier Helge Sverre.
Det er foreløpig noen hundre registrerte brukere, og totalt har det i løpet av de siste 28 dagene vært 63.000 sidevisninger.
Planen videre nå er å forbedre og utvide løsningen. Noe av det viktigste i første omgang er å få tilgang til produktene til Rema og Coop. Det er også mulig det kommer en smart handlelistefunksjon, samt prisvarsling slik at man kan få en e-post hvis en vare går ned i pris.
– Den hellige gral er å få integrert Trumf, Æ og Coop, slik at du kan få alle de digitale kvitteringene dine integrert i økonomioversikten.