From 34f44a178123bcd57479ea157116d4e4612a83fa Mon Sep 17 00:00:00 2001 From: Felix Schlusche Date: Thu, 23 Oct 2025 01:21:07 +0200 Subject: [PATCH] Update README.md to enhance technology stack details and project structure; add modular backend architecture and code structure sections --- README.md | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 74c868f..7ce2c05 100644 --- a/README.md +++ b/README.md @@ -15,22 +15,39 @@ Eine Full-Stack-Zeiterfassungsanwendung, entwickelt mit Node.js, Express, SQLite ## Technologie-Stack -- **Backend**: Node.js, Express.js +- **Backend**: Node.js, Express.js (modular aufgebaut) + - **Config**: Datenbank-Setup & Migrationen + - **Utils**: Zeitberechnungen nach deutschem Arbeitszeitgesetz + - **Routes**: Separate Module für API-Endpunkte - **Datenbank**: SQLite (better-sqlite3) - **Frontend**: Vanilla JavaScript, HTML, Tailwind CSS -- **Containerisierung**: Docker +- **Containerisierung**: Docker, Docker Compose ## Projektstruktur ``` -/zeiterfassung - ├── public/ +/timetracker + ├── src/ # Backend-Code (refactored) + │ ├── config/ + │ │ └── database.js # Datenbank-Initialisierung & Migrationen + │ ├── utils/ + │ │ └── timeCalculator.js # Zeitberechnungen (Pausen, Caps) + │ └── routes/ + │ ├── entries.js # CRUD API-Endpunkte + │ └── export.js # CSV-Export + ├── public/ # Frontend │ ├── index.html # Hauptbenutzeroberfläche - │ └── app.js # Frontend-Logik + │ ├── app.js # Frontend-Logik + │ └── js/ # Frontend-Module (optional) + │ ├── state.js # State Management + │ ├── utils/ # Utilities + │ ├── api/ # API-Client + │ └── ui/ # UI-Komponenten ├── db/ │ └── schema.sql # Datenbankschema - ├── server.js # Express-Server mit API-Endpunkten + ├── server.js # Express-Server (22 Zeilen - Entry Point) ├── Dockerfile # Multi-Stage Docker Build + ├── docker-compose.yml # Docker Compose Konfiguration ├── package.json └── README.md ``` @@ -140,8 +157,22 @@ Die Anwendung verwendet: - **Flatpickr** für die Datums- und Zeitauswahl mit mobilfreundlichen Oberflächen - **Tailwind CSS** für das Styling (geladen über CDN) - **SQLite** für leichtgewichtige, dateibasierte Datenpersistenz +- **Modulare Backend-Architektur** für bessere Wartbarkeit und Testbarkeit - Alle Berechnungen werden serverseitig durchgeführt, um die Datenintegrität zu gewährleisten +### Code-Struktur + +**Backend:** +- `server.js` - Express-Setup und Routing (22 Zeilen) +- `src/config/database.js` - Datenbank-Initialisierung +- `src/utils/timeCalculator.js` - Geschäftslogik für Zeitberechnungen +- `src/routes/entries.js` - CRUD-Endpunkte +- `src/routes/export.js` - CSV-Export + +**Frontend:** +- `public/app.js` - Haupt-Frontend-Logik +- `public/js/` - Optionale Module (state, utils, api, ui) + ## Lizenz MIT