Eget prosjekt · mobil + datapipeline

Matkupp: hva betyr egentlig et godt tilbud?

En lav pris og et stort tilbudsmerke er ikke alltid det samme som et reelt prisfall. Matkupp bruker butikkens egen prishistorikk som sammenligningsgrunnlag.

Repository: melk-og-brod

Omfang: React Native / Expo-app og en separat TypeScript-pipeline for prisdata.

Ansvar: App, prislogikk og datainnhenting samlet i ett eget prosjekt.

Problemet

For å vurdere et tilbud må man vite både hva varen koster nå og hva den vanligvis har kostet i samme butikk. Pakkestørrelser og måleenheter gjør også sammenligning vanskeligere.

Arkitekturen

Kassal.app → synkroniseringsjobb → products.json
                                      ↓
                               Expo / React Native
                               lokal cache og filtrering

Hvorfor beregne utenfor appen?

Synkroniseringsjobben henter prisdata og beregner prisfall før resultatet publiseres som en statisk katalog. Appen henter katalogen, cacher den og søker og filtrerer lokalt. API-tokenet til datakilden ligger ikke i app-bundelen.

Avveining: Et statisk datasett er enkelt å distribuere, men er et øyeblikksbilde. Prisene er avhengige av siste vellykkede synkronisering og kvaliteten på datakilden.

Hvorfor butikkens egen median?

Et prisfall vurderes mot samme butikks median de siste 90 dagene. Det skiller historisk prisendring fra spørsmålet om hvilken butikk som er billigst akkurat nå.

Avveining: Medianen gir et referansepunkt, men kan ikke bevise at en kampanje er misvisende. Begrenset historikk, endret pakningsstørrelse og variasjon i datagrunnlaget kan påvirke resultatet.

Et konkret teknisk problem: sammenlignbare enhetspriser

«2 × 250 g» og «500 g» beskriver samme mengde. Prislogikken håndterer blant annet multipakker, gram og kilo, volum og omtrentlige vekter. Dette er nødvendig for at pris per enhet skal bli meningsfull.

Se beregningene, testtilfellene for prislogikken og datapipelinen.

Kvalitet og begrensninger

Repositoryet inneholder tester for blant annet prislogikk, tilbud, kampanjer og handlekurv. Appopplevelsen avhenger fortsatt av hvor ferske og komplette prisdataene er. Denne prosjektgjennomgangen beskriver implementasjonen; den presenterer ikke målte besparelser eller brukertall.