# SkillMate - Skill-Management für Sicherheitsbehörden

SkillMate ist eine spezialisierte Anwendung zur Verwaltung von Fähigkeiten und Kompetenzen der Mitarbeitenden in Sicherheitsbehörden. Die Anwendung läuft lokal bei jedem Nutzer und kann über ein Admin-Panel zentral verwaltet werden.

## Features

- 🔍 **Skill-basierte Suche**: Finden Sie Mitarbeitende anhand ihrer Fähigkeiten
- 👥 **Mitarbeitendenverwaltung**: Umfassende Profile mit Skills, Sprachen und Spezialisierungen
- 🔐 **Sicherheitsüberprüfungen**: Verwaltung von Ü2/Ü3-Clearances
- 🌓 **Dark/Light Mode**: Anpassbare Benutzeroberfläche
- 🔄 **Synchronisation**: Zentrale Datenverwaltung über Admin-Panel
- 💻 **Offline-fähig**: Lokale SQLite-Datenbank für Offline-Betrieb

## Systemanforderungen

- Node.js 18.x oder höher
- npm 8.x oder höher
- Windows 10/11, macOS 10.15+, oder Linux

## Installation

### Windows

1. Führen Sie die Datei `setup.bat` aus
2. Folgen Sie den Anweisungen auf dem Bildschirm

### macOS/Linux

1. Öffnen Sie ein Terminal im Projektverzeichnis
2. Führen Sie aus: `./setup.sh`
3. Folgen Sie den Anweisungen

## Entwicklung

### Alle Services starten

**Windows:** `run-dev.cmd`  
**macOS/Linux:** `python3 main.py --mode dev`

Dies startet:
- Backend auf http://localhost:3004
- Frontend auf http://localhost:5173
- Admin Panel auf http://localhost:5174

### Einzelne Services

```bash
# Backend
cd backend && npm run dev

# Frontend (Electron)
cd frontend && npm run dev

# Admin Panel
cd admin-panel && npm run dev
```

## Production Build

### Production Start (Windows)

`run-prod.cmd`

### Ausgabe

- **Electron App**: `frontend/dist/` (Installer für Windows/macOS/Linux)
- **Backend**: `backend/dist/` (Node.js Server)
- **Admin Panel**: `admin-panel/dist/` (Static Web Files)

## Projektstruktur

```
SkillMate/
├── frontend/          # Electron Desktop App
├── backend/           # Express.js API Server
├── admin-panel/       # React Admin Interface
├── shared/            # Gemeinsame TypeScript-Typen
├── main.py            # Windows-optimierter Starter (auch für Unix nutzbar)
├── run-dev.cmd        # Windows Dev-Start
├── run-prod.cmd       # Windows Prod-Start
└── README.md          # Diese Datei
```

## Standard-Login

**Admin Panel:**
- Benutzername: `admin`
- Passwort: `admin123`

⚠️ **WICHTIG**: Ändern Sie das Standard-Passwort nach der ersten Anmeldung!

## Konfiguration

### Backend (.env)
```env
JWT_SECRET=your-secret-key
PORT=3001
NODE_ENV=production
LOG_LEVEL=info
```

### Admin Panel (.env)
```env
VITE_API_URL=http://your-server:3001/api
```

## Deployment

### Lokale Desktop-App

1. Erstellen Sie den Production Build
2. Verteilen Sie den Installer aus `frontend/dist/`
3. Die App enthält das Backend und läuft komplett lokal

### Admin Panel im Netzwerk

1. Kopieren Sie `admin-panel/dist/` auf einen Webserver
2. Konfigurieren Sie die Backend-URL in der `.env`
3. Stellen Sie sicher, dass das Backend erreichbar ist

## Sicherheit

- JWT-basierte Authentifizierung
- Rollenbasierte Zugriffskontrolle (Admin, Poweruser, User)
- Lokale Datenhaltung mit SQLite
- Verschlüsselte Verbindungen (HTTPS in Production)

## Support

Bei Fragen oder Problemen erstellen Sie bitte ein Issue im Projekt-Repository.

## Lizenz

Proprietär - Nur für den internen Gebrauch in Sicherheitsbehörden.
