🎉 Improved documentation and code organization in Backend 🌐
This commit is contained in:
65
README.md
65
README.md
@ -1,6 +1,6 @@
|
||||
# MYP Druckerverwaltungssystem
|
||||
|
||||
**Manage Your Printer** - Mercedes-Benz Werk 040 Berlin
|
||||
**Manage Your Printer** - Mercedes-Benz Werk 040 Berlin
|
||||
Vollständige 3D-Drucker Verwaltungsplattform mit Smart-Plug-Technologie
|
||||
|
||||
## 🎯 System-Übersicht
|
||||
@ -10,22 +10,26 @@ Vollständige 3D-Drucker Verwaltungsplattform mit Smart-Plug-Technologie
|
||||
### 🔑 Kernfunktionen
|
||||
|
||||
#### **Benutzer- und Rechteverwaltung**
|
||||
|
||||
- **Registrierung, Login und Rollenkonzept** (Admin/Benutzer)
|
||||
- **Administrierende** können Drucker und Nutzer verwalten
|
||||
- **Standard-Benutzer** können Reservierungen anlegen und Druckjobs verwalten
|
||||
|
||||
#### **Drucker- und Auftragsmanagement**
|
||||
|
||||
- **Zentrales Reservierungssystem** für Zeitfenster-Buchungen
|
||||
- **Automatische Drucker-Schaltung**: Einschalten zum Reservierungsstart, Ausschalten nach Ende
|
||||
- **Herstellerunabhängig**: Keine direkte Kommunikation mit 3D-Druckern - ausschließlich Stromsteuerung über Smart-Plug-Steckdosen
|
||||
- **Einfache Integration**: Keine Eingriffe in die Druckerhardware erforderlich
|
||||
|
||||
#### **Statistikerfassung**
|
||||
|
||||
- **Protokollierung** von Nutzungszeiten und abgeschlossenen Druckaufträgen
|
||||
- **Auswertungen** (z.B. Gesamtdruckzeit pro Zeitraum)
|
||||
- **Analytics-Dashboard** für Effizienzanalysen
|
||||
|
||||
#### **Offline-Fähigkeit & Kiosk-Modus**
|
||||
|
||||
- **Autonomer Betrieb** ohne Internetzugang nach Installation
|
||||
- **Raspberry Pi Kiosk-Modus**: Vollbild-Dashboard vor Ort
|
||||
- **Touch-Interface** für aktuelle Druckerbelegungen und Systemstatus
|
||||
@ -35,12 +39,14 @@ Vollständige 3D-Drucker Verwaltungsplattform mit Smart-Plug-Technologie
|
||||
Dieses Repository enthält **zwei sich ergänzende Projektarbeiten** für die IHK-Abschlussprüfung:
|
||||
|
||||
### 🏗️ **Backend-System** (Till Tomczak) - **KERN-INFRASTRUKTUR**
|
||||
|
||||
- **Entwickler**: Till Tomczak
|
||||
- **Fachrichtung**: Fachinformatiker für digitale Vernetzung
|
||||
- **Fachrichtung**: Fachinformatiker für digitale Vernetzung
|
||||
- **Technologie**: **Flask-basiertes Backend in Python** mit **SQLite-Datenbank**
|
||||
- **Verantwortung**: Hardware-Integration, REST-APIs und cyber-physische Vernetzung
|
||||
|
||||
### 📊 **Frontend-System** (Torben Haack) - **BENUTZEROBERFLÄCHE & ANALYTICS** - LEGACY
|
||||
|
||||
- **Entwickler**: Torben Haack
|
||||
- **Fachrichtung**: Fachinformatiker für Daten- und Prozessanalyse
|
||||
- **Technologie**: **Next.js-basierte Webanwendung** mit erweiterten Analytics (Legacy-Version)
|
||||
@ -49,6 +55,7 @@ Dieses Repository enthält **zwei sich ergänzende Projektarbeiten** für die IH
|
||||
## 🏗️ Technische Architektur
|
||||
|
||||
### Cyber-Physische Lösung
|
||||
|
||||
```
|
||||
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
|
||||
│ Frontend-Server │◄──►│ Backend-Server │◄──►│ Raspberry Pi │
|
||||
@ -64,6 +71,7 @@ Dieses Repository enthält **zwei sich ergänzende Projektarbeiten** für die IH
|
||||
```
|
||||
|
||||
### Kommunikations-Architektur
|
||||
|
||||
- **RESTful API**: Backend kommuniziert mit Frontend und externen Diensten
|
||||
- **HTTPS-Verschlüsselung**: Selbstsignierte Zertifikate für sichere Übertragung
|
||||
- **Progressive Web App (PWA)**: Offline-Funktionalität im Browser
|
||||
@ -72,6 +80,7 @@ Dieses Repository enthält **zwei sich ergänzende Projektarbeiten** für die IH
|
||||
## 🚀 Schnellstart
|
||||
|
||||
### Backend-System (Hardware & APIs)
|
||||
|
||||
```bash
|
||||
# Backend-Server automatisch installieren (Till Tomczaks System)
|
||||
cd backend
|
||||
@ -82,6 +91,7 @@ python app.py
|
||||
```
|
||||
|
||||
### Frontend-System (Web-Interface) - NEU: Automatische Installation
|
||||
|
||||
```bash
|
||||
# Frontend-Server automatisch installieren (Torben Haacks System)
|
||||
cd frontend
|
||||
@ -94,6 +104,7 @@ pnpm dev # Development-Server
|
||||
```
|
||||
|
||||
### Vollständiges System
|
||||
|
||||
```bash
|
||||
# Backend (API-Server)
|
||||
cd backend && sudo ./setup.sh
|
||||
@ -105,21 +116,26 @@ cd frontend && sudo ./setup.sh
|
||||
## 🌐 Systemzugriff
|
||||
|
||||
### Produktions-URLs (Nach Setup-Skript Installation)
|
||||
|
||||
- **Frontend (HTTPS)**: `https://m040tbaraspi001.de040.corpintra.net` (Torben Haacks Frontend)
|
||||
- **Frontend (Lokal)**: `https://localhost` (Fallback-Zugang)
|
||||
- **API-Backend**: `https://192.168.0.105:443/api` (Till Tomczaks APIs)
|
||||
- **Kiosk-Modus**: `https://192.168.0.105:443` (Lokales Touch-Interface)
|
||||
|
||||
### Development-URLs
|
||||
|
||||
- **Frontend (Dev)**: `http://localhost:3000` (Development-Server)
|
||||
- **Backend (Dev)**: `http://localhost:5000` (Development-API)
|
||||
|
||||
### Standard-Anmeldedaten
|
||||
|
||||
- **Benutzername**: `admin`
|
||||
- **Passwort**: `admin123`
|
||||
- **Passwort**: `744563017196A`
|
||||
|
||||
### SSL-Zertifikate (Mercedes)
|
||||
|
||||
Nach der automatischen Installation sind selbstsignierte Mercedes-Zertifikate verfügbar:
|
||||
|
||||
- **Domain**: `m040tbaraspi001.de040.corpintra.net`
|
||||
- **Organisation**: Mercedes-Benz AG
|
||||
- **Abteilung**: IT-Abteilung
|
||||
@ -170,6 +186,7 @@ Projektarbeit-MYP/
|
||||
## 🎯 Funktions-Aufgabenteilung
|
||||
|
||||
### Backend-Verantwortlichkeiten (Till Tomczak)
|
||||
|
||||
- ✅ **Smart-Plug-Steuerung**: TP-Link Tapo P110 WLAN-Steckdosen
|
||||
- ✅ **Automatische Drucker-Schaltung**: Zeitgesteuerte Ein-/Ausschaltung
|
||||
- ✅ **REST-API-Bereitstellung**: Vollständige API für alle Drucker-Operationen
|
||||
@ -180,6 +197,7 @@ Projektarbeit-MYP/
|
||||
- ✅ **Offline-Fähigkeit**: Autonomer Betrieb ohne Internet
|
||||
|
||||
### Frontend-Verantwortlichkeiten (Torben Haack)
|
||||
|
||||
- ✅ **Moderne Web-UI**: React-basierte Benutzeroberfläche
|
||||
- ✅ **Progressive Web App**: Offline-Funktionalität im Browser
|
||||
- ✅ **Advanced Analytics**: Interaktive Charts und Datenvisualisierung
|
||||
@ -192,6 +210,7 @@ Projektarbeit-MYP/
|
||||
## 🔗 API-Integration & Kommunikation
|
||||
|
||||
### Backend-REST-Endpunkte (Till Tomczak)
|
||||
|
||||
```typescript
|
||||
// Drucker-Management
|
||||
GET /api/printers // Alle Drucker abrufen
|
||||
@ -216,6 +235,7 @@ GET /api/reports // Report-Daten für Analytics
|
||||
```
|
||||
|
||||
### Frontend-Integration (Torben Haack)
|
||||
|
||||
```typescript
|
||||
// Backend-API Client - Konfiguriert für separaten Server
|
||||
export class MYPApiClient {
|
||||
@ -249,6 +269,7 @@ export const API_BASE_URL = {
|
||||
## 🖥️ Deployment-Szenarien
|
||||
|
||||
### Szenario 1: Automatische Produktions-Installation (Neu - Empfohlen)
|
||||
|
||||
```bash
|
||||
# Backend-Server (Raspberry Pi oder Linux-Server)
|
||||
cd backend
|
||||
@ -260,6 +281,7 @@ sudo ./setup.sh # Automatische Installation mit HTTPS auf Port 443
|
||||
```
|
||||
|
||||
### Szenario 2: Separate Server (Manuell)
|
||||
|
||||
```bash
|
||||
# Backend-Server (z.B. Raspberry Pi oder Linux-Server)
|
||||
cd backend
|
||||
@ -271,13 +293,14 @@ npm run build && npm start
|
||||
```
|
||||
|
||||
### Szenario 3: Docker-Deployment
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
backend:
|
||||
build: ./backend
|
||||
ports: ["5000:5000", "443:443"]
|
||||
|
||||
|
||||
frontend:
|
||||
build: ./frontend
|
||||
ports: ["80:80", "443:443"]
|
||||
@ -286,6 +309,7 @@ services:
|
||||
```
|
||||
|
||||
### Szenario 4: Raspberry Pi Kiosk (Lokal)
|
||||
|
||||
```bash
|
||||
# Vollständige Kiosk-Installation (Backend + Frontend)
|
||||
cd backend && sudo ./setup.sh # Backend mit Kiosk-Interface
|
||||
@ -295,6 +319,7 @@ cd frontend && sudo ./setup.sh # Frontend mit HTTPS-Server
|
||||
## 🔧 Konfiguration & Environment
|
||||
|
||||
### Backend-Konfiguration (.env)
|
||||
|
||||
```env
|
||||
# Flask-Server Einstellungen
|
||||
FLASK_HOST=0.0.0.0
|
||||
@ -312,6 +337,7 @@ OFFLINE_MODE=true
|
||||
```
|
||||
|
||||
### Frontend-Konfiguration (.env.local)
|
||||
|
||||
```env
|
||||
# Frontend-Server Einstellungen - HTTPS mit Mercedes SSL
|
||||
NEXT_PUBLIC_API_URL=https://192.168.0.105:443
|
||||
@ -333,6 +359,7 @@ SSL_KEY_PATH=/etc/ssl/certs/myp/frontend.key
|
||||
## 📊 Features im Überblick
|
||||
|
||||
### Backend-Features (Till Tomczak) - Cyber-Physische Integration
|
||||
|
||||
- **TP-Link Tapo P110 Integration**: Lokale WLAN-Steckdosen-Steuerung
|
||||
- **Automatische Zeitsteuerung**: Drucker Ein-/Ausschaltung nach Reservierung
|
||||
- **Herstellerunabhängigkeit**: Keine direkten Drucker-Eingriffe erforderlich
|
||||
@ -343,6 +370,7 @@ SSL_KEY_PATH=/etc/ssl/certs/myp/frontend.key
|
||||
- **Raspberry Pi Kiosk**: Touch-optimiertes Dashboard vor Ort
|
||||
|
||||
### Frontend-Features (Torben Haack) - Moderne Web-Oberfläche
|
||||
|
||||
- **Progressive Web App**: Offline-Funktionalität im Browser
|
||||
- **React 18 + Next.js 14**: Moderne, performante Web-Technologien
|
||||
- **Analytics-Dashboard**: Recharts-Visualisierungen für Nutzungsstatistiken
|
||||
@ -354,6 +382,7 @@ SSL_KEY_PATH=/etc/ssl/certs/myp/frontend.key
|
||||
## 🛠️ Entwicklung
|
||||
|
||||
### Backend-Entwicklung (Till Tomczak)
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
python -m venv venv
|
||||
@ -365,12 +394,14 @@ python app.py --debug
|
||||
### Frontend-Entwicklung (Torben Haack)
|
||||
|
||||
#### Automatische Installation (Empfohlen)
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
sudo ./setup.sh # Interaktives Setup-Menü
|
||||
```
|
||||
|
||||
#### Manuelle Entwicklung
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
pnpm install
|
||||
@ -379,18 +410,21 @@ pnpm dev
|
||||
```
|
||||
|
||||
#### Frontend-Setup-Skript Features
|
||||
|
||||
Das neue `frontend/setup.sh` bietet:
|
||||
|
||||
- **Vollständige Installation**: Docker, SSL-Zertifikate, Caddy Reverse Proxy
|
||||
- **Mercedes SSL-Zertifikate**: Selbstsignierte Zertifikate für `m040tbaraspi001.de040.corpintra.net`
|
||||
- **Automatischer HTTPS-Server**: Verfügbar auf Port 443 (nicht 3000)
|
||||
- **Systemd-Integration**: Automatischer Start beim Boot
|
||||
- **Interaktives Menü**:
|
||||
- **Interaktives Menü**:
|
||||
1. Vollständige Frontend-Installation
|
||||
2. SSL-Zertifikate neu generieren
|
||||
2. SSL-Zertifikate neu generieren
|
||||
3. Service-Status prüfen
|
||||
4. Beenden
|
||||
|
||||
### Integration testen
|
||||
|
||||
```bash
|
||||
# Backend-APIs testen
|
||||
curl http://localhost:5000/api/printers
|
||||
@ -403,27 +437,33 @@ curl -k https://localhost/health
|
||||
## 📚 Dokumentation
|
||||
|
||||
### Backend-Dokumentation (Till Tomczak)
|
||||
|
||||
- [`backend/README.md`](backend/README.md) - Hardware-Setup & API-Dokumentation
|
||||
- [`backend/docs/`](backend/docs/) - Raspberry Pi Konfiguration & Smart-Plug-Integration
|
||||
|
||||
### Frontend-Dokumentation (Torben Haack)
|
||||
|
||||
- [`frontend/README.md`](frontend/README.md) - UI-Entwicklung & Analytics
|
||||
- [`frontend/docs/`](frontend/docs/) - Component-Library & PWA-Features
|
||||
|
||||
### Gemeinsame Dokumentation
|
||||
|
||||
- [`docs/myp_documentation.md`](docs/myp_documentation.md) - Vollständige Projektdokumentation
|
||||
- [`docs/DEPLOYMENT.md`](docs/DEPLOYMENT.md) - Production-Deployment-Guide
|
||||
|
||||
## 🤝 Projektphilosophie
|
||||
|
||||
### Cyber-Physische Vernetzung
|
||||
|
||||
MYP stellt eine **cyber-physische Lösung** dar, die **IT-System (Reservierungsplattform) und Hardware (Smart-Plugs und Drucker) eng vernetzt**. Das System überbrückt die digitale und physische Welt durch intelligente Automatisierung.
|
||||
|
||||
### Komplementäre Expertisen
|
||||
|
||||
- **Till Tomczak**: Spezialist für Hardware-Integration und cyber-physische Vernetzung
|
||||
- **Torben Haack**: Spezialist für Frontend-Entwicklung und Datenanalyse
|
||||
|
||||
### Gemeinsame Ziele
|
||||
|
||||
- **Digitalisierung**: Modernisierung des Reservierungsprozesses
|
||||
- **Automatisierung**: Zeitgesteuerte Hardware-Steuerung ohne manuelle Eingriffe
|
||||
- **Benutzerfreundlichkeit**: Intuitive Bedienung für alle Stakeholder
|
||||
@ -432,12 +472,14 @@ MYP stellt eine **cyber-physische Lösung** dar, die **IT-System (Reservierungsp
|
||||
## 👥 Entwicklerteam
|
||||
|
||||
### Till Tomczak - **Backend-Infrastruktur & Hardware-Integration**
|
||||
|
||||
- **Cyber-Physische Systeme**: Smart-Plug-Integration und Hardware-Steuerung
|
||||
- **System-Architektur**: Flask-APIs und SQLite-Datenbank-Design
|
||||
- **DevOps**: Raspberry Pi Services und Produktions-Deployment
|
||||
- **Offline-Systeme**: Autonomer Betrieb ohne Internet-Abhängigkeiten
|
||||
|
||||
### Torben Haack - **Frontend-Entwicklung & Analytics**
|
||||
|
||||
- **Progressive Web Apps**: Moderne Browser-Technologien und Offline-Features
|
||||
- **User Interface**: React-Komponenten und responsive Design
|
||||
- **Datenvisualisierung**: Charts, Dashboards und Analytics
|
||||
@ -449,10 +491,9 @@ Dieses Projekt wurde für den internen Gebrauch bei Mercedes-Benz entwickelt.
|
||||
|
||||
---
|
||||
|
||||
**Backend-System**: Till Tomczak (Cyber-Physische Vernetzung & Hardware-Integration)
|
||||
**Frontend-System**: Torben Haack (Progressive Web App & Analytics)
|
||||
**Architektur**: Microservices mit REST-API-Integration
|
||||
**Technologie**: Flask + SQLite (Backend) + Next.js + React (Frontend)
|
||||
**Hardware**: Raspberry Pi + TP-Link Tapo P110 Smart-Plugs
|
||||
**Backend-System**: Till Tomczak (Cyber-Physische Vernetzung & Hardware-Integration)
|
||||
**Frontend-System**: Torben Haack (Progressive Web App & Analytics)
|
||||
**Architektur**: Microservices mit REST-API-Integration
|
||||
**Technologie**: Flask + SQLite (Backend) + Next.js + React (Frontend)
|
||||
**Hardware**: Raspberry Pi + TP-Link Tapo P110 Smart-Plugs
|
||||
**Entwickelt für**: Mercedes-Benz Werk 040 Berlin MYP
|
||||
|
||||
|
Reference in New Issue
Block a user