Biwenger Companion

Fantasy football tracker

Languages

JavascriptTypescript

Frameworks and tools

NodeJsMongoDBJWT AuthAngularBootstrap

Platforms

HerokuFirebaseMongoDB Atlas

Some years ago, me and my friends used to have a fantasy football league on Biwenger. To spice things up, we decided that at the end of every gameweek, the last players in the standings had to deposit a small payment into a common fund, so that at the end of the season we could all go together have dinner or spend that money somehow.

At the beginning, all these payments were registered in an Excel sheet. It was quite tedious, because someone (me) had to manually fill the gameweek results and calculate the amount to pay for each player. After some iterations on this Excel sheet, going from fully manually to partially automated with some VisualBasic scripts, I decided to program a tracker that would extract the results at the end of each gameweek, calculate the amount to pay for each player, and save in a database.

The backend of Biwenger Companion is a NodeJs/Express application that is responsible of extracting the data from the Biwenger API, which I had to reverse-engineer as it is not a public API, and then treat and store that data in a MongoDB database. Over the time, I added some more functionality, such as tracking the league's market, tracking each player's budget, etc.

In order to let my friends check the status of the common fund and how much each person had to pay, I made a frontend PWA application using Angular, and set up a JWT authentication system so that only my friends could access the site, and so I could also perform authorization limitations to some of the resources.

We used it a lot during a couple of years, and I had fun doing it, but it was my first project using Node and Angular and I think a lot of things could have been done better.

Biwenger Companion total payments
Biwenger Companion gameweek payments
Biwenger Companion balances
Biwenger Companion market