React:
1. Constantly being developed.
2. One of the top 3 commonly used front-end frameworks.
3. Fits the team’s skills.
Python:
1. Very common for ML/Data Science work.
2. Can easily build a web server and a ML pipeline in the same application.
3. One of the most commonly used languages, will be great for recruiting developers in the future.
Heroku:
Firebase Hosting is static, and thereby does not allow Python jobs to run. Since these are batch jobs that run more infrequently and do not directly face the user, Heroku is a great fit considering the free tier offers all the features we need.
Flask:
1. Easy to set up, does not have too much boilerplate code.
2. Our API will be very simple so we chose Flask over Django, which has MVC features that we don’t need.
Firebase Hosting:
1. We will use Firebase Hosting for our React client's server since it needs to be up all the time as opposed to hibernating (e.g. like in Heroku)
2. It includes a CDN for free, out of the box, so it would help with performance.