Description as a Tweet:

The quintessential stress-reliever for fantasy basketball draft picks.

Inspiration:

An exceedingly hectic fantasy basketball draft and a desire to demonstrate how classical ML/NLP algorithms can sometimes be superior were strong motivations.

What it does:

Simply type in the name of your favorite NBA player and we’ll get you all of their stats. Fast. Using our robust pattern matching algorithms, we can find any player you look for, no matter how many typos you add. After all, we know you’re in a hurry.

How we built it:

1. Your query goes through an ensemble of fuzzy string matching algorithms to get the closest-matching player. Some filters specialize in partial substrings, for individual first and last names, while others look at edit distance.
2. Now that we’ve found the player you’re looking for, we have to find his three closest players. We do this by associating each player with a set of preprocessed normalized features. We can then sort by Euclidean distance to get an efficient matching. The really interesting thing is that we don’t take a player’s position into account at all, yet our algorithm tends to cluster together players with the same position anyway.
3. Finally, we send all four calculated players back to the frontend, where a bit of JavaScript and CSS magic makes everything come together! The total response time is a small fraction of a second.

Technologies we used:

  • HTML/CSS
  • Javascript
  • Python
  • Flask
  • AI/Machine Learning
  • Other Hardware

Challenges we ran into:

Our biggest challenge dealt with the integration of our frontend and backend codebases. Designing a clean API and debugging various network bugs turned out to be very tedious.

Accomplishments we're proud of:

Our clean, user interface with its gradient color scheme and pretty fonts is definitely something to be proud of. Getting it to work well in many contexts (browsers, aspect ratios) took a lot of learning-on-the-fly and teamwork.

The backend ML algorithms worked surprisingly well, too. After applying normalization and PCA, the dataset had a really nice structure (players were cleanly clustered by position, without it being taken into account). Also, the pattern matching for the search was surprisingly robust.

What we've learned:

While developing Victory Tier, Mansi learned the backend development functions through mentorship by her older brother, Rajan. This was our first time working together on a hackathon project. We learned to be adaptable and the importance of communication throughout.

What's next:

We hope to improve our user interface and responsiveness on our website. We hope to take our web application and create a mobile application for fanatics on-the-go.

Built with:

Flask, Python and its many numerical libraries, HTML/CSS, JavaScript

Prizes we're going for:

  • Best Documentation
  • Best Web Hack
  • Funniest Hack
  • Best Machine Learning Hack
  • Best Beginner Software Hack
  • Best Beginner Web Hack

Team Members

Mansi S
Rajan S

Table Number

Table TBD