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
|
## 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)
|
- **Datenbank**: SQLite (better-sqlite3)
|
||||||
- **Frontend**: Vanilla JavaScript, HTML, Tailwind CSS
|
- **Frontend**: Vanilla JavaScript, HTML, Tailwind CSS
|
||||||
- **Containerisierung**: Docker
|
- **Containerisierung**: Docker, Docker Compose
|
||||||
|
|
||||||
## Projektstruktur
|
## Projektstruktur
|
||||||
|
|
||||||
```
|
```
|
||||||
/zeiterfassung
|
/timetracker
|
||||||
├── public/
|
├── 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
|
│ ├── 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/
|
├── db/
|
||||||
│ └── schema.sql # Datenbankschema
|
│ └── schema.sql # Datenbankschema
|
||||||
├── server.js # Express-Server mit API-Endpunkten
|
├── server.js # Express-Server (22 Zeilen - Entry Point)
|
||||||
├── Dockerfile # Multi-Stage Docker Build
|
├── Dockerfile # Multi-Stage Docker Build
|
||||||
|
├── docker-compose.yml # Docker Compose Konfiguration
|
||||||
├── package.json
|
├── package.json
|
||||||
└── README.md
|
└── README.md
|
||||||
```
|
```
|
||||||
@@ -140,8 +157,22 @@ Die Anwendung verwendet:
|
|||||||
- **Flatpickr** für die Datums- und Zeitauswahl mit mobilfreundlichen Oberflächen
|
- **Flatpickr** für die Datums- und Zeitauswahl mit mobilfreundlichen Oberflächen
|
||||||
- **Tailwind CSS** für das Styling (geladen über CDN)
|
- **Tailwind CSS** für das Styling (geladen über CDN)
|
||||||
- **SQLite** für leichtgewichtige, dateibasierte Datenpersistenz
|
- **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
|
- 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
|
## Lizenz
|
||||||
|
|
||||||
MIT
|
MIT
|
||||||
|
|||||||
Reference in New Issue
Block a user