Entwicklerhandbuch¶
TxRide ist ein Bun-Monorepo für die Transportkoordination im ImpactTx-Kontext: Es bringt Fahrtangebote und Fahrtgesuche zum Transplantationszentrum zusammen. Dieses Handbuch beschreibt, wie das Projekt aufgebaut ist und wie du lokal damit arbeitest.
-
Loslegen
Repo aufsetzen, Dev-Infrastruktur starten und die Apps lokal laufen lassen.
-
Daten verstehen
Das Domänenmodell – Fahrten, Gesuche, Matches – als generiertes ER-Diagramm.
-
Qualität sichern
Unit-Tests mit Bun und End-to-end-Tests mit Cypress (Nix-kompatibel).
Technologie-Stack¶
| Bereich | Wahl |
|---|---|
| Runtime & Paketmanager | Bun |
| Frontend | Vite + React 19 (apps/web) |
| API | Hono + oRPC auf Bun.serve (packages/api) |
| Datenbank | Prisma 7 + PostgreSQL-Adapter (packages/db) |
| Auth | Keycloak (OIDC), JWKS-Prüfung via jose |
| Geocoding | Nominatim & Photon (packages/geocoding) |
| Benachrichtigungen | React Email + Nodemailer, pg-boss-Worker (packages/notifications) |
| End-to-end-Tests | Cypress (Binary über nix develop) |
| Dokumentation | MkDocs Material |
Repository-Layout¶
apps/
web # Vite + React SPA (Karte, Fahrten, Gesuche, Profil, Admin)
storybook # Storybook für die UI-Komponenten
docs # Platzhalter-App für die Doku-Auslieferung
packages/
api # Hono + oRPC-Server (Bun.serve)
contract # oRPC- + Zod-Vertrag (client-sicher, geteilt)
db # Prisma-Schema, Migrationen, generierter Client
cli # cmd-ts-CLI, ruft Prozeduren via call()
ui # geteilte React-/Material-3-Komponenten
geocoding # Adresssuche (Nominatim/Photon)
notifications # E-Mail-Templates + pg-boss-Worker
config # geteilte TypeScript-Basiskonfiguration
doc/ # MkDocs-Sites: customer, developer
e2e/ # Cypress-Specs
infra/keycloak/ # Realm-Import für die lokale Entwicklung
Wo anfangen?
Wenn du das Projekt zum ersten Mal aufsetzt, folge Monorepo & Workflows von oben nach unten – dort steht der vollständige Quickstart inklusive Dev-Infrastruktur.