Mitmachen
Beiträge sind willkommen — von Code über Hardware-Erfahrungen bis Dokumentation. Einstieg: ein Issue auf GitHub schnappen oder beim wöchentlichen Discord-Treffen (dienstags, 19:30 Uhr) vorbeischauen.
Monorepo-Aufbau
Section titled “Monorepo-Aufbau”| Verzeichnis | Inhalt |
|---|---|
locker-backend/ | Laravel-API + Filament-Admin (Event Sourcing) |
mobile-app/ | React-Native-App (Expo, TypeScript) |
locker-client/ | IoT-Client für den Raspberry Pi |
hardware/ | KiCad-Designs |
website/ | Diese Website inkl. Dokumentation (Astro + Starlight) |
docs/ | Interne Docs und Architecture Decision Records (ADRs) |
Qualitäts-Checks vor dem Push
Section titled “Qualitäts-Checks vor dem Push”| Komponente | Befehl |
|---|---|
| Backend | composer quality (Format + PHPStan + Tests) |
| Mobile App | pnpm check und pnpm test:ci |
| Locker Client | pnpm check und pnpm test |
Die Codegen-Pipeline
Section titled “Die Codegen-Pipeline”Der API-Vertrag ist ein echter Cross-Komponenten-Vertrag:
- Das Backend serviert die OpenAPI-Spezifikation live unter
/docs/api.json(Scramble, generiert aus den Controllern). - Die Mobile App generiert daraus ihren typisierten RTK-Query-Client:
pnpm generate:api(Backend muss laufen).
Wer eine API-Response ändert, muss den Client regenerieren — sonst driften die Typen.
Architektur-Entscheidungen (ADRs)
Section titled “Architektur-Entscheidungen (ADRs)”Architektur-relevante Änderungen (API-Vertrag, MQTT-Topics, Modbus,
Infrastruktur, Security) brauchen einen ADR unter docs/adr/ —
nummeriert, eine Entscheidung pro ADR, akzeptierte ADRs werden nie
umgeschrieben, sondern durch neue ersetzt.
Dokumentation beitragen
Section titled “Dokumentation beitragen”Diese Dokumentation lebt im Monorepo unter website/src/content/docs/ —
Deutsch unter dokumentation/, Englisch unter en/dokumentation/ (gleiche
Dateinamen = gepaarte Seiten). Neue Seiten als Markdown mit
Frontmatter (title, description) anlegen und in beiden Sprachen ergänzen.
Lokale Vorschau: pnpm dev in website/.