This project aims to utilize basic knowledge and practice with Terraform by HashiCorp, as well as provide practice with various programming languages and concepts such as Go, Ruby, MOCK server, GitHub, Markdown language, etc. In this project, we aim to achieve the following objectives:
- Create an S3 bucket on AWS.
- Populate this bucket with files and folders representing our sites/towns, where each folder corresponds to a town in TerraTowns.
- Set up an AWS CloudFront distribution for the S3 Bucket.
- Develop a custom provider in Go for Terraform (please note that this is not a beginner-level task; we have Andrew Brown, the creator of the bootcamp, to assist with this).
- Create a MOCK server in Ruby for testing our custom provider (again, this is not a beginner-level task).
- Utilize Terraform providers for resource creation both on AWS and on TerraTowns. Essentially, a provider serves as an API for performing CRUD (Create, Read, Update, Delete) operations.
- Employ GitHub as our source code management platform.
- Generate comprehensive documentation and notes for the various stages of the project.
- Utilize ChatGPT as a junior developer to assist with project tasks.
- Use Gitpod as workspace.
This project serves as an opportunity to gain practical experience with Terraform, various programming languages, and cloud infrastructure, and it includes both beginner-level and more advanced tasks.