Slik bygger du en tidsregistreringsapp: timere, timelister og rapporter
En tidsregistreringsapp registrerer hvem som har jobbet med hva, hvor lenge, og om tiden kan faktureres. For å bygge en trenger du kunder og prosjekter å føre tid mot, en timer som overlever en lukket nettleserfane, en måte å legge til og rette føringer for hånd på, en ukentlig timeliste og rapporter som gjør råføringer om til summer. Et AI-verktøy for apper kan lage en fungerende første versjon fra én tydelig prompt. Avgjørelsene som betyr noe, handler om regler: avrunding, hvem som kan endre hva, når en uke låses, og hva som regnes som fakturerbart.
Bestem hva tiden skal brukes til
Den samme appen ser forskjellig ut avhengig av grunnen bak den:
- Fakturering av kunder. Timer per kunde, en sats per person eller prosjekt, og en ren eksport til fakturaer. Nøyaktighet og et revisjonsspor betyr mest.
- Lønn for timelønnede ansatte. Stempling inn og ut, pauser, overtidsregler og godkjenning fra leder. Lokale arbeidsregler gjelder, så sjekk hvilke registreringer du plikter å føre.
- Å forstå hvor tiden går. Personlig eller teaminnsikt, estimater mot faktiske timer. Hastighet ved føring betyr mer enn godkjenningsflyt.
Velg én hovedjobb for første versjon. En frilanser sin faktureringssporer og en skiftklokke på et lager deler en timer og veldig lite ellers.
Hva appen trenger
Data
| Tabell | Viktige felt |
|---|---|
| Kunder | Navn, standard timesats, aktiv ja/nei |
| Prosjekter | Kunde, navn, budsjett i timer (valgfritt), fakturerbart som standard ja/nei |
| Oppgaver eller kategorier | Prosjekt, navn (design, møter, support) — valgfritt i starten |
| Tidsføringer | Person, prosjekt, oppgave, starttid, sluttid, varighet, notat, fakturerbart ja/nei, status (utkast, innsendt, godkjent), fakturert ja/nei |
| Personer | Navn, e-post, rolle, kostnadssats eller fakturasats |
Lagre start- og sluttid på hver føring, og utled varigheten fra dem. Føringer som skrives inn som «2t 15m» uten tidspunkter kan lagre bare varigheten, men da må du beholde en dato.
Sider
- Timer og i dag: en stor start/stopp-knapp, en prosjektvelger, og dagens føringer under.
- Ukevisning: et rutenett med prosjekter nedover siden og dager på tvers, der folk skriver timer direkte inn. Mange foretrekker dette framfor timere.
- Rapporter: timer per kunde, prosjekt og person for en datoperiode, med fordeling fakturerbart og ikke-fakturerbart, og CSV-eksport.
- Admin: administrer kunder, prosjekter, personer og satser.
Tilganger
Skriv ned hvem som kan gjøre hva før du bygger:
- Folk ser og redigerer sine egne føringer.
- Ledere ser teamets føringer og godkjenner uker.
- Bare administratorer endrer satser, og helst er det bare administratorer som ser dem i det hele tatt.
- Ingen redigerer en føring når den er godkjent eller fakturert, med mindre en administrator åpner den igjen.
Den siste regelen er det som gjør rapportene pålitelige. Vår guide om å legge til innlogging i appen din dekker påloggingsdelen, og rollebasert tilgangskontroll dekker rollene.
Avgjørelser og avveininger
Timer, manuell føring eller begge
Timere er nøyaktige når folk husker å starte dem, og det gjør de ikke alltid. Manuell føring er rask for folk som fyller ut uken sin på fredag. De fleste team trenger begge deler, og en måte å redigere en timerføring i etterkant. Hvis du bare bygger én, bygg ukerutenettet; det er enklere og dekker tilfellet der noen glemte å starte timeren.
Hvor den løpende timeren lever
En timer som teller i nettleseren mister alt når fanen lukkes. Lagre starttidspunktet i databasen når noen trykker start, og vis forløpt tid ved å trekke det fra nå. Timeren fortsetter da å gå på tvers av oppfriskninger, laptoper og telefoner. Bestem om en person kan ha to timere kjørende samtidig. Vanligvis er svaret nei: å starte en ny stopper den gamle.
Avrunding
Vanlige regler er å runde hver føring opp til nærmeste 6, 15 eller 30 minutter. Behold nøyaktige tider i databasen, og bruk avrunding bare i rapporter og fakturaer. Vis begge tallene i rapporter, slik at ingen blir overrasket.
Låsing og godkjenninger
Uten lås kan timer som allerede er fakturert endres etter at fakturaen er sendt. En enkel modell: folk sender inn en uke, en leder godkjenner den, og godkjente føringer blir skrivebeskyttet. Hvis du fakturerer fra appen, merk føringer som fakturert slik at de ikke kan faktureres to ganger.
Tidssoner og midnatt
Lagre tider i UTC og vis dem i personens tidssone. Bestem hvilken dag en føring fra 23:00 til 01:00 tilhører. Det vanlige svaret er dagen den startet.
En første prompt som fungerer
Bygg en tidsregistreringsapp for et designstudio med seks ansatte. Data: kunder (navn, timesats), prosjekter (kunde, navn, budsjett i timer), og tidsføringer (person, prosjekt, start, slutt, notat, fakturerbart ja/nei, status utkast/innsendt/godkjent). Sider: en I dag-side med en start/stopp-timer og prosjektvelger som lagrer starttidspunktet i databasen, slik at timeren overlever en oppfriskning; en Uke-side med prosjekter som rader og mandag til søndag som kolonner, der folk kan skrive timer direkte; en Rapport-side som viser timer per kunde, prosjekt og person for en datoperiode, delt i fakturerbart og ikke-fakturerbart, med CSV-eksport; og en Admin-side for kunder, prosjekter og personer. Bare én timer kan kjøre per person. Godkjente føringer kan ikke redigeres. Lagre tider i UTC og vis dem i brukerens tidssone. Ren, rask design som er enkel å bruke med tastatur.
Byggesteg
- Prosjekter og manuelle føringer først. Kunder, prosjekter, et skjema for å legge til en føring, og en liste. Sørg for at summene stemmer.
- Timer. Start, stopp, én løpende timer per person, lagret starttidspunkt. Test ved å starte en timer, lukke fanen og åpne den igjen.
- Ukerutenett. Å skrive timer i en celle oppretter eller oppdaterer en føring.
- Innlogging og roller. Legg dem til før ekte folk bruker appen, slik at ingen ved et uhell ser satser eller andres føringer.
- Send inn og godkjenn. Ukentlig innsending, godkjenning fra leder, og skrivebeskyttet etter godkjenning.
- Rapporter og eksport. Datoperiode, gruppering, fordeling fakturerbart, CSV.
- Satser og koblinger til fakturering hvis du fakturerer kunder. Hold fakturaopprettelse i et eget steg eller en egen app; se hvordan bygge en fakturaapp.
- Test kanttilfellene. En føring over midnatt, en uke med sommertid/vintertid, to timere startet fra to enheter, redigering av en godkjent føring.
Vanlige feil
- Å telle tid bare i nettleseren. Det virker i demoen og mister timer i reell bruk.
- Å avrunde lagrede verdier. Du kan aldri få tilbake den nøyaktige tiden.
- Ingen lås på godkjente uker. Rapportene slutter å stemme med fakturaene.
- Alle ser alles satser. Skjul satser etter rolle fra første dag.
- For mange obligatoriske felt. Hvis det tar mer enn noen få sekunder å føre tid, slutter folk å gjøre det, og dataene blir fiksjon. Gjør oppgave og notat valgfrie i starten.
- Å bygge en full prosjektstyrer inni sporeren. Hold prosjekter som enkle etiketter. Hvis du trenger oppgaver, tavler og frister, er det et prosjektstyringsverktøy, et eget prosjekt.
Når et ferdig tidsregistreringsverktøy er det bedre valget
Hvis teamet ditt trenger en timer, en ukevisning og rapporter, gjør dedikerte tidsregistreringsprodukter dette godt allerede. De kommer også med ting som tar reelt arbeid å bygge: apper for desktop og telefon, deteksjon av inaktivitet, integrasjoner med kalender og andre verktøy, og påminnelser om å fylle ut timelister. For timelønn er et verktøy laget for det tryggere når det gjelder pauser, overtid og føring av lønnsgrunnlag enn en egen førsteversjon.
Bygg selv når reglene dine ikke passer, når du vil koble timer til data du allerede har (oppdrag, arbeidsordrer, retainere, fakturaer), når pris per plass for et stort team blir dyrt, eller når tidsregistrering er én del av et større internt verktøy. Vår guide om å bygge eller kjøpe programvare går gjennom avveiningen, og hvis timene dine i dag ligger i et delt regneark, se hvordan gjøre et regneark om til en app.
Bygge det med Mythex
På Mythex beskriver du sporeren i chatten, og agenten bygger den i en live forhåndsvisning. Den legger til en dedikert Postgres-database når føringer må lagres, og du kan be om det direkte eller skrive /database. Bruksområdet for interne verktøy i dokumentasjonen foreslår å velge ett smertefullt steg for første versjon, noe som passer her: start med føringer og ukerutenettet, og legg deretter til timere og godkjenninger.
Innlogging for teamet ditt legger du til med din egen autentiseringsløsning (oppskriften for innlogging). Mythex-kontoer er for folkene som bygger, ikke for folkene som bruker appen din. Når kjerneflyten fungerer, kan /test få agenten til å klikke seg gjennom forhåndsvisningen (starte en timer, legge til en føring, kjøre en rapport) og si fra om hva som går i stykker. For et visuelt utgangspunkt, bla gjennom appmalene.
Spørsmål
Hvilke funksjoner trenger en tidsregistreringsapp?
En liste over kunder og prosjekter, en start/stopp-timer, en måte å legge til eller rette føringer for hånd, en ukentlig timeliste og en rapport over timer per prosjekt og person. Godkjenninger, timesatser og eksport kommer deretter.
Hvordan hindrer jeg at en timer mister tid når nettleseren lukkes?
Lagre starttidspunktet i databasen med en gang timeren starter, og beregn den løpende varigheten ut fra den lagrede tiden. Da går ingenting tapt når du lukker fanen, oppdaterer siden eller bytter enhet.
Bør tid avrundes?
Lagre nøyaktige start- og sluttider, og bruk avrunding bare i rapporter og fakturaer. Da kan du endre avrundingsregelen senere uten å skrive om historikken.
Er det verdt å bygge en egen tidsregistrering?
Vanligvis bare hvis reglene dine er uvanlige, eller du vil knytte timer til andre data du allerede har, for eksempel oppdrag, kunder eller fakturaer. For enkle timere og rapporter er et eksisterende verktøy billigere og raskere.