GPL Live is a Ghana Premier League fan platform — reactions, MOTM voting, predictions, exclusive club content and push notifications. Building using React Native, Expo, TypeScript, Spring Boot (Java,), PostgreSQL, and Microservices Architecture.
# GPLLive
GPL Live is a Ghana Premier League fan engagement platform built to connect fans with clubs through interactive football experiences, live engagement, and community-driven features.
The application is being developed using **React Native (Expo SDK 54)**, **TypeScript**, **Spring Boot (Java)**, and **PostgreSQL**.
---
## Status
| Layer | Status |
|-------|--------|
| Frontend | Active development — Expo app with navigation, services, state management |
| Backend | Active development — Spring Boot REST API, deployed on Render |
| Database | PostgreSQL (Neon), schema managed via Flyway migrations in `backend/` |
---
## Features
- ⚽ Match Reactions
- 🗳️ Man of the Match (MOTM) Voting
- 📊 Match Predictions
- 📰 Exclusive Club Content
- 🔔 Push Notifications
- 🏆 Fantasy League System
- 💳 Premium Club Subscriptions (Paystack)
- 📱 Mobile-First Experience
---
## Tech Stack
### Frontend
| Technology | Version |
|------------|---------|
| React Native | 0.81.5 |
| Expo | SDK 54 |
| TypeScript | 5.9 |
| React Navigation | 7.x (native-stack + bottom-tabs) |
| TanStack React Query | 5.x |
| Zustand | 4.x |
| Axios | 1.x |
| NativeWind | 4.x (Tailwind CSS for RN) |
| React Native Reanimated | 4.x |
### Backend
| Technology | Version |
|------------|---------|
| Spring Boot | 4.1.0 |
| Java | 17 |
| Spring Data JPA / Hibernate | — |
| Spring Security + JWT (jjwt) | — |
| Flyway | Schema migrations |
| PostgreSQL (Neon) | Hosted database |
| Deployed on | Render |
### Database
- PostgreSQL, hosted on Neon
- Schema versioned via Flyway migrations at `backend/src/main/resources/db/migration/`
---
## Project Structure
```
GPLLive/
├── frontend/ # React Native Expo application
│ ├── App.tsx # Root component
│ ├── app.json # Expo configuration
│ ├── index.ts # Entry point
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ │ ├── shared/ # Shared components (MatchC …