Update README.md for German localization and feature descriptions

This commit is contained in:
Felix Schlusche
2025-10-23 00:39:38 +02:00
parent 9a07409843
commit 7360ce7847

112
README.md
View File

@@ -1,113 +1,113 @@
# Zeiterfassung (Time Tracking Application) # Zeiterfassung
A full-stack time tracking application built with Node.js, Express, SQLite, and containerized with Docker. Eine Full-Stack-Zeiterfassungsanwendung, entwickelt mit Node.js, Express, SQLite und containerisiert mit Docker.
## Features ## Funktionen
-Track work time entries (date, start time, end time) -Erfassung von Arbeitszeiten (Datum, Startzeit, Endzeit)
- ✅ Automatic break calculation according to German labor laws - ✅ Automatische Pausenberechnung nach deutschem Arbeitszeitgesetz
- ✅ Maximum 10-hour net time cap - ✅ Maximum von 10 Stunden Nettoarbeitszeit
-Date range filtering -Filterung nach Zeitraum
- ✅ CSV export with German formatting - ✅ CSV-Export mit deutscher Formatierung
- ✅ Responsive UI with Tailwind CSS - ✅ Responsive Benutzeroberfläche mit Tailwind CSS
- ✅ Modern date/time picker (Flatpickr) - ✅ Moderner Datums-/Zeitauswahl (Flatpickr)
- ✅ Docker containerization - ✅ Docker-Containerisierung
## Technology Stack ## Technologie-Stack
- **Backend**: Node.js, Express.js - **Backend**: Node.js, Express.js
- **Database**: SQLite (better-sqlite3) - **Datenbank**: SQLite (better-sqlite3)
- **Frontend**: Vanilla JavaScript, HTML, Tailwind CSS - **Frontend**: Vanilla JavaScript, HTML, Tailwind CSS
- **Containerization**: Docker - **Containerisierung**: Docker
## Project Structure ## Projektstruktur
``` ```
/zeiterfassung /zeiterfassung
├── public/ ├── public/
│ ├── index.html # Main UI │ ├── index.html # Hauptbenutzeroberfläche
│ └── app.js # Frontend logic │ └── app.js # Frontend-Logik
├── db/ ├── db/
│ └── schema.sql # Database schema │ └── schema.sql # Datenbankschema
├── server.js # Express server with API endpoints ├── server.js # Express-Server mit API-Endpunkten
├── Dockerfile # Multi-stage Docker build ├── Dockerfile # Multi-Stage Docker Build
├── package.json ├── package.json
└── README.md └── README.md
``` ```
## German Break Rules ## Deutsche Pausenregelung
The application automatically calculates break times according to German labor law: Die Anwendung berechnet automatisch die Pausenzeiten gemäß deutschem Arbeitszeitgesetz:
- **> 6 hours worked**: 30 minutes break deducted - **> 6 Stunden Arbeitszeit**: 30 Minuten Pause werden abgezogen
- **> 9 hours worked**: 45 minutes break deducted - **> 9 Stunden Arbeitszeit**: 45 Minuten Pause werden abgezogen
- **Net hours capped at 10.0 hours maximum** - **Nettostunden sind auf maximal 10,0 Stunden begrenzt**
## API Endpoints ## API-Endpunkte
- `GET /api/entries?from=YYYY-MM-DD&to=YYYY-MM-DD` - Get all entries in date range - `GET /api/entries?from=YYYY-MM-DD&to=YYYY-MM-DD` - Alle Einträge im Zeitraum abrufen
- `POST /api/entries` - Create a new entry - `POST /api/entries` - Neuen Eintrag erstellen
- `PUT /api/entries/:id` - Update an existing entry - `PUT /api/entries/:id` - Bestehenden Eintrag aktualisieren
- `DELETE /api/entries/:id` - Delete an entry - `DELETE /api/entries/:id` - Eintrag löschen
- `GET /api/export?from=YYYY-MM-DD&to=YYYY-MM-DD` - Export entries as CSV - `GET /api/export?from=YYYY-MM-DD&to=YYYY-MM-DD` - Einträge als CSV exportieren
## Running Locally ## Lokale Ausführung
### Prerequisites ### Voraussetzungen
- Node.js 18+ installed - Node.js 18+ installiert
### Installation ### Installation
1. Install dependencies: 1. Abhängigkeiten installieren:
```bash ```bash
npm install npm install
``` ```
2. Start the server: 2. Server starten:
```bash ```bash
npm start npm start
``` ```
3. Open your browser and navigate to: 3. Browser öffnen und navigieren zu:
``` ```
http://localhost:3000 http://localhost:3000
``` ```
## Running with Docker ## Ausführung mit Docker
### Build the Docker image: ### Docker-Image erstellen:
```bash ```bash
docker build -t zeiterfassung . docker build -t zeiterfassung .
``` ```
### Run the container: ### Container starten:
```bash ```bash
docker run -p 3000:3000 -v $(pwd)/db:/app/db zeiterfassung docker run -p 3000:3000 -v $(pwd)/db:/app/db zeiterfassung
``` ```
The `-v` flag mounts the database directory to persist data between container restarts. Das `-v` Flag bindet das Datenbankverzeichnis ein, um Daten zwischen Container-Neustarts zu erhalten.
### Access the application: ### Anwendung aufrufen:
``` ```
http://localhost:3000 http://localhost:3000
``` ```
## CSV Export Format ## CSV-Export-Format
The exported CSV file includes the following columns: Die exportierte CSV-Datei enthält folgende Spalten:
- **Datum**: Date in DD.MM.YYYY format - **Datum**: Datum im Format TT.MM.JJJJ
- **Startzeit**: Start time in HH:MM format - **Startzeit**: Startzeit im Format HH:MM
- **Endzeit**: End time in HH:MM format - **Endzeit**: Endzeit im Format HH:MM
- **Pause in Minuten**: Break time in minutes - **Pause in Minuten**: Pausenzeit in Minuten
- **Gesamtstunden**: Net hours with comma as decimal separator (e.g., 8,50) - **Gesamtstunden**: Nettostunden mit Komma als Dezimaltrennzeichen (z.B. 8,50)
## Development ## Entwicklung
The application uses: Die Anwendung verwendet:
- **Flatpickr** for date and time selection with mobile-friendly interfaces - **Flatpickr** für die Datums- und Zeitauswahl mit mobilfreundlichen Oberflächen
- **Tailwind CSS** for styling (loaded via CDN) - **Tailwind CSS** für das Styling (geladen über CDN)
- **SQLite** for lightweight, file-based data persistence - **SQLite** für leichtgewichtige, dateibasierte Datenpersistenz
- All calculations are performed server-side for data integrity - Alle Berechnungen werden serverseitig durchgeführt, um die Datenintegrität zu gewährleisten
## License ## Lizenz
MIT MIT