# 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 1. Klon repositoriet: ```bash git clone https://gitea.theriise.net/steinhelge/TimeReg.git cd TimeReg ``` 2. Installer avhengigheter: ```bash flutter pub get ``` 3. Konfigurer Firebase: - Opprett et Firebase-prosjekt på https://console.firebase.google.com - Last ned `google-services.json` (Android) og `GoogleService-Info.plist` (iOS) - Plasser filene i riktige mapper: - Android: `android/app/google-services.json` - iOS: `ios/Runner/GoogleService-Info.plist` 4. Kjør appen: ```bash flutter run ``` ## Firebase-oppsett ### Firestore Database Opprett følgende samlinger i Firestore: - `users` - Brukerdata - `time_registrations` - Timeregistreringer - `tariff_profiles` - Tariffprofiler - `deviations` - Avvik fra AML/tariff - `audit_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: ```bash 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: 1. **Ingen tariffavtale (AML Standard)** - Maks 9 timer per dag - Maks 40 timer per uke - Min 11 timer daglig hvile - Min 35 timer ukentlig hvile 2. **Tariffavtale A** - Maks 10 timer per dag - Maks 48 timer per uke - Gjennomsnittsberegning over 8 uker 3. **Tilpasset profil** - Konfigurerbar av administrator ## Lisens Dette prosjektet er privat og kun for intern bruk. ## Kontakt For spørsmål eller support, kontakt administrator.