217 lines
7.6 KiB
Markdown
217 lines
7.6 KiB
Markdown
# MYP V2 - Roadmap
|
|
|
|
## Projektübersicht
|
|
MYP V2 ist ein 3D-Drucker-Management-System mit automatischer Smart Plug-Steuerung für TP-Link Tapo P110 Geräte.
|
|
|
|
## Aktuelle Implementierung (Stand: Dezember 2024)
|
|
|
|
### ✅ Abgeschlossene Features
|
|
|
|
#### Backend-Infrastruktur
|
|
- **Flask-Anwendung** mit vollständiger REST-API
|
|
- **SQLite-Datenbank** mit SQLAlchemy ORM
|
|
- **Benutzerauthentifizierung** mit Flask-Login
|
|
- **Rollenbasierte Zugriffskontrolle** (Admin/User)
|
|
- **Job-Scheduler** für automatische Aufgabenausführung
|
|
- **Logging-System** mit konfigurierbaren Log-Levels
|
|
- **Konfigurationsmanagement** mit hardcodierten Credentials
|
|
|
|
#### Datenmodelle
|
|
- **User**: Benutzerverwaltung mit Rollen
|
|
- **Printer**: 3D-Drucker mit Smart Plug-Integration
|
|
- **Job**: Druckaufträge mit Zeitplanung
|
|
- **Stats**: Systemstatistiken und Metriken
|
|
|
|
#### API-Endpunkte
|
|
- **Authentifizierung**: Register, Login, Logout
|
|
- **Drucker-Management**: CRUD-Operationen
|
|
- **Job-Management**: Erstellen, Überwachen, Steuern von Druckaufträgen
|
|
- **Benutzer-Management**: Admin-Funktionen
|
|
- **Statistiken**: Systemmetriken und Berichte
|
|
- **Scheduler-Steuerung**: Start/Stop/Status des Job-Monitors
|
|
|
|
#### Smart Plug-Integration
|
|
- **TP-Link Tapo P110** Steuerung über PyP100
|
|
- **Automatisches Ein-/Ausschalten** basierend auf Job-Zeiten
|
|
- **Stromverbrauchsüberwachung**
|
|
- **Fehlerbehandlung** bei Verbindungsproblemen
|
|
|
|
#### Logging & Monitoring
|
|
- **Strukturiertes Logging** mit separaten Loggern für verschiedene Komponenten
|
|
- **Log-Rotation** und Archivierung
|
|
- **Startup-Informationen** und Systemstatus
|
|
- **Fehlerprotokollierung** mit Stack-Traces
|
|
|
|
### 🔧 Technische Architektur
|
|
|
|
#### Verzeichnisstruktur
|
|
```
|
|
MYP_V2/
|
|
├── app/
|
|
│ ├── blueprints/ # Flask Blueprints (leer)
|
|
│ ├── config/
|
|
│ │ └── settings.py # Konfiguration und Credentials
|
|
│ ├── models.py # Datenbankmodelle
|
|
│ ├── app.py # Haupt-Flask-Anwendung
|
|
│ ├── static/ # CSS, JS, Bilder (leer)
|
|
│ ├── templates/ # HTML-Templates (leer)
|
|
│ └── utils/
|
|
│ ├── job_scheduler.py # Background-Task-Scheduler
|
|
│ └── logging_config.py # Logging-Konfiguration
|
|
├── docs/ # Dokumentation
|
|
├── install/ # Installationsskripte
|
|
├── logs/ # Log-Dateien
|
|
│ ├── app/ # Anwendungs-Logs
|
|
│ ├── auth/ # Authentifizierungs-Logs
|
|
│ ├── jobs/ # Job-Logs
|
|
│ ├── printers/ # Drucker-Logs
|
|
│ └── scheduler/ # Scheduler-Logs
|
|
├── ROADMAP.md # Diese Datei
|
|
└── setup_myp.sh # Setup-Skript
|
|
```
|
|
|
|
#### Konfiguration
|
|
- **Hardcodierte Credentials** für Tapo-Geräte
|
|
- **Drucker-Konfiguration** mit IP-Adressen
|
|
- **Flask-Einstellungen** (Host, Port, Debug-Modus)
|
|
- **Session-Management** mit konfigurierbarer Lebensdauer
|
|
- **Scheduler-Einstellungen** mit aktivierbarem/deaktivierbarem Modus
|
|
|
|
## 🚀 Geplante Features
|
|
|
|
### Phase 1: Frontend-Entwicklung
|
|
- [ ] **React/Vue.js Frontend** für Benutzeroberfläche
|
|
- [ ] **Dashboard** mit Echtzeit-Status der Drucker
|
|
- [ ] **Job-Kalender** für Terminplanung
|
|
- [ ] **Benutzer-Management-Interface** für Admins
|
|
- [ ] **Responsive Design** für mobile Geräte
|
|
|
|
### Phase 2: Erweiterte Features
|
|
- [ ] **Datei-Upload** für 3D-Modelle (.stl, .gcode)
|
|
- [ ] **Druckzeit-Schätzung** basierend auf Dateianalyse
|
|
- [ ] **Material-Tracking** mit Verbrauchsberechnung
|
|
- [ ] **Wartungsplanung** für Drucker
|
|
- [ ] **Benachrichtigungssystem** (E-Mail, Push)
|
|
|
|
### Phase 3: Integration & Automatisierung
|
|
- [ ] **Octoprint-Integration** für erweiterte Druckersteuerung
|
|
- [ ] **Kamera-Integration** für Live-Überwachung
|
|
- [ ] **Temperatur-Monitoring** über zusätzliche Sensoren
|
|
- [ ] **Automatische Qualitätskontrolle** mit KI-basierter Bilderkennung
|
|
- [ ] **Multi-Standort-Support** für verteilte Druckerfarms
|
|
|
|
### Phase 4: Enterprise Features
|
|
- [ ] **Kostenverfolgung** pro Job und Benutzer
|
|
- [ ] **Reporting & Analytics** mit erweiterten Metriken
|
|
- [ ] **API-Dokumentation** mit Swagger/OpenAPI
|
|
- [ ] **Backup & Recovery** System
|
|
- [ ] **LDAP/Active Directory** Integration
|
|
|
|
## 🔒 Sicherheit & Compliance
|
|
|
|
### Aktuelle Sicherheitsmaßnahmen
|
|
- ✅ **Session-basierte Authentifizierung**
|
|
- ✅ **Rollenbasierte Zugriffskontrolle**
|
|
- ✅ **Passwort-Hashing** mit Werkzeug
|
|
- ✅ **SQL-Injection-Schutz** durch SQLAlchemy ORM
|
|
|
|
### Geplante Sicherheitsverbesserungen
|
|
- [ ] **JWT-Token-Authentifizierung** für API-Zugriff
|
|
- [ ] **Rate Limiting** für API-Endpunkte
|
|
- [ ] **HTTPS-Erzwingung** in Produktionsumgebung
|
|
- [ ] **Audit-Logging** für kritische Aktionen
|
|
- [ ] **Verschlüsselung** sensibler Daten in der Datenbank
|
|
|
|
## 📊 Performance & Skalierung
|
|
|
|
### Aktuelle Architektur
|
|
- **SQLite-Datenbank** für einfache Bereitstellung
|
|
- **Single-Thread-Scheduler** für Job-Monitoring
|
|
- **Synchrone API-Verarbeitung**
|
|
|
|
### Geplante Verbesserungen
|
|
- [ ] **PostgreSQL/MySQL** Support für größere Installationen
|
|
- [ ] **Redis** für Session-Storage und Caching
|
|
- [ ] **Celery** für asynchrone Task-Verarbeitung
|
|
- [ ] **Load Balancing** für Multi-Instance-Deployments
|
|
- [ ] **Containerisierung** mit Docker
|
|
|
|
## 🧪 Testing & Qualitätssicherung
|
|
|
|
### Geplante Test-Infrastruktur
|
|
- [ ] **Unit Tests** für alle Komponenten
|
|
- [ ] **Integration Tests** für API-Endpunkte
|
|
- [ ] **End-to-End Tests** für kritische Workflows
|
|
- [ ] **Performance Tests** für Lastszenarien
|
|
- [ ] **Security Tests** für Penetrationstests
|
|
|
|
## 📚 Dokumentation
|
|
|
|
### Geplante Dokumentation
|
|
- [ ] **API-Dokumentation** mit interaktiven Beispielen
|
|
- [ ] **Benutzerhandbuch** für End-User
|
|
- [ ] **Administrator-Handbuch** für System-Setup
|
|
- [ ] **Entwickler-Dokumentation** für Beiträge
|
|
- [ ] **Deployment-Guide** für verschiedene Umgebungen
|
|
|
|
## 🔄 Deployment & DevOps
|
|
|
|
### Aktuelle Bereitstellung
|
|
- **Manuelles Setup** über setup_myp.sh
|
|
- **Lokale Entwicklungsumgebung**
|
|
|
|
### Geplante Verbesserungen
|
|
- [ ] **Docker-Container** für einfache Bereitstellung
|
|
- [ ] **CI/CD-Pipeline** mit GitHub Actions
|
|
- [ ] **Automatisierte Tests** bei Pull Requests
|
|
- [ ] **Staging-Umgebung** für Pre-Production-Tests
|
|
- [ ] **Monitoring & Alerting** mit Prometheus/Grafana
|
|
|
|
## 📈 Metriken & KPIs
|
|
|
|
### Zu verfolgende Metriken
|
|
- **Druckzeit-Effizienz**: Verhältnis geplante vs. tatsächliche Druckzeit
|
|
- **Systemverfügbarkeit**: Uptime der Drucker und Services
|
|
- **Benutzeraktivität**: Anzahl aktiver Benutzer und Jobs
|
|
- **Fehlerrate**: Anzahl fehlgeschlagener Jobs und Systemfehler
|
|
- **Ressourcenverbrauch**: CPU, Memory, Disk Usage
|
|
|
|
## 🎯 Meilensteine
|
|
|
|
### Q1 2025
|
|
- [ ] Frontend-Grundgerüst implementieren
|
|
- [ ] Basis-Dashboard mit Drucker-Status
|
|
- [ ] Job-Erstellung über Web-Interface
|
|
|
|
### Q2 2025
|
|
- [ ] Datei-Upload und -Management
|
|
- [ ] Erweiterte Job-Steuerung
|
|
- [ ] Benutzer-Management-Interface
|
|
|
|
### Q3 2025
|
|
- [ ] Mobile App (React Native/Flutter)
|
|
- [ ] Erweiterte Integrationen (Octoprint, Kameras)
|
|
- [ ] Performance-Optimierungen
|
|
|
|
### Q4 2025
|
|
- [ ] Enterprise-Features
|
|
- [ ] Multi-Tenant-Support
|
|
- [ ] Vollständige API-Dokumentation
|
|
|
|
## 🤝 Beitrag & Community
|
|
|
|
### Entwicklungsrichtlinien
|
|
- **Code-Qualität**: Einhaltung von PEP 8 für Python
|
|
- **Dokumentation**: Vollständige Docstrings für alle Funktionen
|
|
- **Testing**: Mindestens 80% Code-Coverage
|
|
- **Security**: Regelmäßige Sicherheitsüberprüfungen
|
|
|
|
### Lizenzierung
|
|
- **Open Source**: MIT-Lizenz für Community-Beiträge
|
|
- **Enterprise**: Kommerzielle Lizenz für erweiterte Features
|
|
|
|
---
|
|
|
|
**Letzte Aktualisierung**: Dezember 2024
|
|
**Version**: 2.0.0-alpha
|
|
**Maintainer**: MYP Development Team |