04 / FULLSTACK-APPLIKASJONER
TeamHabit
Vanesporing med mål, lag og utfordringer. Et fullstack-prosjekt med innlogging, database og flerspråklig grensesnitt.
Besøk nettsiden
Målet med prosjektet
Knytte personlige vaner til mål og samarbeid i lag. Koden omfatter vanelogging, fremgang, utfordringer og belønninger, med Supabase som backend.
Mitt bidrag
- Utviklet ideen og definert funksjonalitet for vanesporing og brukeropplevelse.
- Jobbet med designvalg, testing, feilsøking og forbedringer gjennom flere iterasjoner.
Slik har jeg jobbet
Jeg har brukt Codex og andre KI-verktøy i stor grad til kodeimplementeringen. Min innsats har særlig vært å utvikle ideen, definere funksjonalitet, ta designvalg, teste, feilsøke og forbedre løsningen gjennom flere iterasjoner. Den tekniske gjennomgangen beskriver implementasjonen, ikke en påstand om at jeg har skrevet all koden selv.
Tekniske utfordringer og tilnærming
Tilgang til personlige data og lagdata
Supabase Auth identifiserer brukeren. Databaseoppsettet har tabeller, tilgangsregler og funksjoner som kontrollerer blant annet lagmedlemskap. Egne TypeScript-moduler håndterer vaner, mål, lag og utfordringer. Sikkerheten avhenger også av at riktig SQL-oppsett faktisk er tatt i bruk i den driftede databasen.
Fremgang som må tåle kanttilfeller
Streak-beregningen arbeider med lokale kalenderdatoer. Vitest-tester dekker blant annet tom historikk, duplikate datoer og avbrutte rekker. Repoet har også tester for innloggingstilstand, brukernavn og XP. Dette gir bedre grunnlag for å vurdere reglene, men erstatter ikke integrasjonstesting av den driftede løsningen.
Flerspråklig brukeropplevelse
next-intl og separate språkfiler støtter seks språk. Innloggingen har synlige feltetiketter og fungerer som offentlig inngang til appen. De innloggede funksjonene er gjennomgått i kode, ikke prøvd med en virkelig brukerkonto i denne vurderingen.
Faglig utbytte
Prosjektet viser sammenhengen mellom en enkel handling i grensesnittet og flere lag under: brukeridentitet, eierskap, databaseoperasjoner og beregning av fremgang. Det gjør skillet mellom klientkontroller og databasekontroller særlig viktig.
Prosjektets omfang
Den offentlige innloggingssiden er kontrollert. Innloggede arbeidsflyter, databaseoppsett og tilgangskontroll i produksjon er ikke ende-til-ende-verifisert. Skjermbildets fremgangstall er illustrasjoner fra innloggingssiden, ikke dokumenterte brukerresultater.