Inspiration
Our inspiration for Sportfolio was the pain points that sports betters all share: losing money. In our search for solutions, we noticed sports betting market problems are surprisingly similar to the stock trader problems. So why don't we employ similar quantitative approaches? We are empowering sports better with their own "financial market dashboard"--PrizePicks style.
What it does
Sportfolio acts as a wrapper over PrizePicks that allows them both the quantitative tools of a stock trader as well as the ability to trade like one. Our app offers the ability for a user to "buy and hold" players "stock" in the form of placing long term repeating parlays on the same diversified portfolio of players to minimize risk over the long term. Stock traders know that long-term, consistent gains beat aggressive and emotionally-driven strategy.
How we built it
We built Sportfolio on the MERN stack, and with Typescript. Our data is derived from the NBA JSON api from the 2024-2025 season, giving us about a variety of over 1500 games throughout which we analyzed players' performance. We had a data pool of tens of thousands of values that was stored in MongoDB. We also involved a small Python script called pygoogle for scraping articles relevant to the players and helpful to the user for context. It spoke to our application through a FastAPI server that integrated with our Node.js backend. We also introduced caching in order to speed up localized sessions, since we would be placing fantasy bets from past seasons rather than ones in real-time.
Challenges we ran into
Messy data, projection calibration, and rate-limit performance.
Accomplishments that we're proud of
End-to-end EV pipeline with live updates and a simple UI.
What we learned
Small modeling/UX choices hugely affect trust and outcomes.
What's next for Sportfolio
Try our best to join with prize picks to expand more on what we have.
Built With
- ai
- flask
- mern
- typescript

Log in or sign up for Devpost to join the conversation.