Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CentralScore

A football live-scores web & Android app covering the Premier League, La Liga, Serie A, Bundesliga, Ligue 1, Champions League, World Cup, and Euro — built with React, deployed as a static site, and packaged for Android with Capacitor.

Live app: https://byot36.github.io/CentralScore/ Android APK: see the Releases page

Features

  • Live matches for 8 top competitions, pulled from football-data.org
  • Match detail view with score, status, stadium/referee info (where available)
  • Favorites — star a team and get a browser notification when its match is about to start (while the app is open)
  • Clean dark UI designed for football fans, built with Tailwind CSS
  • Android app built from the same codebase via Capacitor

Known limitations

The app runs on football-data.org's free tier, which only provides scores and match status — no lineups, player stats, live commentary, market values, coach bios, or TV broadcast info. Covering the rest of the world's leagues (e.g. Romania's Superliga, Europa League, Conference League, Nations League) and richer per-match data would require a paid sports-data plan.

Tech stack

  • React + TypeScript + Vite — web app
  • Tailwind CSS v4 — styling
  • React Router (HashRouter) — client-side routing
  • Capacitor — wraps the web app as a native Android project
  • Cloudflare Workers — proxies API requests so the football-data.org key never reaches the browser
  • GitHub Actions — builds & deploys the site to GitHub Pages, builds the Android APK and publishes it as a GitHub Release

Project structure

app/            - React web app (source of the Android app too, via Capacitor)
  src/
    api/        - football-data.org client + response mapping
    components/ - Layout, MatchCard
    context/    - favorites (localStorage)
    data/       - mock data used when no live API is configured
    hooks/      - favorite-team match notifications
    pages/      - Home, MatchDetail, Favorites
  android/      - native Android project (generated by Capacitor)
worker/         - Cloudflare Worker source (API proxy) + deploy instructions

Running it yourself

cd app
npm install
npm run dev

Without an API key configured, the app falls back to demo data.

Connecting live data

  1. Deploy the Cloudflare Worker in worker/ (free tier) — see worker/README.md.
  2. Set VITE_API_BASE in app/.env.production to your Worker's URL.
  3. Rebuild: npm run build.

Building the Android APK

cd app
npm run build
npx cap sync android
cd android
./gradlew assembleDebug

The APK is written to app/android/app/build/outputs/apk/debug/app-debug.apk. GitHub Actions does this automatically on every push and publishes the result as a Release.

About

CentralScore

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages