OffGrid¶
OffGrid ist eine Chat-App für Android, die ohne Mobilnetz funktioniert.
Das Handy steckt per USB-C (Serial) an einer ESP32-Antenne. Die Nachrichten gehen per LoRa (868 MHz) direkt von Antenne zu Antenne – ohne Server, ohne Internet, ohne SIM-Karte. Kontakte kommen per QR-Code-Handshake hinzu: Zwei Personen treffen sich, scannen sich gegenseitig einen QR-Code, und die Antennen tauschen dabei Schlüssel aus. Jede Nachricht ist mit einem pro Kontakt abgeleiteten Schlüssel verschlüsselt.
Die Antenne (Heltec V3) macht Funk und Krypto, die App ist Oberfläche und Verlaufsspeicher. Die App spricht die Host-API „Offgrid Link v1“ (JSON Lines über USB-Serial). Schlüssel, Zähler und Kontaktliste liegen auf der Antenne; die App hält nur das Entsperr-Geheimnis im Android Keystore. Mehr dazu unter Antenne und Serial-Protokoll.
Womit die App gebaut ist¶
| Teil | Technologie |
|---|---|
| Oberfläche | Ionic 9, Angular 22 (Standalone-Komponenten, Signals, zoneless) |
| Native Hülle | Capacitor 8, Zielplattform Android |
| Tests | Vitest + jsdom über den Angular-Builder |
| Doku | MkDocs Material, veröffentlicht auf GitHub Pages |
Wie die Doku zu lesen ist¶
Seiten, die noch nicht gebaut sind, tragen den Hinweis „Geplant“ mit dem Ticket, das sie füllt. Alles, was ohne Hinweis steht, ist im Code dieses Branches vorhanden.
| Einstieg | Inhalt |
|---|---|
| Erste Schritte | Entwicklungsumgebung, Befehle, Browser-Demo |
| Architektur | Schichten, Ordner, Plattform-Weiche |
| CI | Lokale Prüfungen und GitHub Actions |
| Änderungen | Was zuletzt gebaut wurde |
Stand der Funktionen¶
| Funktion | Stand | Ticket |
|---|---|---|
| Projektgerüst, dunkles Theme, Design-Tokens | fertig | T00 |
| CI-Checks (Lint, Tests, Build) und Doku-Website | fertig | T21 |
| UI-Grundkomponenten (Icons, Buttons, Karten, Eingabefeld, Schalter) | fertig | T01 |
| UI-Zustandskomponenten (Avatar, Signalbalken, Banner, Schrittliste, Blase, Composer, QR) | fertig | T02 |
| Zeitformate, Hex/Base64, Signal-Level, Längenregeln für Texte | fertig | T03 |
| Datenbank, Repositories, Settings, App-Start | fertig | T04 |
| Host-API v1: Serial-Client, Antennen-Port, Mock-Gerät, Entsperr-Schlüssel, Nachrichten- und Kontaktdienste (ersetzt T05, T07, T08) | fertig | T23 |
| Natives USB-Serial-Plugin und natives Keystore-Plugin für Android | fertig | T06 |
| Seiten Kontakt hinzufügen und Kontakt benennen | geplant | T11 |
| Screens „Verbinden“ und „Name“ mit Onboarding-Guard | fertig | T09 |
| Screen „Kontakte“ mit Kontaktliste, Antennen-Statuszeile und Leerzustand | fertig | T10 |
| Weitere Screens (Chat, Einstellungen) | geplant | T12, T13 |
| Backup (Export und Import) | geplant | T14 |
| Standort-Kern (GPS, Entfernung, Richtung) | fertig | T17 |
| Standort-Oberfläche (Senden und Anzeigen) | geplant | T18 |
| Live-Standort (optional) | geplant | T19 |
| Gruppenchat (optional) | geplant | T20 |