Initial commit: TimeReg Flutter app med Firebase backend
- 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
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user