Inspiration

The world of sports betting and football fandom is often driven by emotion and "gut feelings." We wanted to strip away the noise and build a tool that treats football matches like a data science problem. Inspired by modern financial trading platforms and the sleek aesthetics of glassmorphism, we set out to create a dashboard that makes advanced machine learning accessible and visually stunning for the everyday fan.

What it does

GoalPredict Elite is an end-to-end match forecasting engine. Users select two Premier League teams, and the system instantly generates a victory probability based on real-time data. It doesn't just give a number; it provides context by displaying the "Recent Form" (last 5 games) of both squads and a detailed historical head-to-head archive. The interface uses a "Battle Arena" layout to help users visualize the matchup before the AI delivers its verdict.

How we built it

Data Engineering: We built a pipeline in Zerve to ingest and clean historical Premier League datasets using Pandas.

Machine Learning: We implemented a Random Forest Classifier trained on features like home/away advantage, shots on target, and betting market efficiency (odds).

Frontend: The UI was crafted using Streamlit, enhanced with custom CSS to achieve a "Glassmorphic" effect with blurred backgrounds and neon-green accents.

Visualizations: We used Plotly Graph Objects to create the dynamic, interactive gauge charts that reflect the AI’s confidence levels.

Challenges we ran into

The "Silent" Data Sync: Early in development, we faced NameErrors because the UI environment wasn't sharing variables with the training logic. We solved this by creating a self-contained, cached data engine within the Streamlit deployment.

CSS Constraints: Implementing glassmorphism within a Python-based framework required precise CSS injection to ensure containers looked like frosted glass without breaking the responsiveness of the layout.

Data Availability: Ensuring the model could handle "unseen" matchups or teams with limited data required careful handling of LabelEncoders and mean-averaging for missing stats.

Accomplishments that we're proud of

The UI Transformation: Moving from a basic text-based output to a premium, dark-themed dashboard that looks like a professional SaaS product.

Model Performance: Successfully training a Random Forest model that captures the nuances of Premier League volatility.

Zerve Integration: Creating a seamless flow from a complex data engineering "node map" to a live, public-facing web application.

What we learned

We learned the importance of Feature Engineering—that shots on target and market odds are often more predictive than team names alone. We also mastered the art of "UX-driven AI," realizing that a model is only as good as the user's ability to understand its output.

What's next for GoalPredict Elite

Live API Integration: Moving from static CSV files to live data feeds for real-time, mid-match predictions.

Advanced Metrics: Incorporating "Expected Goals" (xG) and player-specific injury data into the Random Forest features.

Multi-League Support: Expanding the engine to cover the Champions League, La Liga, and the Bundesliga.

Mobile App: Converting the Streamlit interface into a native mobile experience for fans on the go.

Built With

Share this project:

Updates