- Node.js (für Frontend)
- Bun (für Backend)
- PostgreSQL oder Docker
git clone https://github.com/bbwheroes/324-ruts-ipa_noten_rechner-jannismilz
cd 324-ruts-ipa_noten_rechner-jannismilz
# Frontend Dependencies
npm --prefix ./frontend install ./frontend
# Backend Dependencies
bun install --cwd ./backendcp frontend/.env.example frontend/.env
cp backend/.env.example backend/.envPasse die .env Dateien nach Bedarf an (Datenbank-Verbindung, JWT Secret, etc.).
cd backend
bun run migrate # Datenbank-Migrationen ausführen
bun run seed # (Optional) Testdaten einfügencd backend
bun run create-userInteraktives CLI zum Erstellen eines neuen Benutzers.
cd backend
bun run dev # Mit Hot Reload auf Port 3001
# oder
bun run start # Produktionsmoduscd frontend
npm run dev # Vite Dev Server auf Port 5173Alternativ kann das Backend mit PostgreSQL via Docker gestartet werden:
docker-compose up -d # Starten
docker-compose down # Stoppencd frontend
npm run lint # Fehler prüfen
npm run lint:fix # Fehler automatisch beheben
npm run format # Code formatieren
npm run format:check # Formatierung prüfencd backend
bun run lint # Fehler prüfen
bun run lint:fix # Fehler automatisch beheben
bun run format # Code formatieren
bun run format:check # Formatierung prüfencd backend
bun test # Alle Tests
bun test --watch # Watch Modecd frontend
npm run test # Unit & Integration Tests
npm run test:e2e # E2E Tests (Playwright)
npm run test:e2e:ui # E2E Tests mit UISiehe Testkonzept für Details.
| Endpoint | Methode | Beschreibung | Auth |
|---|---|---|---|
/api/auth/login |
POST | Benutzer anmelden | - |
/api/users/profile |
GET | Profil abrufen | ✅ |
/api/users/profile |
PUT | Profil aktualisieren | ✅ |
/api/evaluations/criteria |
GET | Kriterienkatalog laden | - |
/api/evaluations |
GET | Evaluierungen abrufen | ✅ |
/api/evaluations/:id |
POST | Evaluierung speichern | ✅ |
/api/evaluations/calculate |
GET | Noten berechnen | ✅ |
Authentifizierung erfolgt via JWT Token im Authorization: Bearer <token> Header.
├── backend/
│ ├── src/
│ │ ├── db/ # Datenbank (Migrations, Seeds)
│ │ ├── middleware/ # Express Middleware
│ │ ├── routes/ # API Routes
│ │ └── test/ # Backend Tests
│ └── Dockerfile
├── frontend/
│ ├── src/
│ │ ├── components/ # React Komponenten
│ │ ├── context/ # React Context (Auth)
│ │ ├── pages/ # Seiten-Komponenten
│ │ ├── services/ # API & Storage Services
│ │ └── test/ # Frontend Tests
│ ├── e2e/ # Playwright E2E Tests
│ └── Dockerfile
├── shared/ # Geteilter Code (Notenberechnung)
├── docs/ # Dokumentation
└── criterias.json # Kriterienkatalog
- Feature-Branch erstellen:
git checkout -b feature/mein-feature - Änderungen committen mit aussagekräftigen Messages
- Pull Request erstellen
- Code Review abwarten
- Nach Approval: Merge in
main
Bei jedem Push werden automatisch ausgeführt:
- Linting (ESLint, Prettier)
- Backend Tests (Bun)
- Frontend Tests (Vitest)
- E2E Tests (Playwright)
- Deployment auf Staging (bei erfolgreichem Build)