/todo-api

Simple playground project to try out DDD and Hexagonal approaches using Golang.

Primary LanguageGoMIT LicenseMIT

todo-api

codecov build

Simple playground project to try out DDD and Hexagonal approaches using Golang.

How To

Create a ToDo

curl --location --request POST 'http://localhost:3000/todos' --header 'Content-Type: application/json' --data-raw '{"id":"1", "title":"New Todo", "due":1609459200}' | jq

List ToDos

curl localhost:3000/todos | jq

Requirements

  • Create a new todo
  • Edit an existing todo
  • Delete an existing todo
  • Github test pipeline
  • AWS ECS deployment
  • Logging improvement: JSON, access log to stdout and not stderr
  • Auth system
  • Redis storage
  • Build ECR image and push from GitHub pipeline

Resources

Notes

Execute AWS CLI for a profile: AWS_PROFILE=personal aws s3 ls TF apply: AWS_PROFILE=personal terraform apply Push new image: AWS_ACCOUNT_ID=340053764926 make push-docker-image

Upload new image to ECR: AWS_PROFILE=personal aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin 340053764926.dkr.ecr.eu-west-1.amazonaws.com AWS_ACCOUNT_ID=340053764926 make push-docker-image