diff --git a/README.md b/README.md index 3ac3eb0..7f30789 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,90 @@ -# secu-frontend +# SeCu Frontend -SeCu Frontend - Vue 3 + TailwindCSS \ No newline at end of file +Vue 3 + TailwindCSS Frontend für die SeCu Mitarbeiterverwaltung. + +## Tech Stack + +- **Framework:** Vue 3 (Composition API) +- **Build:** Vite +- **Styling:** TailwindCSS +- **State:** Pinia +- **Routing:** Vue Router + +## Setup + +```bash +# Dependencies installieren +npm install + +# Development Server starten +npm run dev + +# Production Build +npm run build +``` + +## Umgebungsvariablen + +Erstelle `.env.local`: + +``` +VITE_API_URL=http://localhost:8004/api +``` + +Für Production: +``` +VITE_API_URL=https://api.secu.kronos-soulution.de/api +``` + +## Struktur + +``` +src/ +├── api/ # API Client +├── assets/ # CSS & statische Dateien +├── components/ +│ ├── common/ # Wiederverwendbare Komponenten +│ └── layout/ # Layout-Komponenten (Sidebar, Header) +├── composables/ # Vue Composables +├── router/ # Vue Router Konfiguration +├── stores/ # Pinia Stores +│ └── auth.ts # Authentifizierung +└── views/ # Seiten + ├── LoginView.vue + ├── DashboardView.vue + ├── OrdersView.vue + ├── OrderDetailView.vue + ├── UsersView.vue + ├── AvailabilityView.vue + ├── TimesheetsView.vue + ├── SettingsView.vue + └── ModulesView.vue +``` + +## Features + +- 🔐 **Login/Registrierung** mit JWT Auth +- 📊 **Dashboard** mit Statistiken +- 📋 **Aufträge** erstellen, bearbeiten, zuweisen +- 👥 **Mitarbeiter** verwalten (Chef/Disponent) +- 📅 **Verfügbarkeit** im Kalender melden +- ⏱️ **Stundenzettel** einreichen & genehmigen +- ⚙️ **Module** aktivieren/deaktivieren (Chef) +- 🌙 **Dark Mode** Support +- 📱 **Responsive** Design + +## Rollen + +| Rolle | Zugriff | +|-------|---------| +| Chef | Vollzugriff + Module verwalten | +| Disponent | Mitarbeiter + Aufträge + Stundenzettel | +| Mitarbeiter | Eigene Aufträge, Verfügbarkeit, Stundenzettel | + +## Port + +Development: `3006` + +--- + +*SeCu Frontend v1.0.0* diff --git a/index.html b/index.html new file mode 100644 index 0000000..09ff0c9 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + +
+ + + ++ Willkommen zurück bei SeCu. +
+Offene Aufträge
+{{ stats.openOrders }}
+Meine Aufträge
+{{ stats.myOrders }}
+Ausstehende Stundenzettel
+{{ stats.pendingTimesheets }}
+Heute verfügbar
++ {{ stats.availableToday ? 'Ja' : 'Nicht gemeldet' }} +
++ 📍 {{ order.location }} +
+Mitarbeiterverwaltung
+Benutzer
+{{ systemStatus.stats?.user_count || 0 }}
+Aufträge
+{{ systemStatus.stats?.order_count || 0 }}
+Stundenzettel
+{{ systemStatus.stats?.timesheet_count || 0 }}
+Aktive Module
+{{ systemStatus.stats?.enabled_modules || 0 }}
+{{ mod.description }}
++ Core-Module (Basis-System, Auftragsverwaltung) können nicht deaktiviert werden. + Änderungen an Modulen werden sofort wirksam. +
++ {{ order.description }} +
+Ort
+📍 {{ order.location }}
+Start
+{{ new Date(order.start_time).toLocaleString('de-DE') }}
+Kunde
+{{ order.client_name }}
+Benötigte MA
+{{ assignments.length }}/{{ order.required_staff }}
+Status ändern:
+{{ assignment.user_name }}
+{{ assignment.user_phone }}
+{{ order.special_instructions }}
+{{ authStore.fullName }}
+{{ authStore.user?.email }}
+{{ authStore.user?.role }}
+{{ new Date(ts.work_date).toLocaleDateString('de-DE') }}
++ {{ ts.start_time }} - {{ ts.end_time }} + ({{ ts.hours_worked }}h) +
+📋 {{ ts.order_title }}
+👤 {{ ts.user_name }}
+| Name | +Rolle | +Status | ++ | |
|---|---|---|---|---|
| {{ user.first_name }} {{ user.last_name }} | +{{ user.email }} | +{{ getRoleLabel(user.role) }} | +{{ user.active ? 'Aktiv' : 'Inaktiv' }} | ++ + | +