Zum Inhalt

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.

    Monorepo & Workflows

  • Daten verstehen


    Das Domänenmodell – Fahrten, Gesuche, Matches – als generiertes ER-Diagramm.

    Domänenmodell

  • Qualität sichern


    Unit-Tests mit Bun und End-to-end-Tests mit Cypress (Nix-kompatibel).

    Tests

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.