c829f7898432ce5a3fede7702f29f75e8b6fa606
- Opprettet Flutter-prosjekt med alle nødvendige avhengigheter - Implementert datamodeller (User, TimeRegistration, TariffProfile, Deviation, AuditLog) - Implementert tjenester (AuthService, TimeService) - Implementert Riverpod providers for state management - Opprettet autentiseringsskjermer (login, signup, reset password) - Opprettet hjemmeskjerm med timer-funksjonalitet - Opprettet placeholder-skjermer for historikk, rapporter og profil - Lagt til norsk dokumentasjon i README
TimeReg
TimeReg er en mobilapplikasjon for registrering av arbeidstid med automatisk kontroll mot Arbeidsmiljøloven (AML) og tariffavtaler.
Funksjoner
- ✅ Registrering av arbeidstid (start/stopp timer og manuell registrering)
- ✅ Automatisk vurdering mot AML-bestemmelser
- ✅ Støtte for tariffavtaler med avvik fra hovedbestemmelsene
- ✅ Rollebasert tilgang (Ansatt, Administrator, Systemadministrator)
- ✅ Rapportering og eksport
- ✅ Offline-støtte
- ✅ Push-varsler ved avvik
Teknologi
- Frontend: Flutter (iOS & Android)
- Backend: Firebase
- Cloud Firestore (database)
- Firebase Authentication (autentisering)
- Cloud Functions (regelmotor)
- Cloud Messaging (varsler)
- State Management: Riverpod
- Offline Storage: Hive
Kom i gang
Forutsetninger
- Flutter SDK (3.9.2 eller nyere)
- Firebase-prosjekt
- Dart SDK
Installasjon
- Klon repositoriet:
git clone https://gitea.theriise.net/steinhelge/TimeReg.git
cd TimeReg
- Installer avhengigheter:
flutter pub get
-
Konfigurer Firebase:
- Opprett et Firebase-prosjekt på https://console.firebase.google.com
- Last ned
google-services.json(Android) ogGoogleService-Info.plist(iOS) - Plasser filene i riktige mapper:
- Android:
android/app/google-services.json - iOS:
ios/Runner/GoogleService-Info.plist
- Android:
-
Kjør appen:
flutter run
Firebase-oppsett
Firestore Database
Opprett følgende samlinger i Firestore:
users- Brukerdatatime_registrations- Timeregistreringertariff_profiles- Tariffprofilerdeviations- Avvik fra AML/tariffaudit_logs- Endringslogg
Firestore Security Rules
Kopier innholdet fra firestore.rules til Firebase Console.
Cloud Functions
Cloud Functions for regelmotoren ligger i functions/-mappen. Deploy med:
cd functions
npm install
firebase deploy --only functions
Prosjektstruktur
lib/
├── models/ # Datamodeller
├── services/ # Tjenester (auth, time, etc.)
├── providers/ # Riverpod providers
├── screens/ # UI-skjermer
│ ├── auth/ # Innlogging, registrering
│ ├── home/ # Hjem-skjerm med timer
│ ├── history/ # Historikk
│ ├── reports/ # Rapporter
│ ├── admin/ # Admin-funksjoner
│ └── profile/ # Brukerprofil
├── widgets/ # Gjenbrukbare widgets
└── utils/ # Hjelpefunksjoner
Brukerroller
Ansatt
- Registrere egen arbeidstid
- Se egne rapporter og avvik
- Motta varsler om avvik
Administrator
- Administrere brukere
- Sette tariffprofiler
- Se aggregert rapportering
- Korrigere timeregistreringer
Systemadministrator
- Full tilgang til systemet
- Konfigurere systemnivå-innstillinger
- Se audit logs
Tariffprofiler
Systemet støtter følgende standardprofiler:
-
Ingen tariffavtale (AML Standard)
- Maks 9 timer per dag
- Maks 40 timer per uke
- Min 11 timer daglig hvile
- Min 35 timer ukentlig hvile
-
Tariffavtale A
- Maks 10 timer per dag
- Maks 48 timer per uke
- Gjennomsnittsberegning over 8 uker
-
Tilpasset profil
- Konfigurerbar av administrator
Lisens
Dette prosjektet er privat og kun for intern bruk.
Kontakt
For spørsmål eller support, kontakt administrator.
Description
Languages
Dart
68.6%
C++
12.9%
CMake
9.8%
TypeScript
4.5%
Swift
1.4%
Other
2.7%