- Push code in master branch to github
- Travis automatically pulls repo
- Travis builds a test image (for react), tests code
- Travis builds prod images
- Travis pushes built prod images to Docker Hub
- Travis pushes project to AWS EB
- EB reads Dockerrun.aws.json, pulls images from Docker Hub, deploys
- Nginx container as front-end proxy to another Nginx (with React prod files) container and Express Server container
- Nginx container with React prod files as front-end website
- Express Server container as backend which makes calls to Postgres and Redis
- Worker container for async calculations
- AWS RDS Postgres as database which remembers all past inputs
- AWS Elasticache Redis as another form of "database" (intended as not cache) which remembers all past calculations