- No environment variables that change from the development environment and production are present in the source code.
- A central configuration file is used in order to set the environment variables and make them available to the code and it lives here.
- No authentication strings are hard-coded in the source code.
- A project-level package.json file contains All the necessary scripts for installing, building, testing, deploying both the frontend and the backend is added and it lives here.
- Screenshots of the AWS console indicate that RDS, EB and S3 are properly set up are available here here.
- The app is accessible via this link.
- I linked the Udagram project in github to circleci and added the
config.yml
file of the circleci containing all the orbs, jobs and workflows for running the pipeline automatically after every commit on the master branch. - The
config.yml
file that ensures the build occurs in a logical sequence including Comments to explain the flow of the pipeline, is present here. - For accessing my github repository which is linked to circleci to check the structure of the project and the scripts added, click here
- A screenshot of the last build shows that my CircleCi account is authorized to access my repo on Github and is detecting changes each time I am pushing to the master branch lives here.
- The status badge on circleci indicating the current state of the master branch build .
- All the secrets found in the application are configured inside CircleCi and passed to the production application. A screenshot of the configuration screen is present here to show where secrets were added.
- The submission contains a simple diagram giving a high-level overview of the infrastructure and another diagram showing the overview of the pipeline. The diagram Includes the different AWS services used for hosting the DB, API and UI, A representation of the communication between the services is present in the diagrams (ex: arrows between services).
- The scripts needed for installing, testing and building the frontend and backend of the application are found in the package.json files in
udagram-api & udagram-frontend
folders. - The scripts are called in the project-level package.json.
- Jobs are added in the
.circleci/config.yml
file for running these scripts in the following order:-- install frontend
- install backend
- build backend
- build backend
- test frontend
- test backend
- The scripts needed for deploying the frontend and backend of the application are found in the package.json files in
udagram-api & udagram-frontend
folders. - The scripts are called in the project-level package.json.
- Jobs are added in the
.circleci/config.yml
file for running these scripts in the following order:-- deploy frontend
- deploy backend
RDS
to create a postgreSQL database.EB
to run a server and create a production Application and link it with the production environment and host the backend files.- I have added the environment variables in the production environment.
- I have linked the database with the backend.
- I have linked the backend with the frontend.
S3
to create a bucket for hosting the frontend files.