Compare commits

..

2 Commits

7 changed files with 387 additions and 0 deletions

79
README.Frontend.md Normal file
View File

@ -0,0 +1,79 @@
# Frontend-Wiederherstellung und Installation
Diese Anleitung erklärt, wie du das Frontend auf den Stand von Torbens letztem Commit zurücksetzen und installieren kannst.
## Vorhandene Skripte
Es wurden drei Skripte erstellt, um die Wiederherstellung des Frontends zu erleichtern:
1. `fix-frontend-install.sh` - Master-Skript, das beide unten genannten Skripte ausführt
2. `packages/restore-torben-frontend.sh` - Setzt das Frontend auf Torbens letzten Commit zurück
3. `packages/install-torben-frontend.sh` - Installiert die Abhängigkeiten des wiederhergestellten Frontends
## Schnelle Lösung
Für die schnellste Lösung führe einfach das Master-Skript aus:
```bash
chmod +x fix-frontend-install.sh
./fix-frontend-install.sh
```
Das Skript wird:
1. Das aktuelle Frontend-Verzeichnis sichern (optional)
2. Das Frontend auf Torbens letzten Commit (27. Mai 2024) zurücksetzen
3. Die Änderungen committen (optional)
4. Die Frontend-Abhängigkeiten installieren
5. Das Frontend bauen, um die Installation zu verifizieren
## Manuelle Schritte
Wenn du die Schritte manuell ausführen möchtest:
### 1. Frontend zurücksetzen
```bash
chmod +x packages/restore-torben-frontend.sh
./packages/restore-torben-frontend.sh
```
### 2. Frontend installieren
```bash
chmod +x packages/install-torben-frontend.sh
./packages/install-torben-frontend.sh
```
## Das System starten
### Frontend starten
```bash
cd packages/reservation-platform
pnpm dev
```
Das Frontend ist dann unter http://localhost:3000 erreichbar.
### Backend starten
```bash
cd backend
source venv/bin/activate
python app.py
```
Das Backend läuft dann auf http://localhost:5000.
### Backend-Autostart konfigurieren
Für den automatischen Start des Backends beim Hochfahren:
```bash
sudo ./backend/autostart-backend.sh
```
## Bekannte Probleme
- Wenn beim Frontend-Start Fehler auftreten, überprüfe die .env-Datei in packages/reservation-platform/
- Stelle sicher, dass das Backend erreichbar ist unter der URL, die in NEXT_PUBLIC_API_URL konfiguriert ist

44
backend/autostart-backend.sh Executable file
View File

@ -0,0 +1,44 @@
#!/bin/bash
# MYP Backend Autostart-Skript
# Installiert den MYP Backend-Dienst für automatischen Start beim Hochfahren
# Skript muss als root ausgeführt werden
if [ "$EUID" -ne 0 ]; then
echo "Dieses Skript muss als root ausgeführt werden."
echo "Bitte mit 'sudo' ausführen."
exit 1
fi
# Aktuelles Verzeichnis bestimmen
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo "Installiere MYP Backend Service aus: $SCRIPT_DIR"
# Überprüfen, ob die Service-Datei existiert
if [ ! -f "$SCRIPT_DIR/myp-backend.service" ]; then
echo "Fehler: myp-backend.service nicht gefunden!"
exit 1
fi
# Service-Datei in systemd-Verzeichnis kopieren
cp "$SCRIPT_DIR/myp-backend.service" /etc/systemd/system/
echo "Service-Datei nach /etc/systemd/system/ kopiert."
# Systemd neu laden und Service aktivieren
systemctl daemon-reload
systemctl enable myp-backend.service
echo "MYP Backend Service wurde für Autostart beim Systemstart aktiviert."
# Aktuellen Status anzeigen
echo "Starte den MYP Backend Service..."
systemctl start myp-backend.service
systemctl status myp-backend.service
echo ""
echo "Installation abgeschlossen!"
echo "Verwende folgende Befehle zur Steuerung des Dienstes:"
echo " sudo systemctl start myp-backend # Service starten"
echo " sudo systemctl stop myp-backend # Service stoppen"
echo " sudo systemctl restart myp-backend # Service neu starten"
echo " sudo systemctl status myp-backend # Status anzeigen"
echo " journalctl -u myp-backend -f # Logs anzeigen"

View File

@ -0,0 +1,14 @@
[Unit]
Description=MYP Backend Service
After=network.target
[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/Projektarbeit-MYP/backend
ExecStart=/home/pi/Projektarbeit-MYP/backend/venv/bin/python app.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

42
fix-frontend-install.sh Executable file
View File

@ -0,0 +1,42 @@
#!/bin/bash
# Master-Skript zur Wiederherstellung und Installation des Frontends
# Dieses Skript führt die nötigen Schritte aus, um auf Torbens Frontend zurückzukehren
set -e # Beende das Skript bei Fehlern
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
LOG_FILE="$SCRIPT_DIR/frontend-fix.log"
# Logfunktion
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}
# Lösche Log-Datei, falls vorhanden
> "$LOG_FILE"
log "Beginne Frontend-Wiederherstellung und Installation"
# Stelle sicher, dass die Skripte ausführbar sind
chmod +x "$SCRIPT_DIR/packages/restore-torben-frontend.sh"
chmod +x "$SCRIPT_DIR/packages/install-torben-frontend.sh"
# Führe das Wiederherstellungsskript aus
log "Führe Wiederherstellungsskript aus..."
"$SCRIPT_DIR/packages/restore-torben-frontend.sh"
# Führe das Installationsskript aus
log "Führe Installationsskript aus..."
"$SCRIPT_DIR/packages/install-torben-frontend.sh"
log "Der Wiederherstellungs- und Installationsprozess ist abgeschlossen."
log ""
log "Um das Frontend zu starten:"
log " cd $SCRIPT_DIR/packages/reservation-platform && pnpm dev"
log ""
log "Um das Backend zu starten:"
log " cd $SCRIPT_DIR/backend && source venv/bin/activate && python app.py"
log ""
log "Um das Backend automatisch beim Systemstart zu starten, führe aus (als root):"
log " sudo $SCRIPT_DIR/backend/autostart-backend.sh"

View File

@ -0,0 +1,66 @@
#!/bin/bash
# Frontend-Installationsskript für Torbens Version
# Installiert und konfiguriert das Frontend auf der Basis von Torbens Code
set -e # Beende das Skript bei Fehlern
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
FRONTEND_DIR="$SCRIPT_DIR/reservation-platform"
LOG_FILE="$SCRIPT_DIR/frontend-install.log"
# Logfunktion
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}
# Lösche Log-Datei, falls vorhanden
> "$LOG_FILE"
log "Beginne Installation des Torben-Frontends"
# Überprüfe, ob das Verzeichnis existiert
if [ ! -d "$FRONTEND_DIR" ]; then
log "FEHLER: Das Frontend-Verzeichnis existiert nicht. Führe zuerst restore-torben-frontend.sh aus."
exit 1
fi
# Wechsle ins Frontend-Verzeichnis
cd "$FRONTEND_DIR"
log "Arbeite im Verzeichnis: $FRONTEND_DIR"
# Erstelle .env-Datei, falls sie nicht existiert
if [ ! -f ".env" ]; then
log "Erstelle .env-Datei aus .env.example"
if [ -f ".env.example" ]; then
cp .env.example .env
# Setze Backend-URL für lokale Entwicklung
echo "# Konfiguriert für lokales Backend" >> .env
echo "NEXT_PUBLIC_API_URL=http://localhost:5000" >> .env
log ".env-Datei erstellt und konfiguriert"
else
log "WARNUNG: .env.example nicht gefunden, erstelle minimale .env"
echo "NEXT_PUBLIC_API_URL=http://localhost:5000" > .env
fi
fi
# Installiere Abhängigkeiten
log "Installiere Frontend-Abhängigkeiten mit pnpm"
if command -v pnpm &> /dev/null; then
pnpm install 2>&1 | tee -a "$LOG_FILE"
else
log "FEHLER: pnpm ist nicht installiert. Bitte installiere pnpm mit 'npm install -g pnpm'"
exit 1
fi
# Baue das Projekt, um zu prüfen, ob alles funktioniert
log "Baue das Frontend, um die Installation zu verifizieren"
pnpm build 2>&1 | tee -a "$LOG_FILE"
log "Installation abgeschlossen!"
log ""
log "Starte das Frontend mit: cd $FRONTEND_DIR && pnpm dev"
log "Das Frontend wird dann verfügbar sein unter: http://localhost:3000"
log ""
log "Stelle sicher, dass das Backend läuft mit: cd $SCRIPT_DIR/../backend && source venv/bin/activate && python app.py"

View File

@ -0,0 +1,72 @@
#!/bin/bash
# Skript zum Rückgängigmachen der aktuellen Frontend-Installation
# und Wiederherstellung des Torben-Frontends
set -e # Beende das Skript bei Fehlern
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
FRONTEND_DIR="$SCRIPT_DIR/reservation-platform"
LOG_FILE="$SCRIPT_DIR/frontend-restore.log"
# Logfunktion
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}
# Lösche Log-Datei, falls vorhanden
> "$LOG_FILE"
log "Beginne mit der Wiederherstellung des Frontend-Commits von Torben"
# Überprüfe, ob wir in einem Git-Repository sind
if ! git -C "$SCRIPT_DIR" rev-parse --is-inside-work-tree > /dev/null 2>&1; then
log "FEHLER: Das Skript muss innerhalb eines Git-Repositories ausgeführt werden"
exit 1
fi
# Sichere aktuelle Änderungen, falls gewünscht
read -p "Möchtest du aktuelle ungespeicherte Änderungen sichern? (j/n): " backup_changes
if [[ "$backup_changes" == "j" ]]; then
BACKUP_DIR="$SCRIPT_DIR/../frontend-backup-$(date '+%Y%m%d-%H%M%S')"
log "Erstelle Backup in $BACKUP_DIR"
mkdir -p "$BACKUP_DIR"
if [ -d "$FRONTEND_DIR" ]; then
cp -r "$FRONTEND_DIR" "$BACKUP_DIR/"
log "Frontend-Backup erstellt in $BACKUP_DIR/reservation-platform"
else
log "Warnung: Frontend-Verzeichnis existiert nicht, kein Backup nötig"
fi
fi
# Resette das Frontend auf den Torben-Commit (27. Mai 2024)
TORBEN_COMMIT="3fd586caaf131006c429b48ee89d757062d4c9a1"
log "Resette Frontend auf Torben's Commit ($TORBEN_COMMIT)"
# Lösche ggf. vorhandenes Frontend-Verzeichnis
if [ -d "$FRONTEND_DIR" ]; then
log "Lösche existierendes Frontend-Verzeichnis"
rm -rf "$FRONTEND_DIR"
fi
# Checkout das Frontend vom Torben-Commit
log "Checkout Frontend aus dem Commit $TORBEN_COMMIT"
git -C "$SCRIPT_DIR" checkout $TORBEN_COMMIT -- reservation-platform
log "Frontend wurde erfolgreich auf Torben's Version zurückgesetzt"
# Erstelle einen Commit mit der Wiederherstellung, falls gewünscht
read -p "Möchtest du die Wiederherstellung committen? (j/n): " commit_changes
if [[ "$commit_changes" == "j" ]]; then
git -C "$SCRIPT_DIR" add reservation-platform
git -C "$SCRIPT_DIR" commit -m "Setze Frontend auf den Stand von Torben zurück (Commit: $TORBEN_COMMIT)"
log "Änderungen wurden committet"
else
log "Änderungen wurden NICHT committet"
fi
log "Frontend-Wiederherstellung abgeschlossen"
log "Um das Frontend zu starten, führe folgendes aus:"
log "cd $FRONTEND_DIR && pnpm install && pnpm dev"

70
packages/rollback-to-current.sh Executable file
View File

@ -0,0 +1,70 @@
#!/bin/bash
# Skript, um das Frontend auf den aktuellen Stand im Git-Repository zurückzusetzen
set -e # Beende das Skript bei Fehlern
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
FRONTEND_DIR="$SCRIPT_DIR/reservation-platform"
LOG_FILE="$SCRIPT_DIR/frontend-rollback.log"
# Logfunktion
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}
# Lösche Log-Datei, falls vorhanden
> "$LOG_FILE"
log "Beginne mit dem Rollback des Frontends auf den aktuellen Stand im Repository"
# Überprüfe, ob wir in einem Git-Repository sind
if ! git -C "$SCRIPT_DIR" rev-parse --is-inside-work-tree > /dev/null 2>&1; then
log "FEHLER: Das Skript muss innerhalb eines Git-Repositories ausgeführt werden"
exit 1
fi
# Sichere aktuelle Änderungen, falls gewünscht
read -p "Möchtest du aktuelle ungespeicherte Änderungen sichern? (j/n): " backup_changes
if [[ "$backup_changes" == "j" ]]; then
BACKUP_DIR="$SCRIPT_DIR/../frontend-backup-$(date '+%Y%m%d-%H%M%S')"
log "Erstelle Backup in $BACKUP_DIR"
mkdir -p "$BACKUP_DIR"
if [ -d "$FRONTEND_DIR" ]; then
cp -r "$FRONTEND_DIR" "$BACKUP_DIR/"
log "Frontend-Backup erstellt in $BACKUP_DIR/reservation-platform"
else
log "Warnung: Frontend-Verzeichnis existiert nicht, kein Backup nötig"
fi
fi
# Hole den aktuellen Branch
CURRENT_BRANCH=$(git -C "$SCRIPT_DIR" rev-parse --abbrev-ref HEAD)
log "Aktueller Branch: $CURRENT_BRANCH"
# Lösche ggf. vorhandenes Frontend-Verzeichnis
if [ -d "$FRONTEND_DIR" ]; then
log "Lösche existierendes Frontend-Verzeichnis"
rm -rf "$FRONTEND_DIR"
fi
# Checkout das Frontend vom aktuellen Branch
log "Checkout Frontend vom aktuellen Branch ($CURRENT_BRANCH)"
git -C "$SCRIPT_DIR" checkout HEAD -- reservation-platform
log "Frontend wurde erfolgreich auf den aktuellen Stand im Repository zurückgesetzt"
# Erstelle einen Commit mit dem Rollback, falls gewünscht
read -p "Möchtest du den Rollback committen? (j/n): " commit_changes
if [[ "$commit_changes" == "j" ]]; then
git -C "$SCRIPT_DIR" add reservation-platform
git -C "$SCRIPT_DIR" commit -m "Setze Frontend auf den aktuellen Stand im Repository zurück"
log "Änderungen wurden committet"
else
log "Änderungen wurden NICHT committet"
fi
log "Frontend-Rollback abgeschlossen"
log "Um das Frontend zu installieren und zu starten, führe aus:"
log "cd $FRONTEND_DIR && pnpm install && pnpm dev"