An endless quiz for learning the most common German words. Additional languages may follow in the future.
The frontend is written using Yew with the code written in Rust, and is hosted from an S3 bucket using the static website hosting functionality. This service does not support HTTPS connections, so I have used an Cloudfront distribution along with AWS's certificate manager to provide this functionality.
When a PR is created or updated, a CodeBuild event is triggered which will deploy the project into a development environment, and a second event which will run the unit and integration tests. A merge into the main branch will trigger an event which will deploy the project into the production environment.
For this project I have decided to use one of AWS's default build images, since I do not have the time to consistently maintain my own. As a result, the dependencies are installed each time a build is run which is not ideal, but this works well enough for now.
The pipelines will build the required S3 bucket using Terraform then build the frontend and copy the files to S3.