This is a submission for the DEV Weekend Challenge: Community
The Community
I built this project for people who love the English Premier League but also
enjoy a little friendly competition with their friends. Most EPL websites
provide fixtures and results, but very few let you create private prediction
leagues, track your own scores week‑by‑week, or compare yourself against the
wider community – all in one place. The target community is anyone who
already follows the PL and wants to turn matchdays into a mini‑game with
leaderboards, leagues and historical stats.
What I Built
EPL Predictor is a full‑stack web app where authenticated users can:
View the current gameweek’s fixtures and enter score predictions.
Create or join private leagues using invite codes.
See their prediction history and personal leaderboard (points by gameweek).
Browse a global leaderboard of all users, sorted by total points.
Automatically sync fixtures and results from an external API; scores are
awarded after matches finish.
Manage gameweeks and leagues via simple admin endpoints (used internally).
The UI is a responsive React/Vite/Tailwind single‑page app, and the backend is
a Spring Boot service with JWT auth, JPA/Hibernate and MySQL. Prediction
logic, league membership and scoring all happen server‑side, with robust error
handling and logging.
Code
You can explore the source on GitHub:
How I Built It
The project uses the following technologies:
Backend – Spring Boot 7, Spring Security with JWT, Spring Data JPA,
MySQL, Lombok, and the Java 17 toolchain. The service exposes a
REST API with controllers for users, predictions, gameweeks and leagues.
A scheduled task polls a third‑party fixtures API each night to update
scores and award points.
Frontend – React 19 bootstrapped with Vite, styling via Tailwind CSS,
React Router for navigation, and Axios with interceptors for auth and
logging. Authentication state is managed in context, and pages are
protected via client‑side routing guards.
Deployment – Render and netlify.
I wrote the entire stack solo over the weekend, iterating quickly between
backend fixes and UI improvements while logging every change to make the app
resilient. The resulting application is a complete “community” experience
for EPL fans, with persistent data, authentication, and real‑time score
updates.
Thanks for reading.
Top comments (0)