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:
git clone https://gitea.theriise.net/steinhelge/TimeReg.git
cd TimeReg
  1. Installer avhengigheter:
flutter pub get
  1. 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
  2. Kjør appen:

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:

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.

S
Description
No description provided
Readme 380 KiB
Languages
Dart 68.6%
C++ 12.9%
CMake 9.8%
TypeScript 4.5%
Swift 1.4%
Other 2.7%