This repository contains a ReactJS application, that will be served using a Nginx container, and the corresponding
infrastructure configuration in Terraform. To keep the task agnostic from CI/CD build tools, the CI/CD processes will
are modelled using bash scripts. Assume that the CI/CD scripts will be executed in the Docker container ubuntu:latest
.
The project has the following folders.
app
- a static ReactJS app that will be bundled into a container running Nginx for deploymentci-cd
- a collection of bash scripts that would be called by a CI/CD pipeline to perform key tasksinfrastructure
- the Terraform scripts to create the infrastructure to host the app
There are many issues with the code presented to you, you will fix one of the most critical and document the others. The
application code itself, that is the contents of app/public
and app/src
is out of scope of the task. While the toy
application doesn't currently serve personally identifiable information, assume that it does.
You are asked to complete the follow tasks:
- Review the code in its current state and describe any potential issues. Focus on: security, availability and performance.
You can write your observations in a file called
RECOMMENDATIONS.md
and include it in this repository. - Implement, by modifying the Terraform code in this repository, SSL encryption for the application.
Note: you are not expected to purchase a domain name if choose to run the Terraform code, comment out data.aws_route53_zone.zone
and aws_route53_record.domain
and update your machines DNS resolution instead. On Linux systems this requires updating
your /etc/hosts
file.
You should spend no more than a couple of hours task. To submit your solution, create a private GitHub respository and
grant access to the user yulifelimited
. We will then arrange a time for the review session.