# 📦 MYP - Manage your Printer MYP *(Manage your Printer)* ist eine Plattform zur Reservierung von 3D-Druckern, die für die TBA im Werk 040, Berlin-Marienfelde, entwickelt wurde. > Frontend: https://git.i.mercedes-benz.com/TBA-Berlin-FI/MYP/tree/main/frontend > ⚠️ MYP ist zzt. in Entwicklung > ‼ Datenbank aus Blueprint steht im Konflikt zu MYP.sql - Integration muss besprochen werden > 💡 Vorschlag wenn machbar @Torben: Aufteilung der Datenbanken? API ist ja nur für Drucker zuständig; WebInterface für Authentifizierung, Sessions etc. > UltiMaker HTTP API: https://support.makerbot.com/s/article/1667412427787 --- # Datenbankstruktur (MYP.sql - Gerät: Reservation Pi) ### Printer - Speichert Informationen zu Druckern. - Beinhaltet Details wie Namen, Beschreibung und Betriebsstatus. - Verknüpft mit Druckaufträgen. ### PrintJob - Enthält alle Druckaufträge. - Jeder Auftrag ist einem Drucker und einem Benutzer zugeordnet. - Speichert Startzeit, Dauer und Kommentare zu den Aufträgen. - Erfassung, ob ein Auftrag abgebrochen wurde und die dazugehörige Begründung. ### Account - Verwaltet Benutzerkonten. - Speichert Authentifizierungsdetails wie Tokens und deren Ablaufzeiten. ### Session - Erfasst Session-Daten. - Beinhaltet eindeutige Session-Tokens und Ablaufdaten. ### User - Speichert Benutzerinformationen. - Verknüpft mit Druckaufträgen, Accounts und Sessions. ## Fremdschlüsselbeziehungen - `User` ist verknüpft mit `PrintJob`, `Account` und `Session` über Benutzer-ID. - `Printer` ist verknüpft mit `PrintJob` über die Drucker-ID. ## Installation und Start ### Windows 1. Stellen Sie sicher, dass Docker Desktop installiert und gestartet ist. 2. Öffnen Sie PowerShell und navigieren Sie zum Projektverzeichnis. 3. Führen Sie das Start-Skript aus: ``` .\start.ps1 ``` ### Linux/Mac 1. Stellen Sie sicher, dass Docker installiert und gestartet ist. 2. Öffnen Sie ein Terminal und navigieren Sie zum Projektverzeichnis. 3. Machen Sie die Skripte ausführbar: ``` chmod +x start.sh cleanup.sh ``` 4. Führen Sie das Start-Skript aus: ``` ./start.sh ``` ## Bereinigung der Umgebung Um eine vollständige Bereinigung aller Container, Images und Volumes durchzuführen, können Sie folgende Skripte verwenden: ### Windows ``` .\cleanup.ps1 ``` ### Linux/Mac ``` ./cleanup.sh ``` Die Bereinigung kann auch während des Starts der Anwendung durchgeführt werden, wenn alte Container erkannt werden. ## Backend-Interface Das Backend-Interface ist unter folgenden URLs erreichbar: - Produktionsumgebung: http://localhost:5000 - Debug-Server: http://localhost:5555 ## Frontend-Interface Das Frontend-Interface ist unter folgenden URLs erreichbar: - Produktionsumgebung: http://localhost:80 oder https://localhost:443 - Debug-Server: http://localhost:8081 ## SSH-Server Die Start-Skripte sorgen automatisch dafür, dass ein SSH-Server installiert, aktiviert und gestartet wird: - Unter Linux: Verwendet systemd, um den OpenSSH-Server zu aktivieren und zu starten - Unter Windows: Installiert und konfiguriert den Windows OpenSSH-Server Der SSH-Server wird so konfiguriert, dass er automatisch beim Systemstart aktiviert wird, um einen Fernzugriff auf das System zu ermöglichen. Auf Windows-Systemen wird auch eine entsprechende Firewall-Regel erstellt. ### Manuelles Einrichten des SSH-Servers Falls die automatische Installation fehlschlägt: #### Linux (Debian/Ubuntu) ``` sudo apt-get update sudo apt-get install openssh-server sudo systemctl enable ssh sudo systemctl start ssh ``` #### Windows 10/11 1. Öffnen Sie "Einstellungen" > "Apps" > "Optionale Features" 2. Klicken Sie auf "Feature hinzufügen" und wählen Sie "OpenSSH Server" 3. Nach der Installation öffnen Sie PowerShell als Administrator und führen Sie folgende Befehle aus: ``` Set-Service -Name sshd -StartupType Automatic Start-Service sshd New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (TCP-In)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 ```