# TimeClock Frontend v3.0

Vue 3 Frontend für die TimeClock Zeiterfassungsanwendung.

## Installation

```bash
npm install
```

## Entwicklung

```bash
npm run dev
```

Öffnen Sie `http://localhost:5010` in Ihrem Browser.

## Build

```bash
npm run build
```

Die Build-Dateien werden im `dist/` Ordner erstellt.

## Preview (nach Build)

```bash
npm run preview
```

## Technologien

- **Vue 3** - Progressive JavaScript Framework
- **Vue Router** - Offizielle Router-Bibliothek
- **Pinia** - State Management
- **Vite** - Next Generation Frontend Tooling

## Projektstruktur

```
src/
├── assets/          # CSS und statische Assets
├── components/      # Wiederverwendbare Komponenten
├── router/          # Vue Router Konfiguration
├── stores/          # Pinia Stores
├── views/           # Seiten-Komponenten
│   ├── Dashboard.vue
│   ├── Entries.vue
│   └── Stats.vue
├── App.vue          # Root-Komponente
└── main.js          # Entry Point
```

## Features

### Dashboard
- Timer starten/stoppen
- Echtzeit-Anzeige der laufenden Zeit
- Projekt und Beschreibung eingeben
- Letzte 5 Einträge anzeigen

### Einträge
- Tabellarische Übersicht aller Einträge
- Status-Anzeige (laufend/beendet)
- Einträge löschen

### Statistiken
- Gesamtstatistiken
- Projekt-basierte Auswertungen
- Visualisierung der Arbeitszeit

## State Management

Die Anwendung verwendet Pinia für zentrales State Management:

```javascript
// stores/timeStore.js
const timeStore = useTimeStore()

// Verfügbare Actions
timeStore.fetchEntries()
timeStore.startTimer({ project, description })
timeStore.stopTimer()
timeStore.deleteEntry(id)
timeStore.fetchStats()
```

## API-Konfiguration

Die API-URL ist in `src/stores/timeStore.js` konfiguriert:

```javascript
const API_URL = 'http://localhost:3010/api'
```

Für Produktion sollte dies in eine Environment-Variable verschoben werden.

## Styling

Die Anwendung verwendet:
- Custom CSS mit CSS Variables
- Moderne Gradients
- Responsive Design
- Card-basiertes Layout

