Spritjakt.no viser deg polets hemmelige tilbud

Jussen gir Mats kaldsvette, men å jobbe med polets API og Google Cloud er en lek.

Spritjakt.no spør hver dag om prisene fra Vinmonopolets API. Går prisen ned, kan du dermed finne "tilbudet" gjennom tjenesten. 📸: Ole Petter Baugerød Stokke
Spritjakt.no spør hver dag om prisene fra Vinmonopolets API. Går prisen ned, kan du dermed finne "tilbudet" gjennom tjenesten. 📸: Ole Petter Baugerød Stokke Vis mer

- Ideen kom da jeg snakket med en venn som jobber på polet. Han hadde en visjon om en internasjonal pris-sammenligningstjeneste for alkoholholdige varer, forteller utvikler Mats Løvstrand Berntsen til kode24.

- Jeg hadde som mange andre informatikk-studenter levert oppgaver som brukte Vinmonopolets produkter tidligere, blant annet en nettside som ligner fælt på alkiskalkis.no, fortsetter han.

Disse prosjektene baserte seg på nedlasta CSV-filer, som begrensa mulighetene for blant annet oppdatert prissammenlikning. Men da Berntsen fikk høre at polet hadde fått sitt eget API, virka Prisjakt-aktige tjenester mer realistisk - og han starta på det som i dag heter Spritjakt.no.

Mats Løvstrand Berntsen er 24 år gammel og har studert informatikk ved Høgskolen i Østfold. - Når jeg ikke surrer på jobb eller er ute på tur, bruker jeg litt for mye tid på alt av smart-hjem løsninger og diverse småprosjekter. Jeg har blant annet designet og 3D-printet en automatisk kattemater i et forsøk på å slanke pusen, forteller han. 📸: Privat
Mats Løvstrand Berntsen er 24 år gammel og har studert informatikk ved Høgskolen i Østfold. - Når jeg ikke surrer på jobb eller er ute på tur, bruker jeg litt for mye tid på alt av smart-hjem løsninger og diverse småprosjekter. Jeg har blant annet designet og 3D-printet en automatisk kattemater i et forsøk på å slanke pusen, forteller han. 📸: Privat Vis mer

- Ideen er at Spritjakt skal være alkoholverdens svar på Prisjakts prishistorikkfunksjon. Selv om man nok ikke vil se de samme variasjonene i pris som man gjør på andre typer produkter, er det både nyttig og interessant å kunne se hva en vinflaske har kostet tidligere, forteller Berntsen.

- Det er en flott mulighet til å finne vin og øl man ikke ellers ville lagt merke til, og kanskje gjøre et varp i samme slengen.

Serverløst hos Google

Det er ulovlig med annonserte tilbud på alkohol i Norge. Men priser kan selvfølgelig justeres - og det gjør de også, blant annet på Vinmonopolet, selv om de ikke viser deg det.

Spritjakt.no henter inn prisene på polvarer fortløpende, så den kan vise deg hvordan de endrer seg. For eksempel at du nå kan kjøpe en flaske I Custodi Alnus Etna Rosato fra 2018 til 179,90 kroner - nylig satt ned fra 259,90 kroner.

Berntsen, som til daglig jobber som backend-utvikler hos Innovasjon Norge, skryter av polets API-er, som du finner dokumentasjon for på api.vinmonopolet.no.

- Spritjakts backend er serverløs, og drives av et par Google Cloud Functions i Node.js, som daglig ber Vinmonopolets API om produktene som har endret seg det siste døgnet. Her filtreres produktene uten prisendring ut, mens de med ny pris oppdateres i min database, forteller Spritjakt-utvikleren.

«Men det er veldig enkelt å komme i gang med, som er veldig forlokkende når man er ivrig og utålmodig.»

Databasen er i dette tilfelle sanntidsdatabasen i Googles Firebase-pakke.

- Den fungerer veldig godt til enklere nettsider og applikasjoner, men du vil fort merke at den er begrensa om du trenger mer avanserte spørringer eller lignende. Men det er veldig enkelt å komme i gang med, som er veldig forlokkende når man er ivrig og utålmodig, smiler Berntsen.

Hosting "en lek"

Framsida til Spritjakt er skrevet i React, med drahjelp fra create-react-app, og stilet med tradisjonell CSS, med drahjelp fra react-transition-group for animasjoner og nivo for grafer.

- Jeg er helt forelska i CSS-Grid, og har brukt det jevnt gjennom prosjektet, forteller Spritjakt-utvikleren.

- Hele prosjektet hostes i Google Firebase. Jeg hadde noe erfaring med å sette opp prosjekter der fra tidligere. Med en React-frontend og serveløs backend er det en lek å bruke Firebase CLI til utvikling, debugging og publisering. Man kommer også langt på forbrukskvotene som følger med den gratis Spark-planen deres.

Vil du se på kildekoden til Spritjakt? Berntsen har lagt alt ut på Github, i anledning artikkelen!

På api.vinmonopolet.no får du dokumentasjonen på API-et Spritjakt.no bruker.
På api.vinmonopolet.no får du dokumentasjonen på API-et Spritjakt.no bruker. Vis mer

Juridisk grenseland

- Hva er planene videre for Spritjakt?

- I første rekke tror jeg det er på høy tid med en del kodeopprydding og refaktorering. Sånt uteblir jo ofte i kampens hete når det viktigste er å få ting til å fungere, svarer Berntsen.

I tillegg er planen å skrive om hele applikasjonen til Typescript, og å jobbe med søkefunksjonen. Sistnevnte skal være noe vrient med Firebase sin realtime-database.

- Norge har veldig strenge lover når det kommer til ting som kan kalles alkoholreklame. Har du gjort deg noen tanker rundt jussen?

- Jeg har hatt et par øyeblikk hvor jeg har stresset og kaldsvettet over hvorvidt nettsiden faktisk er lovlig. Jeg er jo ikke jurist, men tenker at den i beste fall er i grenseland med tanke på norsk lov. Formålet bak nettsiden er avgjørende, og så lenge det er en nøktern fremstilling av prishistorikk, tenker jeg at det ikke direkte er for å fremme salg av alkohol, svarer utvikleren, som ikke er alene om å bruke API-et til slikt.

- Etter å ha lest gjennom vilkårene til Vinmonopolet og bruk av deres API, har jeg i alle fall ikke sett at det er noen problemer med bruken av API-et.