feat: enhance README with updates on Node.js version, responsive timer layout, and new features including live timer metrics and intelligent PDF export activation
All checks were successful
Build and Push Docker Image / build (push) Successful in 26s
All checks were successful
Build and Push Docker Image / build (push) Successful in 26s
This commit is contained in:
38
README.md
38
README.md
@@ -126,6 +126,8 @@ Eine Full-Stack-Zeiterfassungsanwendung, entwickelt mit Node.js, Express, SQLite
|
||||
### 🎨 Modernes UI/UX
|
||||
- **Premium Design**: Glass-Morphism, Gradients, Schatten, Animationen
|
||||
- **Responsive**: Desktop, Tablet, Mobile
|
||||
- Timer-Metriken: Rechts neben Timer auf großen Displays, darunter auf mobil
|
||||
- Adaptive Layouts für alle Bildschirmgrößen
|
||||
- **Dark Mode**: Augenschonendes dunkles Design
|
||||
- **Toast-Benachrichtigungen**: Visuelles Feedback
|
||||
- **Icons**: Lucide Icons für klare Symbolik
|
||||
@@ -134,7 +136,7 @@ Eine Full-Stack-Zeiterfassungsanwendung, entwickelt mit Node.js, Express, SQLite
|
||||
## 🏗️ Technologie-Stack
|
||||
|
||||
**Backend:**
|
||||
- Node.js 18+ mit Express.js
|
||||
- Node.js 20+ mit Express.js
|
||||
- SQLite (better-sqlite3) für dateibasierte Persistenz
|
||||
- Modulare Architektur (config, utils, routes)
|
||||
|
||||
@@ -148,6 +150,8 @@ Eine Full-Stack-Zeiterfassungsanwendung, entwickelt mit Node.js, Express, SQLite
|
||||
**Infrastructure:**
|
||||
- Docker & Docker Compose
|
||||
- Multi-Stage Build für optimierte Images
|
||||
- Node.js 20 Alpine Linux base image
|
||||
- Python build dependencies für native Module
|
||||
- Gitea Actions CI/CD für automatische Builds
|
||||
- Gitea Container Registry für Image-Hosting
|
||||
|
||||
@@ -163,15 +167,16 @@ timetracker/
|
||||
│ ├── index.html # Single-Page Application
|
||||
│ ├── favicon.svg # App Icon
|
||||
│ └── js/
|
||||
│ ├── state.js # Globaler State
|
||||
│ ├── state.js # Globaler State (companyHolidayPreference, targetHours)
|
||||
│ ├── utils.js # Hilfsfunktionen
|
||||
│ ├── holidays.js # Feiertagsberechnung
|
||||
│ ├── holidays.js # Feiertagsberechnung (16 Bundesländer)
|
||||
│ ├── bridge-days.js # Brückentag-Optimierung
|
||||
│ ├── api.js # Backend-Kommunikation
|
||||
│ └── main.js # Hauptlogik (~3700 Zeilen)
|
||||
│ └── main.js # Hauptlogik (~4000 Zeilen)
|
||||
├── .gitea/workflows/ # CI/CD Workflows
|
||||
│ └── docker-build.yml # Docker Build & Push
|
||||
├── media/screenshots/ # App-Screenshots
|
||||
├── Dockerfile # Container-Image
|
||||
├── Dockerfile # Container-Image (Node 20 + Python)
|
||||
├── docker-compose.yml # Orchestrierung
|
||||
└── package.json
|
||||
```
|
||||
@@ -248,7 +253,7 @@ docker run -p 3000:3000 -v $(pwd)/db:/app/db zeiterfassung
|
||||
|
||||
### 💻 Option 3: Lokal (ohne Docker)
|
||||
|
||||
**Voraussetzungen:** Node.js 18+
|
||||
**Voraussetzungen:** Node.js 20+
|
||||
|
||||
```bash
|
||||
# Repository klonen
|
||||
@@ -268,6 +273,9 @@ Die App bietet mehrere Export-Modi für verschiedene Anwendungsfälle:
|
||||
### PDF-Export 📄
|
||||
|
||||
**Monats-Export:**
|
||||
- Button erscheint nur wenn letzter Tag des Monats vollständig erfasst ist
|
||||
- Startzeit und Endzeit müssen vorhanden sein
|
||||
- Verhindert versehentliche Exports unvollständiger Monate
|
||||
- Klicke auf "PDF Export" in der Monatsansicht
|
||||
- Exportiert alle Einträge des aktuellen Monats
|
||||
- Professionelles Layout mit:
|
||||
@@ -383,13 +391,14 @@ Die App verwendet Gitea Actions für automatische Builds und Deployments:
|
||||
**Architektur:** Single-Page Application (SPA) mit REST-API Backend
|
||||
|
||||
**Tech-Details:**
|
||||
- Modulare Frontend-Architektur (5 separate JS-Dateien)
|
||||
- Modulare Frontend-Architektur (6 separate JS-Dateien)
|
||||
- Flatpickr für Touch-optimierte Picker (auch in Tabellen-Inline-Edit)
|
||||
- Lucide Icons für Symbolik
|
||||
- jsPDF + autoTable für PDF-Generierung
|
||||
- SQLite für dateibasierte Persistenz
|
||||
- Server-seitige Berechnungen für Datenintegrität
|
||||
- Responsive Design (Tailwind CSS via CDN)
|
||||
- Live-Updates während Timer läuft (Saldo, Nettostunden)
|
||||
|
||||
**Datenpersistenz:**
|
||||
- SQLite-Datenbank: `db/timetracker.db`
|
||||
@@ -398,11 +407,20 @@ Die App verwendet Gitea Actions für automatische Builds und Deployments:
|
||||
- JSON-basierte Backups für Migration
|
||||
|
||||
**Code-Organisation:**
|
||||
- `state.js`: Globaler Application State
|
||||
- `state.js`: Globaler Application State (companyHolidayPreference, targetHours)
|
||||
- `utils.js`: Hilfsfunktionen (Datum, Zeit, Format)
|
||||
- `holidays.js`: Feiertagsberechnung (16 Bundesländer)
|
||||
- `holidays.js`: Feiertagsberechnung (16 Bundesländer + Betriebsfrei)
|
||||
- `bridge-days.js`: Brückentag-Optimierung
|
||||
- `api.js`: Backend-Kommunikation
|
||||
- `main.js`: Hauptlogik, UI, Event-Handler
|
||||
- `main.js`: Hauptlogik, UI, Event-Handler (~4000 Zeilen)
|
||||
|
||||
**Neue Features:**
|
||||
- Timer-Metriken mit Live-Berechnung
|
||||
- Anpassbare tägliche Arbeitszeit (4h-10h)
|
||||
- Laufendes Saldo in Tabelle
|
||||
- Intelligente PDF-Export-Aktivierung
|
||||
- Betriebsfreier Tag (Weihnachten/Silvester)
|
||||
- Responsive Timer-Layout
|
||||
|
||||
## 📄 Lizenz
|
||||
|
||||
|
||||
Reference in New Issue
Block a user