Files
stechuhr3/backend
Torsten Schulz (local) afd0d2935d Add method to generate unique IDs for AuthIdentity records in OAuthService
Implement getNextAuthIdentityId to ensure unique ID assignment during OAuth identity creation. Update existing identity creation calls to utilize this new method, enhancing data integrity in the OAuth flow.
2026-05-15 09:27:30 +02:00
..

TimeClock Backend API v3.0

Node.js/Express Backend für die TimeClock Zeiterfassungsanwendung.

Installation

npm install

Konfiguration

Erstellen Sie eine .env Datei im Backend-Verzeichnis:

PORT=3000
NODE_ENV=development

Starten

Entwicklung (mit Auto-Reload)

npm run dev

Produktion

npm start

API-Dokumentation

Base URL

http://localhost:3010/api

Endpunkte

Health Check

GET /api/health

Response:

{
  "status": "ok",
  "message": "TimeClock API v3.0.0",
  "timestamp": "2025-10-15T10:00:00.000Z"
}

Alle Zeiteinträge abrufen

GET /api/time-entries

Einzelnen Zeiteintrag abrufen

GET /api/time-entries/:id

Neuen Zeiteintrag erstellen

POST /api/time-entries
Content-Type: application/json

{
  "project": "Mein Projekt",
  "description": "Beschreibung"
}

Zeiteintrag aktualisieren

PUT /api/time-entries/:id
Content-Type: application/json

{
  "endTime": "2025-10-15T10:30:00.000Z",
  "description": "Aktualisierte Beschreibung"
}

Zeiteintrag löschen

DELETE /api/time-entries/:id

Statistiken abrufen

GET /api/time-entries/stats/summary

Response:

{
  "totalEntries": 10,
  "completedEntries": 8,
  "runningEntries": 2,
  "totalHours": "42.50",
  "totalSeconds": 153000,
  "projectStats": {
    "Projekt A": {
      "duration": 86400,
      "count": 5
    }
  }
}

Datenmodell

TimeEntry

{
  id: Number,
  startTime: String (ISO 8601),
  endTime: String (ISO 8601) | null,
  description: String,
  project: String,
  duration: Number (Sekunden) | null,
  isRunning: Boolean
}

Dependencies

  • express - Web-Framework
  • cors - CORS-Middleware
  • helmet - Sicherheits-Middleware
  • morgan - HTTP Request Logger
  • dotenv - Environment Variables

Entwicklung

Der aktuelle Stand verwendet In-Memory-Speicher. Für eine Produktionsumgebung sollte eine Datenbank integriert werden:

  • MongoDB mit mongoose
  • PostgreSQL mit pg/sequelize
  • MySQL mit mysql2/sequelize