feat: Major updates to backend structure and security enhancements
- Removed `COMMON_ERRORS.md` file to streamline documentation. - Added `Flask-Limiter` for rate limiting and `redis` for session management in `requirements.txt`. - Expanded `ROADMAP.md` to include completed security features and planned enhancements for version 2.2. - Enhanced `setup_myp.sh` for ultra-secure kiosk installation, including system hardening and security configurations. - Updated `app.py` to integrate CSRF protection and improved logging setup. - Refactored user model to include username and active status for better user management. - Improved job scheduler with uptime tracking and task management features. - Updated various templates for a more cohesive user interface and experience.
This commit is contained in:
128
backend/app/README.md
Normal file
128
backend/app/README.md
Normal file
@@ -0,0 +1,128 @@
|
||||
# MYP Platform - 3D-Drucker Reservierungssystem
|
||||
|
||||
Ein Reservierungssystem für 3D-Drucker, das automatisch TP-Link Tapo P110 Smart Plugs steuert, um die Stromversorgung von Druckern basierend auf den reservierten Zeitslots zu verwalten.
|
||||
|
||||
## Features
|
||||
|
||||
- Reservierung von 3D-Druckern für bestimmte Zeiträume
|
||||
- Automatische Steuerung der TP-Link Tapo P110 Smart Plugs
|
||||
- Echtzeit-Überwachung von laufenden Druckaufträgen
|
||||
- Administrationsbereich für Druckerverwaltung
|
||||
- Benutzerauthentifizierung und Autorisierung
|
||||
- Statistiken zu Druckaufträgen und Materialverbrauch
|
||||
- Dark Mode für eine angenehme Nutzung bei schlechten Lichtverhältnissen
|
||||
- Responsive Design für verschiedene Gerätegrößen
|
||||
|
||||
## Technologie-Stack
|
||||
|
||||
- **Backend**: Python 3.11 mit Flask
|
||||
- **Frontend**: HTML/CSS/JavaScript mit Tailwind CSS
|
||||
- **Datenbank**: SQLite mit SQLAlchemy ORM
|
||||
- **Authentifizierung**: Flask-Login
|
||||
- **Hardware-Integration**: PyP110 für Tapo Smart Plug Steuerung
|
||||
- **Automatisierung**: Integrierter Job-Scheduler für Drucker-Steuerung
|
||||
|
||||
## Systemanforderungen
|
||||
|
||||
- Python 3.11+
|
||||
- Node.js und npm (für Tailwind CSS)
|
||||
- Netzwerkzugang zu TP-Link Tapo P110 Smart Plugs
|
||||
- Unterstützte Betriebssysteme: Linux, Windows, macOS
|
||||
|
||||
## Installation
|
||||
|
||||
1. **Repository klonen**:
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd myp-platform
|
||||
```
|
||||
|
||||
2. **Python-Abhängigkeiten installieren**:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
3. **Node-Abhängigkeiten installieren**:
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
4. **Datenbank initialisieren**:
|
||||
```bash
|
||||
python3.11 init_db.py
|
||||
```
|
||||
|
||||
5. **CSS generieren**:
|
||||
```bash
|
||||
npm run build:css
|
||||
```
|
||||
|
||||
6. **Server starten**:
|
||||
```bash
|
||||
python3.11 app.py
|
||||
```
|
||||
|
||||
## API Endpunkte
|
||||
|
||||
| Methode | Endpunkt | Beschreibung |
|
||||
|---------|------------------------|--------------------------------------------------------|
|
||||
| GET | /api/jobs | Gibt alle Jobs (für Admins) oder eigene Jobs zurück |
|
||||
| GET | /api/jobs/active | Gibt alle aktiven Druckaufträge zurück |
|
||||
| GET | /api/jobs/{id} | Gibt Details zu einem bestimmten Job zurück |
|
||||
| POST | /api/jobs | Erstellt eine neue Druckerreservierung |
|
||||
| GET | /api/printers | Gibt alle verfügbaren Drucker zurück |
|
||||
|
||||
## Scheduler
|
||||
|
||||
Das System enthält einen eingebauten Scheduler, der automatisch:
|
||||
- Drucker einschaltet, wenn ein Auftrag beginnt
|
||||
- Drucker ausschaltet, wenn ein Auftrag endet
|
||||
- Den Status von Druckern aktualisiert
|
||||
- Die Auftragsstatistiken sammelt
|
||||
|
||||
## Konfiguration
|
||||
|
||||
Die Konfiguration erfolgt über die Datei `config/settings.py`. Wichtige Einstellungen umfassen:
|
||||
- Datenbankpfad
|
||||
- Tapo-Zugangsdaten
|
||||
- Drucker-Konfigurationen
|
||||
- Logging-Einstellungen
|
||||
- Webserver-Einstellungen
|
||||
|
||||
## CSS-System
|
||||
|
||||
Die Anwendung nutzt Tailwind CSS für das Styling mit separaten Dateien für Light- und Dark-Mode.
|
||||
|
||||
### Tailwind Build
|
||||
|
||||
```bash
|
||||
# Light Mode CSS bauen
|
||||
npx tailwindcss -i ./static/css/input.css -o ./static/css/tailwind.min.css --minify
|
||||
|
||||
# Dark Mode CSS bauen
|
||||
npx tailwindcss -i ./static/css/input.css -o ./static/css/tailwind-dark.min.css --minify --dark-mode 'class'
|
||||
```
|
||||
|
||||
Weitere Informationen zur CSS-Konfiguration finden Sie in der `TAILWIND_SETUP.md`.
|
||||
|
||||
## Sicherheit
|
||||
|
||||
- Nur angemeldete Benutzer können Druckaufträge erstellen
|
||||
- Nur Besitzer eines Druckauftrags können diesen verwalten
|
||||
- Nur Administratoren haben Zugriff auf alle Jobs und Systemeinstellungen
|
||||
- Passwörter werden mit bcrypt gesichert
|
||||
|
||||
## Fehlerbehandlung und Logging
|
||||
|
||||
Das System führt detaillierte Logs in folgenden Kategorien:
|
||||
- App-Log (allgemeine Anwendungslogs)
|
||||
- Auth-Log (Authentifizierungsereignisse)
|
||||
- Jobs-Log (Druckauftragsoperationen)
|
||||
- Printer-Log (Druckerstatusänderungen)
|
||||
- Scheduler-Log (Automatisierungsaktionen)
|
||||
- Error-Log (Fehlerprotokollierung)
|
||||
|
||||
## Entwicklung
|
||||
|
||||
Diese Anwendung ist für den Offline-Betrieb konzipiert und verwendet keine externen CDNs.
|
||||
Weitere Informationen zur Entwicklungsumgebung finden Sie in der `TAILWIND_SETUP.md`.
|
||||
Reference in New Issue
Block a user