In Entwicklung
Yachad
Eine christliche Social App für Freundesgruppen und Gemeinschaften: Treffen planen, Zusagen sammeln und sehen, wer kommt. Kirchen pflegen ihre Termine in einem eigenen Admin-Portal.
yachad.ch↗Aufbau
Oben die Apps, in der Mitte das Backend, unten die Dienste, die es nutzt. Gestrichelt ist, was geplant ist.
- iPhone-AppSwift · SwiftUI
- Android-AppKotlin · geplant
- Web-App + AdminNext.js
- REST · OpenAPI
- WebSocket
- BackendGo · modularer Monolith
- DatenbankPostgreSQL + PostGIS
- BilderObject Storage
- PushAPNs
Infomaniak · Hosting Schweiz
Technik1/2
- Echtzeit
- Über einen WebSocket meldet das Backend sofort, was sich geändert hat, etwa eine neue Zusage oder einen Kommentar. Die App lädt den Inhalt danach über die API nach, so gelten die Sichtbarkeitsregeln an einer Stelle. Verteilt werden die Signale über PostgreSQL (LISTEN/NOTIFY), ohne zusätzlichen Message-Broker, auch bei mehreren Instanzen.
- Push
- Mitteilungen gehen direkt über Apple Push (APNs), hinter einer eigenen Schnittstelle, an die Android über Firebase später andockt.
- Android
- Eine native Android-App mit Kotlin und Jetpack Compose ist geplant. Sie nutzt dieselbe API wie iPhone- und Web-App.
- API
- Ein OpenAPI-Vertrag mit über 200 Operationen ist die Quelle der Wahrheit. Server und Clients für Go, Swift und TypeScript werden daraus generiert.
Technik2/2
- Standort
- Die Suche in der Nähe läuft über PostGIS. Der Standort selbst wird nicht gespeichert.
- Anmeldung
- Sign in with Apple oder E-Mail und Passwort (argon2id), kurzlebige Tokens mit Rotation und Diebstahl-Erkennung, Zwei-Faktor im Admin-Portal.
- Tests
- Integrationstests über HTTP gegen eine echte PostgreSQL-Datenbank, eine frische pro Test.
- Website
- yachad.ch ist statisch mit Astro gebaut: ohne Cookies und ohne Anfragen an fremde Server.
Stand
Gefüllt ist, was läuft. Gestrichelt ist, was noch kommt.
- Backend mit API, Echtzeit-Signalen und Hintergrund-Jobs (erledigt)
- iPhone-App und Web-App angebunden (erledigt)
- Admin-Portal (erledigt)
- Android-App mit Kotlin (geplant)als Nächstes
- Start, zuerst regional (geplant)
Grundsätze
- Keine Werbung
- Kein Tracking
- Bilder ohne EXIF-Daten
- Daten in der Schweiz
Haben Sie ein ähnliches Vorhaben?
Beschreiben Sie kurz, worum es geht. Ich melde mich und schlage einen Termin vor.