Eine moderne Full-Stack-Anwendung zur Verwaltung und Genehmigung von Ausbildungsnachweisen für Auszubildende und Ausbilder/innen.
Live-Demo: https://example.com (nach Deployment)
- ✅ Nachweise erstellen - Dokumentation täglicher Ausbildungsaufgaben
- 📋 PDF generieren - Automatische PDF-Erstellung von Nachweisen
- 📊 Status überwachen - Echtzeit-Übersicht über eingereichte Nachweise
- 🔄 Nachweise bearbeiten - Abgelehnte Nachweise nachbessern und erneut einreichen
- 👤 Profil verwalten - Persönliche Daten und Profilbild aktualisieren
- 🔒 Passwort ändern - Sichere Passwort-Verwaltung
- 📦 Batch-Export - Mehrere Nachweise als ZIP-Archiv herunterladen
- 🗑️ Batch-Löschung - Mehrere Nachweise gleichzeitig löschen
- 🔔 E-Mail-Benachrichtigungen - Automatische Updates bei Statusänderungen
- 📑 Nachweise prüfen - Detaillierte Überprüfung eingereicherter Nachweise
- ✔️ Status setzen - Genehmigen oder ablehnen mit Kommentar
- 💬 Feedback geben - Kommentarfunktion für konstruktives Feedback
- 📊 Dashboard - Statistische Übersicht aller Nachweise
- 👥 Azubis verwalten - Zuordnung von Azubis zum Ausbilder
- ⚡ Batch-Genehmigung - Mehrere Nachweise gleichzeitig genehmigen
- ❌ Batch-Ablehnung - Mehrere Nachweise gleichzeitig ablehnen
- 📧 Automatische E-Mails - PDFs werden automatisch an Azubis gesendet
- 🔑 Benutzerverwaltung - Erstellen, bearbeiten, löschen von Benutzern
- 👨💼 Rollenverwaltung - Azubi & Ausbilder-Rollen zuweisen
- 📝 Audit-Logs - Nachverfolgung aller Aktionen im System
- ⚙️ Systemverwaltung - Konfiguration und Überwachung
- 📦 Batch-Operationen - Massenbearbeitung von Nachweisen
┌─────────────────────────────────────────────────────┐
│ Caddy (Reverse Proxy) │
│ Port 80/443 (SSL/TLS) │
└────────────────┬──────────────────┬────────────────┘
│ │
┌───────▼────┐ ┌───────▼────────┐
│ Frontend │ │ Backend │
│ Next.js │ │ Spring Boot │
│ Port 3000 │ │ Port 8088 │
└────────────┘ └───────┬────────┘
│
┌───────▼──────┐
│ PostgreSQL │
│ Port 5432 │
└──────────────┘
Stack:
- Frontend: Next.js 16 (React, TypeScript, Tailwind CSS)
- Backend: Spring Boot 3 (Java, Jakarta EE, Gradle)
- Database: PostgreSQL 15
- Reverse Proxy: Caddy 2 (SSL/TLS, CORS)
- Containerization: Docker & Docker Compose
- Docker & Docker Compose installiert
- Git
- (Optional) IDE wie VS Code oder IntelliJ
git clone https://github.com/yourusername/lyricsTranslator.git
cd lyricsTranslator# Für lokale Entwicklung
cp .env.example .env
# Oder für Production
cp .env.production.example .env
nano .env # Anpassen nach Bedarfdocker-compose up -d- Frontend: http://localhost:3000
- Backend API: http://localhost:8088
- Database: localhost:5432
Siehe DEPLOYMENT.md für ausführliche Anweisungen:
- VPS vorbereiten
- Docker installieren
- Environment-Variablen setzen
- Docker Compose starten
- Firewall konfigurieren
- SSL/TLS mit Caddy
Siehe backend/README.md für:
- API-Endpoints
- Authentifizierung (JWT)
- Datenbank-Schema
- Build & Test
Siehe client-nachweise/README.md für:
- Komponenten-Übersicht
- Store/Redux Setup
- Styling mit Tailwind
- Build & Development
Datenbankverbindung
POSTGRES_DB=nachweise_db
POSTGRES_USER=nachweise_user
POSTGRES_PASSWORD=<strong-password>Spring Boot Backend
SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/nachweise_db
SERVER_PORT=8088
JWT_SECRET=<32+-character-secret>Frontend
NEXT_PUBLIC_API_URL=http://localhost:8088
NODE_ENV=developmentMail (für Passwort-Reset)
SPRING_MAIL_HOST=smtp.gmail.com
SPRING_MAIL_USERNAME=your-email@gmail.com
SPRING_MAIL_PASSWORD=app-passwordSiehe .env.example und .env.production.example für alle Optionen.
cd client-nachweise
npm install
npm run dev
# http://localhost:3000cd backend
./gradlew bootRun
# http://localhost:8088# Automatisch via Hibernate (update-Modus)
# Oder manuell mit SQL-Scripts in javaMusicApp/src/main/resources/dbcd client-nachweise
npm run lint
npm run test # (bei Implementierung)cd javaMusicApp
./gradlew test- ✅ JWT-basierte Authentifizierung
- ✅ CORS-Konfiguration
- ✅ Passwort-Hashing (bcrypt)
- ✅ SQL-Injection-Protection (Parameterized Queries)
- ✅ SSL/TLS via Caddy
- ✅ Secure HTTP Headers
⚠️ Admin-Funktionen (nur Ausbilder/Admin)
Wichtig für Production:
JWT_SECRETauf starken Wert setzenPOSTGRES_PASSWORDauf starkes Passwort setzen- Firewall richtig konfigurieren
- Regelmäßige Backups erstellen
- Logs überwachen
POST /api/auth/login- AnmeldenPOST /api/auth/register- RegistrierungPOST /api/auth/refresh- Token aktualisierenPOST /api/auth/forgot-password- Passwort zurücksetzen
GET /api/nachweise- Eigene Nachweise abrufenPOST /api/nachweise- Neuen Nachweis erstellenPUT /api/nachweise/{id}- Nachweis aktualisierenDELETE /api/nachweise/{id}- Nachweis löschenGET /api/nachweise/{id}/pdf- PDF herunterladenPOST /api/nachweise/batch-export- Mehrere Nachweise als ZIP herunterladenPOST /api/nachweise/batch-delete- Mehrere Nachweise löschenPUT /api/nachweise/batch-status- Batch-Statusänderung (Admin)
GET /api/user- Alle Benutzer abrufenPOST /api/user- Benutzer erstellenPUT /api/user/{id}- Benutzer aktualisierenDELETE /api/user/{id}- Benutzer löschen
Vollständige API-Dokumentation siehe backend/USER_API_DOCUMENTATION.md
docker-compose logs -f
docker system prune -a # Docker-Cache löschendocker-compose exec db psql -U nachweise_user -d nachweise_db
docker-compose down -v # Daten löschen und neu starten- Überprüfe:
NEXT_PUBLIC_API_URLin.env - Überprüfe: Backend-Logs mit
docker-compose logs backend - Überprüfe: Firewall-Regeln
Dieses Projekt ist MIT lizenziert.
Dieses Projekt wurde entwickelt als Unterstützungssystem für deutsche Berufsschulen zur digitalen Verwaltung von Ausbildungsnachweisen (Nachweise für Azubis).
Hintergrund:
- Ersetzt traditionelle papiergestützte Prozesse
- Ermöglicht digitale Archivierung und Suche
- Verbessert Kommunikation zwischen Azubis und Ausbildern
- Unterstützt Transparenz im Ausbildungsprozess
Viel Erfolg bei der Nutzung! 🚀