Update README.md to enhance technology stack details and project structure; add modular backend architecture and code structure sections
This commit is contained in:
43
README.md
43
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
|
||||
|
||||
Reference in New Issue
Block a user