# **Einleitung**

> Information: Die Dokumenation wurde mit generativer AI erstellt und kann fehlerhaft sein. Im Zweifel bitte die Quellcode-Dateien anschauen oder die Entwickler kontaktieren.

## **Projektbeschreibung**
MYP (Manage Your Printer) ist eine Webanwendung zur Verwaltung und Reservierung von 3D-Druckern. Das Projekt wurde als Abschlussarbeit im Rahmen der Fachinformatiker-Ausbildung mit Schwerpunkt Daten- und Prozessanalyse entwickelt und dient als Plattform zur einfachen Koordination und Überwachung von Druckressourcen. Es wurde speziell für die Technische Berufsausbildung des Mercedes-Benz Werkes in Berlin-Marienfelde erstellt.

---

## **Hauptmerkmale**
- **Druckerreservierungen:** Nutzer können 3D-Drucker in definierten Zeitfenstern reservieren.
- **Fehleranalyse:** Statistiken über Druckfehler und Abbruchgründe werden visuell dargestellt.
- **Druckauslastung:** Echtzeit-Daten über die Nutzung der Drucker.
- **Admin-Dashboard:** Übersichtliche Verwaltung und Konfiguration von Druckern, Benutzern und Druckaufträgen.
- **Datenbankintegration:** Alle Daten werden in einer SQLite-Datenbank gespeichert und verwaltet.

---

## **Technologien**
- **Frontend:** React, Next.js, TailwindCSS
- **Backend:** Node.js, Drizzle ORM
- **Datenbank:** SQLite
- **Deployment:** Docker und Raspberry Pi
- **Zusätzliche Bibliotheken:** recharts für Diagramme, Faker.js für Testdaten, sowie diverse Radix-UI-Komponenten.

---

## **Dateistruktur**
Die Repository-Dateien sind in logische Abschnitte unterteilt:
1. **Docker-Konfigurationen** (`docker/`) - Skripte und Konfigurationsdateien für die Bereitstellung.
2. **Frontend-Komponenten** (`src/app/`) - Weboberfläche und deren Funktionalitäten.
3. **Backend-Funktionen** (`src/server/`) - Datenbankinteraktionen und Authentifizierungslogik.
4. **Utils und Helferfunktionen** (`src/utils/`) - Wiederverwendbare Dienste und Hilfsmethoden.
5. **Datenbank-Skripte** (`drizzle/`) - Datenbankschemas und Migrationsdateien.


Nächster Schritt: [=> Installation](./Installation.md)