A large part of our product is training and using a machine learning model. As such, we chose one of the best coding languages, Python, for machine learning. This coding language has many packages which help build and integrate ML models. For the main portion of the machine learning, we chose PyTorch as it is one of the highest quality ML packages for Python. PyTorch allows for extreme creativity with your models while not being too complex. Also, we chose to include scikit-learn as it contains many useful functions and models which can be quickly deployed. Scikit-learn is perfect for testing models, but it does not have as much flexibility as PyTorch. We also include NumPy and Pandas as these are wonderful Python packages for data manipulation. Also for testing models and depicting data, we have chosen to use Matplotlib and seaborn, a package which creates very good looking plots. Matplotlib is the standard for displaying data in Python and ML. Whereas, seaborn is a package built on top of Matplotlib which creates very visually pleasing plots.

A core part of our product's backend is hosting a machine learning model on the web. To accomplish this task, we chose Flask to help manage connections on our website. Furthermore, it has integrated support for unit-testing and Google App Engine compatibility. Also, Flask is built for Python which is the coding language that will manage the machine learning. We chose Firebase along with Google Cloud Platform to host our website and some useful data. These options integrate well with machine learning models and have multiple free/cheap options to host a server. Furthermore, Firebase has many useful applications for web app development including Cloud Firestore and Firebase ML. The key reason we chose these products together is that they all have support for Google frameworks and are very easy to integrate with each other.