NHL Milestone 3
January 9, 2025
Milestone 3 Objective
This milestone did not require any report or blog post. Instead, we were required to simply provide the github repository of our source code.
Here, we provide a link to a video in which we demonstrate the execution of our docker containers.
The objective is to create a Streamlit client app and a Flask server app. Each of these apps is deployed in a separate docker container.
The Streamlit client app lets the user select a model to predict the outcome of a game, based on the game’s shot-on-goal data. The user can select any NHL game (past or live!) by sending the NHL game ID to the server.
The Flask server is responsible for receiving the game ID, retrieving the game data from the database, and sending the data to the model. The server can pull different models we trained in the previous milestone, which are stored in the Weights and Biases cloud.
Milestone 3 Video
The video starts by starting both containers with the docker-compose up
command.
Then, the client app is demonstrated into the browser. The user can select a model and the game ID. The game ID selected was actually live during the recording of the video (January 13th, 2025, Calgary Flames vs. Chicago Blackhawks).
We can see that the first select model predicts “0.4” goals for the Flames, and “0.6” goals for the Blackhawks, while the score was 1-1 when recording the video (there was 13 minutes left in the first period).