Visjon og brukerverdi
EcoShelf samler det du faktisk har av mat og relaterte varer i ett system: kjøl, tørr, frys og valgfritt delt skap. Målet er mindre matsvinn, lavere handlekostnader og mindre friksjon i hverdagen — med tydelige datoer, påminnelser og smarte verktøy når du vil handle eller lage mat.
Arkitektur (appen + sky)
Klienten er bygget i Flutter (Dart) og leverer samme kodebase til iOS og Android. Bak ligger Supabase: PostgreSQL-database, innebygd autentisering, lagring og Edge Functions (Deno) for oppgaver som ikke bør ligge i appen — API-nøkler, betaling, tredjeparts-KI-proxy og bildeoppslag.
Hvorfor Edge Functions?
Hemmeligheter (OpenAI-nøkkel, Apple shared secret, bilde-API-nøkler) ligger kun på serveren. Appen sender en kortlivet bruker-token (JWT) og får tilbake resultat — ikke rå nøkler. Det er et standard mønster for skalerbare forbrukerapper.
Data, personvern og tilgangskontroll
Brukerdata ligger i databasen med Row Level Security (RLS): hver rad knyttes til din bruker-id, og policyene hindrer at andre kan lese eller endre dine varer. Delt matskap er modellert med eksplisitte medlemskap og egne policyer slik at synlighet følger reglene — ikke «tilfeldig tilgang».
App Store / Google Play: Personvernerklæring for selve appen (kan lenkes i App Store Connect) ligger på hazher.no/ECOSHELF/Privacy/. Nettstedet hazher.no har egen personvernerklæring for besøk på siden.
Matskap og delt lager
«Matskapet» er den sentrale varelisten. Varer kan ha kategori, lagringssted, utløpsdato og pris der det gir mening. Delt inventory lar husstanden dele utvalgte varer eller skap med inviterte medlemmer — nyttig for familier og kollektiv. Endringer synkroniseres via skyen slik at alle ser oppdatert informasjon når nett er tilgjengelig.
Skanner, kvittering og KI
Skanneren støtter blant annet strekkode for å slå opp produktdata der kildene svarer (f.eks. åpne produktdatabaser). For kvitteringer og skap-bilder brukes sky-KI innenfor kvoter: gratis nivå har begrensninger, mens Pro gir høyere eller ubegrenset bruk avhengig av innstilling — se appen for gjeldende grenser.
KI-kall går gjennom kontrollerte proxy-funksjoner; innholdet behandles i tråd med formålet (tolke tekst/bilde for å foreslå varer), ikke for å selge tredjeparts reklame basert på kvitteringstekst.
Oppskrifter (EcoShelf Pro)
Oppskriftsfanen er en Pro-funksjon. Sky-KI foreslår retter basert på det du faktisk har registrert, markerer det du eventuelt må kjøpe, og kan koble mot handlelisten. Motoren verifiserer ingredienser mot matskapet med fuzzy matching og «basisvarer» (salt, olje, …) slik at «har alt» og detaljvisning ikke motsier hverandre.
Produktbilder og oppskriftsbilder
Varer i matskapet: Beste treff får du med strekkode mot produktdatabaser — da kan vi vise faktiske produktfoto der katalogen har dem. Uten strekkode brukes kategori-baserte illustrasjoner eller søk mot bilde-API — det er ment som visuell hjelp, ikke en garanti for riktig merke eller emballasje.
Oppskriftsbilder: Serveren kan søke etter relevante matfoto (f.eks. Unsplash/Pexels) ut fra rettens navn, med filtrering mot åpenbart irrelevante treff. Det krever at API-nøkler er satt i sky-prosjektet. Uten nøkkel faller appen tilbake til en enklere illustrasjonspool.
EcoShelf Pro og betaling
Pro aktiveres via App Store / Google Play (in-app-kjøp/abonnement). Kvitteringen verifiseres på server (Edge Function) mot plattformens API-er, og kontoen din får oppdatert Pro-status i databasen. Dette skal skje automatisk uten manuell behandling per bruker.
| Område | Gratis / basis | Pro (indikativt) |
|---|---|---|
| Matskap, lister, mye grunnleggende | Ja | Ja |
| Sky-KI oppskrifter + full flyt | Nei / begrenset demo | Ja |
| Annonser | Kan vises | Ofte uten (se app og vilkår) |
Eksakt funksjonsliste endres med app-versjon; sjekk App Store-beskrivelse og innstillinger i appen.
Drift for mange brukere
Designet er «stateless» der det lønner seg: autentiserte API-kall, horisontalt skalerbar database, og hemmeligheter sentralt. Bilde- og KI-kall bør caches der det er mulig for å spare kost og respektere leverandørenes rate limits. Ved ekstrem vekst flyttes tyngdepunktet til caching, køer og eventuelt dedikert bilde-CDN — uten at sluttbrukeren må «konfigurere noe».