Files
Torsten Schulz (local) 62fcdb821e Update footer to display app version and adjust styling
Refactor the footer in App.vue to include the application version and improve layout with flexbox. Remove the version display from StatusBox.vue and update the app version in version.js from 3.0.0 to 3.1.0.
2026-05-15 11:52:34 +02:00
..

TimeClock Frontend v3.0

Vue 3 Frontend für die TimeClock Zeiterfassungsanwendung.

Installation

npm install

Entwicklung

npm run dev

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

Build

npm run build

Die Build-Dateien werden im dist/ Ordner erstellt.

Preview (nach Build)

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:

// 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:

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