Zum Inhalt springen
levi grossenbacher.
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
ZUSAGEN

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.

  1. Backend mit API, Echtzeit-Signalen und Hintergrund-Jobs (erledigt)
  2. iPhone-App und Web-App angebunden (erledigt)
  3. Admin-Portal (erledigt)
  4. Android-App mit Kotlin (geplant)als Nächstes
  5. 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.