~/projects/cyclix ▸ Eget prosjekt · 2026
CYCLIX_
Mobil SaaS-app for industrielt vedlikehold. Administrer maskiner, vedlikeholdssykluser og reservedeler digitalt — med AI-drevet typeskilt-gjenkjenning via Claude API, rollebasert teamadministrasjon og automatiske push-varsler.
Indie SaaS
fullt selvbygget
3 roller
Admin · Planlegger · Tekniker
Claude Haiku
AI typeskilt-gjenkjenning
iOS og Android
Cross-Platform med Expo
// Skjermbilder

// Funksjoner
AI typeskilt-gjenkjenning
Ta et bilde av et maskintypeskilt — Claude Haiku analyserer det og fyller automatisk inn navn, produsent, modell og serienummer. AI-en kjører som en Edge Function, og API-nøkkelen forlater aldri enheten.
Vedlikeholdshåndtering
Opprett vedlikeholdssykluser med intervaller, beregn forfallsdatoer automatisk og registrer protokoller — inkludert reservedeler, antall, kostnader og PDF-opplasting.
Dashboard og statusoversikt
KPI-kort for forfalte, denne ukens og denne månedens vedlikehold. Fargekodede indikatorer og en filtrerbar liste over alle kommende avtaler i ett blikk.
Rollebasert teamhåndtering
Tre roller med trinnvise tillatelser: Admin (full tilgang), Planlegger (CRUD anlegg og vedlikehold), Tekniker (lese og protokollere). Teaminvitasjon via generert kode med utløpsdato.
Anleggsregister
Opprett, rediger og arkiver maskiner etter avdeling. Full vedlikeholdshistorikk per anlegg — inkludert bilder, dokumenter og reservedelsbruk.
Push-varsler
pg_cron sender daglig kl. 07:00 UTC en forespørsel til Edge Function-en, som identifiserer alle forfalte vedlikeholdsoppgaver og varsler organisasjonsmedlemmer via Expo Push API.
// Tech Stack
// Arkitektur-høydepunkter
FOR UPDATE Lock i invitasjons-flyten
Innløsing av invitasjonskoder bruker en PostgreSQL-radlås for å forhindre race conditions ved samtidig tilgang — korrekt konkurransehåndtering i et flerbruker-miljø.
AI som serverløs Edge Function
Typeskilt-gjenkjenningen kjører som en Supabase Edge Function: bilde og prompt sendes serverside til Claude Haiku, API-nøkkelen forlater aldri enheten og kostnadene forblir kontrollerbare.
Multi-tenant-isolasjon via Row Level Security
Hver databasespørring begrenses til organisasjonsnivå via RLS-policyer — brukere ser kun data fra sin egen organisasjon, uten filterlogikk i app-koden.
Statusberegning på klientsiden
Forfalt, denne uken, denne måneden — statusklassifisering skjer i sin helhet i lib/utils.ts basert på next_due_at, uten ekstra databasespørringer.
pg_cron for push-varsler
En cron-jobb i databasen sender daglig kl. 07:00 UTC en HTTP POST til notify-maintenance Edge Function, som identifiserer forfalte vedlikeholdsoppgaver og varsler brukere via Expo Push API.