Backend Engineering Interview Assignment (Golang)

Requirements

To run this project you need to have the following installed:

  1. Go version 1.19

  2. Docker version 20

  3. Docker Compose version 1.29

  4. GNU Make

  5. oapi-codegen

    Install the latest version with:

    go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@latest
    
  6. mock

    Install the latest version with:

    go install github.com/golang/mock/mockgen@latest
    

Initiate The Project

To start working, execute

make init

Running

To run the project, run the following command:

docker-compose up --build

You should be able to access the API at http://localhost:8080

If you change database.sql file, you need to reinitate the database by running:

docker-compose down --volumes

Testing

To run test, run the following command:

make test

Disclaimer

It's not best practice to provide public key and private key on repo, usually it stored on config environment, but for simplicity, those are stored on repo