NYC Covid-19 resource allocation prediction application
University capstone project| Spring 2021
View live projectThis project was the capstone for the computer science Bachelors degree program I completed in 2021.
The requirements of the project were:
- Implement one descriptive method and one non-descriptive (predictive or prescriptive) method.
- Use of collected or available datasets.
- Includes a decision-support functionality related to the non-descriptive method.
- Use methods and algorithms supporting data exploration and preparation to make data useable.
- Implementation of interactive queries to access specific data.
- Include a machine-learning method(s) and algorithm(s) to support the decision making functionality.
- Incorporate functionalities that will evaluate the accuracy of the application’s outcome.
- Provide an industry-appropriate security features that protects access to the application of data.
- Include a tool(s) to monitor the applications functionality for maintenance purposes.
- Include a user-friendly, functional dashboard that includes at least three visualization types (not just images) for data exploration and inspection.
This project could be a standalone program, or a web or mobile application. I chose to create a web application using the NextJS framework, hosted on Vercel.
The backend functionality was written in Python using Flask for a lightweight server, and Tensorflow for the machine learning model creation and training.
The dataset came from the publicly-available data api provided by https://data.cityofnewyork.us.
Retrospective
Looking back now, there are several things I would have changed or added for this project:
- Saving the TF model after training so it doesn't need to happen on every request. This takes upwards of 2-3 minutes, which tends to appear as though the request has failed.
- Before learning about the above solution for saving & reusing models, I thought about streaming status updates of the model creation/training process on the server, either using WebSockets or Streams.