Sports Community Platform
Team management, tournaments, facility booking, real-time messaging.
Development Status
Backend API
Phoenix REST API with full tournament logic
Android App
Native Kotlin with Jetpack Compose
iOS App
Native Swift/SwiftUI
Web App
SvelteKit PWA
Architecture
┌─────────────────────────────────────────────────────────┐
│ Clients │
├─────────────────┬─────────────────┬─────────────────────┤
│ iOS (Swift) │ Android (Kotlin)│ Web (SvelteKit) │
└────────┬────────┴────────┬────────┴──────────┬──────────┘
│ │ │
└─────────────────┴┬──────────────────┘
│
REST API + WebSocket
│
┌───────────────────────────┴─────────────────────────────┐
│ Elixir/Phoenix Backend │
├──────────────────┬──────────────────┬───────────────────┤
│ JSON:API │ Phoenix Channels│ Oban │
│ Controllers │ (Real-time) │ (Jobs) │
├──────────────────┴──────────────────┴───────────────────┤
│ Business Logic │
│ Accounts · Teams · Events · Facilities · Bookings │
├─────────────────────────────────────────────────────────┤
│ Ecto │
└────────────────────────────┬────────────────────────────┘
│
┌────────────────────┼───────────────────┐
│ │ │
┌─────┴──────┐ ┌─────┴─────┐ ┌─────┴──────┐
│ PostgreSQL │ │ Cachex │ │ Meilisearch│
└────────────┘ └───────────┘ └────────────┘ Backend
- • Phoenix with Ecto for data layer
- • RESTful API with JSON:API spec
- • Guardian JWT + Ueberauth OAuth
- • BodyGuard for authorization policies
- • Oban for background job processing
Android
- • Kotlin with Jetpack Compose UI
- • Retrofit for REST API
- • Hilt for dependency injection
- • MVVM architecture pattern
- • WebSocket client for real-time
Core Features
Team Management
Create teams, invite members, manage roles. Full invitation workflow with accept/decline.
Tournaments
Group stages with round-robin scheduling, single elimination playoffs, seeded brackets with byes.
Facility Booking
Discover sports facilities, view availability slots, book courts and fields with conflict prevention.
Real-time Updates
Live score updates via Phoenix Channels. Presence tracking shows who's viewing an event.
Tournament System
Complete tournament management with group stages, playoffs, and automated bracket generation.
Group Stage
Round-robin scheduling with standings calculation (wins, draws, goal difference).
Playoffs
Single elimination brackets with proper seeding (1v8, 4v5, 2v7, 3v6).
Live Scores
Real-time score updates via Phoenix Channels with presence tracking.
Interested in the Code?
Code demonstration available upon request. Currently in active development with backend and Android complete.