Skip to content
OliverPerrinPublic

About

Find sport and gaming events, follow teams, log training and join community sessions. React, Leaflet and FastAPI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

PlayAxis

Find sport and gaming events, follow teams, log your training and meet people who play what you play.

Live site · Architecture · Setup and providers · Design

MIT license React 18 FastAPI

PlayAxis overview page


What it does

Area What you can do
Play Find local organiser listings and community sessions, RSVP, see places and events on a map, save plans, download calendar files
Follow Fixtures, results and standings across seven league feeds, follow teams, watch Twitch sport and esports broadcasts, live chess
Train Keep a private activity journal, time and edit workouts, set weekly and monthly goals, chart progress, compare sessions
Connect Community posts with reactions and comments, clubs, group sessions and profiles

Browsing works without an account. Logging activity, setting goals, joining sessions and posting need one.

Quick start

Requires Node.js 22 and Python 3.11 or newer.

# Backend
python3 -m venv .venv-playaxis
source .venv-playaxis/bin/activate
pip install -r backend/requirements-dev.txt
cd backend && python dev.py
# Frontend, in a second terminal
cd frontend
npm ci
npm start

Open http://localhost:3000. API documentation is at http://localhost:8000/docs.

The backend uses a local SQLite file by default. Some data sources need free API keys; copy backend/.env.example to backend/.env and see setup and providers for what each key unlocks.

How it is built

  • Frontend: React 18 with React Router, Leaflet maps and Tailwind CSS.
  • Backend: FastAPI with SQLAlchemy and Alembic migrations, on SQLite or PostgreSQL.
  • Data: live fixtures, standings, events, streams, weather and map data from public providers including football-data.org, OpenLigaDB, Jolpica F1, nflverse, BALLDONTLIE, Ticketmaster, Twitch, Lichess, Open-Meteo and OpenStreetMap. Coverage and limits for each are listed in setup and providers.
  • Hosting: the frontend is on Netlify, which proxies API calls to the backend on Koyeb.

Where a provider cannot supply something, the app says so and does not fill the gap with invented data. NBA standings, for example, are computed from completed games because the free feed does not include them.

Tests

# Backend, from the repository root
.venv-playaxis/bin/python -m pytest -q

# Frontend
cd frontend
CI=true npm test -- --watchAll=false --runInBand
npm run build

See verification scope for what the tests do and do not cover.

Credits

MIT licensed. Photography by Hannah Coleman on Unsplash. Map data © OpenStreetMap contributors. NFL schedules use nflverse data under CC BY 4.0. Provider data and media keep their own terms. Built by Oliver Perrin.

About

Find sport and gaming events, follow teams, log training and join community sessions. React, Leaflet and FastAPI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages