Utvalgt arbeid

Virksom

Oversikt

Et driftssystem bygget rundt de daglige behovene i en bedrift.

Detaljer

At a glance

Type prosjekt
Driftsplattform, web og mobil
Min rolle
Definerte, designet og implementerte plattformen, og gjennomførte utrullingen til daglig bruk.
Kategori
Systemer
Status
I drift2026
AI i produktet
Ingen AI i driftVirksom har ingen AI i drift. Hver motor i produktet, fra HMS-forslag og registerstatus til tilbuds- og fakturaberegninger, er deterministisk og enhetstestet.

Hva jeg gjorde

  • Definerte omfanget og datamodellen sammen med eieren av bedriften
  • Designet arbeidsflyten og grensesnittet for kontorbruk og aktivt feltarbeid
  • Implementerte webapplikasjonen, databasen, tilgangene og de native mobilinnpakningene
  • Testet de viktige flytene, verifiserte tilgangsreglene og gjennomførte produksjonsutrullingen

AI i prosessen

Planlagt, designet og implementert med AI-assistert utvikling. AI-verktøy hjalp meg med å utforske løsninger, skrive utkast til implementasjon og tester, og gå gjennom kode. Jeg bestemte omfanget, strukturen, hva som ble testet og hva som ble sluppet.

Bygget med

  • TypeScript: Applikasjonskode gjennom hele stacken
  • Next.js: Rammeverk og serverrendering
  • Tailwind CSS: Stiling av grensesnittet
  • Supabase (PostgreSQL): Database, autentisering og rad-nivå sikkerhet
  • Capacitor: iOS- og Android-innpakning med kamera og biometrisk innlogging
  • Vercel: Drift med deploy basert på pull requests
  • Git and GitHub: Arbeidsflyt med brancher og pull requests

Åpne innloggingen til Virksom(opens in a new tab)Discuss a project like this

Neste prosjekt

Commissioning Bench
The Virksom sign-in screen: the product name above an operations-dashboard subtitle, with an email and password form on a deep blue ground

Behovet

En liten håndverksbedrift håndterer prosjekter, kunder, oppdrag, avvik, HMS-dokumentasjon, ansatte, tilbud og fakturering på tvers av mange verktøy som ikke snakker sammen. Den administrative byrden havner hos eieren, og folkene ute i felt får verken sett eller oppdatert det de trenger mens de er på stedet.

Bedriften trengte ett internt system som følger den faktiske arbeidsflyten, kan brukes på telefon i aktivt feltarbeid, og beskytter bedriftens og kundenes data.

Mitt bidrag

Jeg jobbet med eieren fra første samtale: kartla hvordan arbeidet beveger seg fra en kundehenvendelse til en faktura, avgjorde hva systemet må eie og hva det kan la ligge, og oversatte det til en datamodell og et sett med skjermbilder.

Deretter designet og implementerte jeg applikasjonen fra ende til ende: webgrensesnittet, databasen og tilgangene, de native innpakningene for iOS og Android, og testene rundt flytene bedriften er avhengig av.

Opplevelsen

Produktet er organisert rundt enhetene bedriften allerede tenker i: prosjekter, kunder, oppdrag, milepæler, team, HMS-registre, avvik og endringsordrer, tilbud og fakturering. Hvert område er et enkelt, lettlest skjermbilde med samme oppsettsregler, slik at en ny ansatt kjenner igjen mønsteret etter én modul.

Mobilinnpakningene legger til det feltarbeid krever: kameraet til dokumentasjon, biometrisk innlogging, og et oppsett som fungerer med én tommel. Kunder får bekreftelseslenker med engangs-token, slik at en endringsordre kan godkjennes uten konto.

The Virksom dashboard for a plumbing business: a good-morning greeting, a row of figures for active projects, booked teams, revenue and invoices, a high-risk count, and the week's team plan as a timeline
The Virksom project list: a table of jobs with the customer, the trade, the status, a risk level, the assigned team and the value of each
The Virksom team screen: an access-and-roles panel with an invitation form, above two teams showing their capacity for the week, the job each is on now and the one after it
Slik fungerer det
  • Én PostgreSQL-modell i Supabase med rad-nivå sikkerhet. Hver rolle leser og skriver bare radene den har lov til å se, og anonym tilgang ble verifisert til å returnere null rader.
  • Rollebasert tilgang for eier, kontor og felt, håndhevet i databasen og ikke bare i grensesnittet.
  • Bekreftelseslenker til kunder er engangs-tokens med idempotent bekreftelse, slik at en lenke kan åpnes to ganger uten å skape to godkjenninger.
  • Web og native mobil deler én kodebase. Capacitor gir kamera, biometrisk autentisering og haptikk på iOS og Android.
  • Filer lagres i objektlagring bak signerte URL-er, og fakturaer er klargjort for speiling til regnskapssystemet.

Beslutning

Regler, ikke modeller, for logikken bedriften står ansvarlig for

Bakgrunn
HMS-status, kompetansevarsler og prisberegninger må kunne forklares for et tilsyn, og være riktige hver gang.
Hva jeg bestemte
Hver motor er en ren, enhetstestet regelmatcher. AI ble brukt til å bygge produktet, ikke lagt inn i det.
Avveining
Systemet kan ikke svare på åpne spørsmål; det kan bare anvende reglene det har fått. Det er riktig grense for et verktøy som håndterer regelverk og fakturering.

Verifisering og leveranse

De viktige flytene er dekket av automatiske tester, og tilgangsreglene ble sjekket direkte mot databasen før reelle data kom inn. Eieren gikk gjennom produktet med ekte oppdrag før utrulling, og eksempeldata ble fjernet ved lansering.

Virksom gikk live på virksom.no med eieren og to ansatte som de første brukerne, og brukes i den daglige driften.

Resultat og refleksjon

Levert for daglig drift, med ekte brukere og ekte data. Den sterkeste lærdommen var verdien av å bygge det deterministiske systemet først: å forstå arbeidet i praksis gjorde hver senere produktbeslutning enklere, og ga en tydelig grense for hvor AI hører hjemme.