Back

Updating my NBA Project

Some updates I did to my NBA project

Website In Action

Click here to see it!

If you haven’t seen my other blog post, make sure to read it first.

In the past summer, when I was happy with my project, I decided to host it on heroku and github pages and leave it be until the season started. Once the pre-season started, I noticed a major problem: the boxscores did not update until the game finished. During the game, all the values would be null, making this website incredibly useless.

I knew this was something I needed to fix, but I held it off until after my Microsoft Garage interview. To prepare for my Microsoft interview, I did a few Leetcode questions and prepared a quick powerpoint for my 10 minute presentation. During one of the three interviews I had, one of the interviewers asked me to talk about a project for the entire interview (45 min).

My best project was this one so I talked about it as much as I could. In this interview, I found out that many aspects of my project could have been done much better:

  • constantly calling the NBA API endpoint with different proxies is a Denial of Service attack (which is pretty rude by me)
  • making requests with different proxies is unsafe
  • I could probably find a better API endpoint, which would make things safer and then I would not have to use the proxy rotator
  • my React components could be refactored to be more object-oriented and easier to read

After my interview, I was pretty defeated because I didn’t think it went so well because almost everything I implemented/designed was questioned, but nevertheless I saw it as a learning opportunity to make something better.

So I got home and started improving it. Here is what has changed:

  • designed new components and the table based off the NBA website instead of using Ant.design
  • displays ALL games for a given day, regardless if it has started, finished or in-progress
  • displays time left for games in-progress
  • added photos for players in table
  • added ability to sort columns
  • hosting on heroku for free now instead of ($5) pythonanywhere, now that I don’t have to wait a long time for requests
  • removal of proxy rotator, and MongoDB because new endpoint is updated in real-time and is very accessible
  • found a new NBA endpoint that gives realtime data
  • other things that I can’t remember

Things I still may add:

  • sorting games
  • mobile version

Click here to see it!