c829f78984
- 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
145 lines
3.4 KiB
Markdown
145 lines
3.4 KiB
Markdown
# 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.
|