Zeiterfassung mit Geofence, Urlaub, Feiertagen & Cloud-Sync.
Zero-Knowledge verschlüsselt - Nur du kannst deine Daten lesen.
| Feature | Beschreibung |
|---|---|
| Automatische Erfassung | GPS-Geofencing stempelt automatisch ein/aus |
| Zero-Knowledge | Ende-zu-Ende-Verschlüsselung (AES-256-GCM) |
| Offline-First | Funktioniert ohne Internet |
| Cloud-Sync | Verschlüsselte Synchronisation zwischen Geräten |
| Self-Hosting | Volle Kontrolle über deine Daten |
| Passkey-Support | Passwordlose Anmeldung (Touch ID, Face ID, Windows Hello) |
- Automatische Erfassung via Geofencing (GPS-basiert)
- Manuelle Einträge erstellen, bearbeiten, löschen
- Pausen einzeln erfassen
- Arbeitsmodi: Normal, Deep Work, Meeting, Support, Administration
- Projekte zuordnen (mit Farbkodierung)
- GPS-Tracking optional während der Arbeit
- Urlaubsverwaltung mit Jahresanspruch pro Jahr
- Abwesenheitstypen: Urlaub, Krankheit, Kind krank, Sonderurlaub, Unbezahlt
- Feiertage automatisch (deutschlandweit oder pro Bundesland)
- Heiligabend & Silvester konfigurierbar (frei/halber Tag/voll)
- Resturlaub-Übertrag ins nächste Jahr
- Wochenübersicht mit Soll/Ist-Vergleich und Überstunden
- Monatsübersicht mit Excel-Export
- Jahresübersicht
- Kalenderansicht mit allen Einträgen
- Zero-Knowledge Verschlüsselung - Server kann Daten nicht lesen
- Passphrase-geschützt - Starke Verschlüsselung mit AES-256-GCM
- 2FA - Zwei-Faktor-Authentifizierung mit TOTP
- Passkeys - Passwordlose Anmeldung (optional)
- App-Sperre - PIN oder Biometrie
- Recovery Codes - Passphrase-Wiederherstellung
- Dark Mode (System/Hell/Dunkel)
- Web-Interface - Zugriff vom Browser
- Google Kalender Integration (nur lesen)
- Erinnerungen für fehlende Einträge
- Backup & Restore als ZIP-Datei
VibedTracker verwendet Zero-Knowledge Verschlüsselung:
┌─────────────────┐ ┌─────────────────┐
│ CLIENT │ │ SERVER │
│ (App / Web) │ │ │
├─────────────────┤ ├─────────────────┤
│ │ │ │
│ Passphrase ────┼─PBKDF2─►│ Salt (public) │
│ │ │ │ │
│ ▼ │ │ │
│ AES-256 Key │ │ ✗ Kein Key │
│ │ │ │ │
│ ▼ │ │ │
│ Klartext ──────┼─────────► Encrypted Blob │
│ │ │ │ (unlesbar) │
│ ▼ │ │ │
│ Entschlüsselt │◄────────┼─ Encrypted Blob │
│ │ │ │
└─────────────────┘ └─────────────────┘
Der Server kann deine Daten niemals lesen - selbst bei einem Hack.
Für Details siehe SECURITY.md.
- Play Store (bald verfügbar)
- APK Download: GitHub Releases
Nach der App-Einrichtung erreichbar unter deinem Server.
# Docker Compose
git clone https://github.com/sprobst76/VibedTracker.git
cd VibedTracker/server
# Konfiguration anpassen
cp .env.example .env
nano .env
# Starten
docker-compose up -dSiehe Server-Dokumentation für Details.
- Flutter SDK (stable channel)
- Go 1.21+ (für Server)
- PostgreSQL 14+ (für Server)
- Android Studio oder VS Code
# Repository klonen
git clone https://github.com/sprobst76/VibedTracker.git
cd VibedTracker
# Abhängigkeiten installieren
flutter pub get
# Hive-Adapter generieren
dart run build_runner build --delete-conflicting-outputs
# App starten (Debug)
flutter run
# Release-APK bauen
flutter build apk --release
# Release App Bundle (Play Store)
flutter build appbundle --releasecd server
# Abhängigkeiten
go mod download
# Entwicklung starten
go run cmd/api/main.go
# Production Build
go build -o vibedtracker-server cmd/api/main.goVibedTracker/
├── lib/ # Flutter App
│ ├── main.dart # App-Einstiegspunkt
│ ├── providers.dart # Riverpod State Management
│ ├── models/ # Datenmodelle (Hive)
│ ├── screens/ # UI Screens
│ ├── services/ # Business Logic
│ │ ├── encryption_service.dart # Zero-Knowledge Crypto
│ │ ├── geofence_service.dart # GPS Geofencing
│ │ └── cloud_sync_service.dart # Verschlüsselter Sync
│ └── theme/ # Theming
│
├── server/ # Go Backend
│ ├── cmd/api/ # Server Entry Point
│ ├── internal/
│ │ ├── handlers/ # API Handlers
│ │ ├── middleware/ # Auth, Rate Limiting
│ │ └── repository/ # Database Access
│ ├── static/js/ # Web Crypto (Client-Side)
│ ├── templates/ # HTMX Web Templates
│ └── migrations/ # PostgreSQL Migrations
│
├── docs/ # Dokumentation
│ ├── KEYSTORE_SECURITY.md # Keystore & Secrets
│ └── BUSINESS_ANALYSIS.md # Business Model
│
├── SECURITY.md # Sicherheitsarchitektur
└── README.md # Diese Datei
| Komponente | Technologie |
|---|---|
| Framework | Flutter 3.x |
| State Management | Riverpod |
| Lokale Datenbank | Hive (verschlüsselt) |
| Maps | flutter_map (OpenStreetMap) |
| Geofencing | geofence_foreground_service |
| Verschlüsselung | cryptography (AES-256-GCM, PBKDF2) |
| Auth | local_auth (Biometrie) |
| Komponente | Technologie |
|---|---|
| Framework | Gin |
| Datenbank | PostgreSQL |
| Auth | JWT + TOTP |
| WebAuthn | Custom (WebAuthn Level 2) |
| Templates | Go html/template + HTMX |
| Zweck | Algorithmus |
|---|---|
| Key Derivation | PBKDF2-HMAC-SHA256 (100k iter) |
| Verschlüsselung | AES-256-GCM |
| Password Hashing | bcrypt (cost 12) |
| 2FA | TOTP (RFC 6238) |
| Passkeys | WebAuthn + PRF Extension |
| Dokument | Inhalt |
|---|---|
| SECURITY.md | Sicherheitsarchitektur, Kryptographie, Bedrohungsmodell |
| CLAUDE.md | Entwickler-Anweisungen |
| docs/KEYSTORE_SECURITY.md | Keystore & Secrets Management |
| docs/BUSINESS_ANALYSIS.md | Business Model & Marktanalyse |
-
Flutter CI (
flutter_ci.yml): Läuft bei Push aufmainund PRsflutter analyzeflutter test
-
Release (
release.yml): Läuft bei Tag-Push (v*)- Baut Release-APK
- Erstellt GitHub Release mit APK
# Version in pubspec.yaml anpassen
# Dann:
git add pubspec.yaml
git commit -m "chore: bump version to x.y.z"
git push origin main
git tag vx.y.z
git push origin vx.y.zSicherheitslücke gefunden? Bitte nicht öffentlich posten.
- E-Mail an: [email protected]
- Oder: GitHub Issue mit
[SECURITY]Prefix
Siehe SECURITY.md für Details.
Proprietär - Alle Rechte vorbehalten.
Stefan Probst (@sprobst76)