Projektarbeit-MYP/README.md

260 lines
5.2 KiB
Markdown

# MYP (Mercedes-Benz Yard Printing) Platform
Eine vollständige 3D-Drucker-Management-Plattform für Mercedes-Benz Werk 040 Berlin.
## Schnellstart
### Windows (PowerShell)
```powershell
# Als Administrator für vollständige Funktionalität
.\myp_installer.ps1
```
### Linux/Unix/macOS (Bash)
```bash
# Ausführbar machen und als Root für vollständige Funktionalität
chmod +x myp_installer.sh
sudo ./myp_installer.sh
```
Die konsolidierten Installer bieten folgende Funktionen:
- Systemvoraussetzungen prüfen
- Host-Konfiguration einrichten
- SSL-Zertifikate erstellen und verwalten
- Backend-Verbindung testen
- Frontend-/Backend-URL konfigurieren
- Debug-Server starten
- Vollständige MYP-Installation
- Umgebungs-Setup (Abhängigkeiten installieren)
- Anwendung starten (verschiedene Modi)
- Alte Dateien bereinigen
## Übersicht
Die MYP-Plattform ist eine moderne, webbasierte Lösung zur Verwaltung von 3D-Druckern in einer Unternehmensumgebung. Sie bietet:
- **Drucker-Management**: Überwachung und Steuerung von 3D-Druckern
- **Auftragsverwaltung**: Verwaltung von Druckaufträgen und Warteschlangen
- **Benutzerauthentifizierung**: GitHub OAuth und lokale Benutzerkonten
- **Smart-Plug-Integration**: Automatische Stromsteuerung über TP-Link Tapo-Steckdosen
- **SSL/HTTPS-Unterstützung**: Sichere Kommunikation mit selbstsignierten Zertifikaten
## Architektur
### Backend
- **Framework**: Flask (Python)
- **Datenbank**: SQLite
- **API**: RESTful API mit JSON
- **Authentifizierung**: Session-basiert mit Flask-Login
- **SSL**: Selbstsignierte Zertifikate
### Frontend
- **Framework**: Next.js (React)
- **Styling**: Tailwind CSS
- **Authentifizierung**: GitHub OAuth
- **API-Kommunikation**: Fetch API
## Installation
### Automatische Installation
Die einfachste Methode ist die Verwendung der konsolidierten Installer-Skripte:
#### Windows (PowerShell)
```powershell
# Als Administrator ausführen für vollständige Funktionalität
.\myp_installer.ps1
```
#### Linux/Unix/macOS (Bash)
```bash
# Ausführbar machen
chmod +x myp_installer.sh
# Als Root für vollständige Funktionalität
sudo ./myp_installer.sh
```
### Manuelle Installation
#### Voraussetzungen
- Python 3.6+ mit pip
- Node.js 16+ mit npm
- Docker und Docker Compose (optional)
- Git
#### Backend-Setup
```bash
cd backend
pip install -r requirements.txt
python app/app.py
```
#### Frontend-Setup
```bash
cd frontend
npm install
npm run dev
```
## Konfiguration
### Standard-Zugangsdaten
- **Admin E-Mail**: admin@mercedes-benz.com
- **Admin Passwort**: 744563017196A
### Umgebungsvariablen
#### Backend (.env)
```
SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F
DATABASE_PATH=database/myp.db
TAPO_USERNAME=till.tomczak@mercedes-benz.com
TAPO_PASSWORD=744563017196A
SSL_ENABLED=True
```
#### Frontend (.env.local)
```
NEXT_PUBLIC_API_URL=https://localhost:443
NEXT_PUBLIC_BACKEND_HOST=localhost
NEXT_PUBLIC_BACKEND_PROTOCOL=https
GITHUB_CLIENT_ID=7c5d8bef1a5519ec1fdc
GITHUB_CLIENT_SECRET=5f1e586204358fbd53cf5fb7d418b3f06ccab8fd
```
## SSL-Zertifikate
Die Plattform verwendet selbstsignierte SSL-Zertifikate für sichere Kommunikation. Diese werden automatisch von den Installer-Skripten erstellt.
### Manuelle Zertifikatserstellung
```bash
cd backend
python app/create_ssl_cert.py -c instance/ssl/myp.crt -k instance/ssl/myp.key -n localhost
```
## Docker-Deployment
```bash
# Entwicklung
docker-compose up -d
# Produktion
docker-compose -f docker-compose.prod.yml up -d
```
## Entwicklung
### Backend-Entwicklung
```bash
cd backend
python app/app.py --debug
```
### Frontend-Entwicklung
```bash
cd frontend
npm run dev
```
### Tests ausführen
```bash
# Backend-Tests
cd backend
python -m pytest
# Frontend-Tests
cd frontend
npm test
```
## API-Dokumentation
Die REST API ist unter `/api/docs` verfügbar, wenn der Backend-Server läuft.
### Wichtige Endpunkte
- `GET /api/printers` - Liste aller Drucker
- `POST /api/jobs` - Neuen Druckauftrag erstellen
- `GET /api/jobs/{id}` - Auftragsstatus abrufen
- `POST /api/auth/login` - Benutzeranmeldung
## Fehlerbehebung
### Häufige Probleme
#### SSL-Zertifikatsfehler
```bash
# Zertifikate neu erstellen
python backend/app/create_ssl_cert.py -c backend/instance/ssl/myp.crt -k backend/instance/ssl/myp.key -n localhost
```
#### Port bereits in Verwendung
```bash
# Prozesse auf Port 443 beenden
sudo lsof -ti:443 | xargs kill -9
```
#### Datenbankfehler
```bash
# Datenbank zurücksetzen
rm backend/database/myp.db
python backend/app/models.py
```
## Sicherheit
- Alle Passwörter sind in `CREDENTIALS.md` dokumentiert
- SSL/TLS-Verschlüsselung für alle Verbindungen
- Session-basierte Authentifizierung
- Rate Limiting für API-Endpunkte
## Lizenz
Dieses Projekt ist für den internen Gebrauch bei Mercedes-Benz AG bestimmt.
## Support
Bei Problemen oder Fragen wenden Sie sich an das Entwicklungsteam oder erstellen Sie ein Issue im Repository.
## Changelog
### Version 3.0
- Konsolidierte Installer-Skripte
- Verbesserte SSL-Unterstützung
- GitHub OAuth-Integration
- Erweiterte Drucker-Management-Funktionen
### Version 2.0
- Frontend-Neugestaltung mit Next.js
- REST API-Implementierung
- Docker-Unterstützung
### Version 1.0
- Grundlegende Drucker-Management-Funktionen
- Flask-Backend
- SQLite-Datenbank