I love watching Fortnite streams, but I'm always curious if my streamer is on a winning streak or not. This extension gives me some context to the streamers current game and whether they've been winning or losing!
What it does
This app connects to a fortnite user tracking API, and collects up to date information on the last 3 games. It runs on a scheduled timer, updating the games list every few minutes.
How I built it
I used AWS API-gateway + Lambda to create a serverless endpoint connected to my configuration. That configuration data fed into mongoDB and stored the users Epic username/game system data there. Using AWS Cloudwatch, I scheduled a task every few minutes to run another lambda function which runs through every user in the database and retrieves their last 3 games using the fortnite tracker API. This is then displayed on the extensions video overlay.
Challenges I ran into
Making sure I didn't abuse the API was an interesting challenge. The timer has to allow for enough time between API calls. Also ensuring that the correct token was used to deliver the information via twitch pub sub for each specific user. Finally, making sure the timer fired properly in order to collect the last few games.
Accomplishments that I'm proud of
I am proud I was able to build an end-to-end app that does something useful and integrates well with a game I love. I initally was very nervous regarding design decisions but after looking at a lot of similar overlays, I decided simple was best!
What I learned
I learned how to build a serverless API endpoint very quickly on AWS. I also learned how to iterate a twitch extension from ideation to finished product in a really fast amount of time, which I'm very proud of.
What's next for Fortnite Last 3
I would like to add more stats, and perhaps build in a webhook that will automatically update the list of games when something has been finished. Using something like overwolf I would be able to also deliver a lot more data of high fidelity.