Web-App für Lesepatenterminbuchung
https://lesepaten.kontour.dev
- Svelte 48.8%
- TypeScript 44%
- CSS 4.5%
- JavaScript 1.2%
- HTML 0.9%
- Other 0.6%
| drizzle | ||
| scripts | ||
| src | ||
| static | ||
| .env.example | ||
| .gitignore | ||
| CLA.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| drizzle.config.ts | ||
| entrypoint.sh | ||
| LICENCE.md | ||
| migrate.js | ||
| package.json | ||
| README.md | ||
| svelte.config.js | ||
| vite.config.ts | ||
lesepaten
Zeitmanagement-System für Lesepaten-Programme an Grundschulen.
Stack
- Frontend/Backend: SvelteKit (Node Adapter)
- Datenbank: PostgreSQL via Drizzle ORM
- Auth: jose (JWT, httpOnly Cookies)
- Mail: nodemailer
- QR-Codes: qrcode
- Deployment: Docker Compose
Routing-Struktur
/ → Landing / Weiterleitung
/admin → Admin-Login
/admin/dashboard → Token-Generierung für Lehrer-Registrierungen
/lehrer/registrieren/[token] → Einmalige Lehrer-Registrierung
/lehrer/login → Lehrer-Login
/lehrer/dashboard → Übersicht aller ClassYears
/lehrer/klasse/[id] → Slots verwalten, QR-Code anzeigen, Buchungen einsehen
/lehrer/klasse/[id]/slots → Slot-Vorlagen anlegen/bearbeiten
/buchen/[inviteToken] → Paten-Einstieg (Kurzformular)
/buchen/[inviteToken]/termine → Buchungsseite (Slot-Auswahl)
/buchen/[inviteToken]/bestaetigung/[bookingId] → Buchungsbestätigung
Entwicklung
cp .env.example .env
# .env befüllen
docker compose up -d db
npm install
npm run db:generate
npm run db:migrate
npm run dev
Produktion
docker compose up -d --build
Datenbankmigrationen
npm run db:generate # neue Migration aus Schema erzeugen
npm run db:migrate # Migrationen anwenden
npm run db:studio # Drizzle Studio öffnen