Competitions App
Eine React Native / Expo App zur Verwaltung und Präsentation von Sportwettkämpfen. Setzt auf Firebase (Auth, Firestore, Storage) und moderne Patterns mit Expo Router, Zustand und TanStack Query.
Competitions
React Native · Expo · Firebase
Funktionen
Wettkämpfe (Events)
- Erstellen, Bearbeiten, Anzeigen von Wettkämpfen
- Medien-Upload: Medaillen, Startnummern, Fotos (Firebase Storage)
- Event-Detailseite inkl. Splits (Tri/Dua), Höhenmeter, Medien-Collage
- Personal Bests (PBs): automatische Erkennung und gruppierte Anzeige
- Share-Card Generator (SVG/PNG) für Social Media
Profil
- Avatar, Name, Handle, Verein, Bio, Links (Strava/Garmin)
- Statistiken: Events/Jahr, nach Sportart, Bestzeiten, Trends
- Sichtbarkeit: öffentlich/privat toggelbar
- Daten-Export: CSV/JSON aus der Profilansicht
Athleten-Profile
- Fremdprofil-Ansicht mit PBs, Statistiken, Events
- Follow-Status (Platzhalter) – Backend-Logik in Vorbereitung
Technologie & Architektur
Frontend
- React Native
- Expo Router
- TypeScript
- Zustand
- TanStack Query v5
- react-native-safe-area-context
- react-native-svg
- expo-image-picker
Backend (Firebase)
- Firebase Auth (Persistenz via AsyncStorage)
- Cloud Firestore als Datenbank
- Firebase Storage für Medien (Avatare, Fotos, Medaillen, Startnummern)
- Sicherheitsregeln in
firestore.rulesundstorage.rules
Datenschutz & Sicherheit
- Firestore: Zugriff nur auf eigene Dokumente; Profil-Sichtbarkeit wird berücksichtigt
- Storage: Sichere Authentifizierung für Medien-Uploads
- Export: CSV/JSON Export nur eigener Daten aus der Profilansicht
Siehe auch die dedizierte Datenschutzerklärung für die App unter /competitions/datenschutz.
UI/UX Highlights
- Dark/Light Mode
- Moderne Statistiken, Badges, Charts
- Galerie-Vorschau in Profilen (Fotos/Bibs)
- Bestzeiten-Gruppierung nach Sport und Disziplin (inkl. Ultra)
Screenshots






