Community- und Event-App
Community-App
Eine Community- und Event-App mit Fokus auf Privatsphäre, für iOS, Android und Web aus einer Codebasis.
Vor dem Launch, zu zweit entwickelt mit Tim
Hallo Sam
Nachbau mit erfundenen Events. Die Vertrauensstufe stellst du im Konto unter Einstellungen um.
Kernkompetenzen
- Sicherheit und Datenschutz
- Mobile und Native
- Backend und APIs
- Infrastruktur und Betrieb
- Testen und Verifizieren
- KI-gestützte Entwicklung
Tech-Stack
- Expo
- React Native
- Expo Router
- NativeWind
- TanStack Query
- MapLibre GL
- NestJS 11
- Prisma 7
- PostgreSQL 18
- CASL 7
- Passport
- otplib
- TypeScript 6
- Zod 4
- OpenAPI
- pnpm
- Turborepo
- Coolify
- Docker
- Grafana
- Loki
- GitHub Actions
Das Schwierigste
Der Treffpunkt, den die Suche kennen muss
Sicherheitsregeln gehören an eine Stelle, die man nicht umgehen kann.
Die ganze Geschichte
Was man sah
„Events in meiner Nähe“ braucht den genauen Ort. Wer wenig Vertrauen hat, darf aber nur die ungefähre Gegend sehen. Und bei rund 137 Routen reicht eine einzige vergessene Stelle, um den Treffpunkt zu verraten.
Was wirklich los war
Steht die Regel in jedem Endpunkt einzeln, läuft sie irgendwann auseinander. Speichert man den Ort gleich gerundet, stimmt die Umkreissuche nicht mehr.
Die Lösung
Ein einziger Mapper auf dem Server entscheidet, wer was sieht. Intern bleibt der Ort exakt und wird erst gerundet, wenn er den Server verlässt.
- 2.215
- Commits in 9 Wochen, von beiden Entwicklern zusammen
- ~7.650
- automatisierte Tests, davon ~1.600 gegen den echten Server
- 32
- Datenbankmodelle, rund 137 HTTP-Routen
In einfachen Worten
Menschen finden Events in ihrer Nähe, aber nicht jeder sieht alles. Wie genau du den Treffpunkt siehst, hängt davon ab, wie sehr dir die Community vertraut. Der Name bleibt vor dem Start bewusst geheim.
In vielen Communitys ist es ein echtes Sicherheitsthema, wer wann weiß, wo man sich trifft. Das soll nicht an einer Einstellung hängen, sondern in der Architektur stecken.
So funktioniert es
Schritt 1 von 4
Anfrage
Die App fragt nach Events in der Nähe. Suche per Bounding Box und Haversine, mit harter Obergrenze.
Was gebaut wurde
- Events mit Serien, Kapazitätslimits, Teilnehmerlisten, Kommentaren und Teilen-Links
- Standortsuche mit Bounding Box und Haversine, nach Entfernung sortiert, plus Event-Karte
- Sichtbarkeit nach Vertrauen, an einer einzigen Stelle im Server erzwungen
- Tickets mit QR-Code, die auch offline hinter einer Biometrie-Sperre öffnen, plus Scanner mit Einmal-Scans
- Refresh-Token-Rotation mit Reuse-Erkennung, TOTP-Step-up, Rate-Limiting ohne gespeicherte Adressen
- Feed, Push, Moderation und ein LLM-Moderations-Worker, der ohne Tools läuft
Wie die Kompetenzen eingesetzt wurden
- Sicherheit und Datenschutz
- Token-Rotation mit Reuse-Erkennung, Wiederherstellung, Kontolöschung, Datenexport und Sichtbarkeit nach Vertrauensstufe
- Mobile und Native
- iOS, Android und Web aus einer Expo-Codebasis, mit Offline-Persistenz, MapLibre und Biometrie
- Backend und APIs
- Rund 137 HTTP-Routen, 32 Datenbankmodelle, Zod-Schemas und CASL-Regeln in einem geteilten Paket
- Infrastruktur und Betrieb
- Coolify, Docker, nginx, systemd-Timer, GitHub Actions, Grafana, Loki und Alloy
- Testen und Verifizieren
- Rund 7.650 Tests, End-to-End gegen eine laufende API und ein echtes Postgres
- KI-gestützte Entwicklung
- Claim-System für zwei Entwickler und ihre Agenten auf einem Trunk, plus Repo-Gates für Raw SQL, API-Abdeckung und OpenAPI
Meine Rolle
Einer von zwei Entwicklern, beide mit eigenen Agenten auf einem Trunk. Mit meinem Multi-Dev-Agent-Workflow, basierend auf Context Observer.
Siehe Projekt Context Observer