Code challenge.
Ao realizar git clone do projeto, acesse o diretório do mesmo e execute:
- Baixar dependências e outras verificações
go mod tidy
- Para executar como dev
go run main.go
- Para compilar a aplicação
go build
Ao executar a API, estará executando na porta 9000
, com endpoins em:
Previsão
http://localhost:9000/api/previsao
Alertas
http://localhost:9000/api/alerta
Para executar testes no projeto, ao acessar esse diretório, execute:
TEST_MODE=true go test ./...
Para verificar quanto está a cobertura dos testes no projeto, execute:
TEST_MODE=true go test -coverprofile=coverage ./...
Em seguida:
go tool cover -html=coverage
Algumas variáveis de ambiente podem ser inicializadas juntamente com o comando de execução da aplicação, como executar em modo de produção
:
PRODUCTION=true go run main.go
Com uma configuração de banco de dados diferente em seu computador, utilize as variáveis de ambiente DB_HOST
, DB_USER
, DB_PASS
, DB_PORT
e DB_NAME
.
DB_HOST=localhost DB_USER=postgres DB_PASS=pass DB_PORT=5432 DB_NAME=dbpostgres go run main.go
Os arquivos Dockerfile
e docker-compose.yaml
são responsáveis por gerar os recursos de infra e configuração necessários para a(as) aplicação(ções) executar(em), como: portas de acesso, banco de dados, senhas de acesso, rede interna para acesso entre as mesmas. Eis abaixo algumas recomendações para o respectivo projeto:
O container do Banco de Dados está declarado commo forecast_db
, e a configuração para acesso ao mesmo encontra-se na declaração deste container, no arquivo docker-compose.yaml
, onde estão sendo repassadas algumas variáveis de ambiente: POSTGRES_PASSWORD
; POSTGRES_USER
e POSTGRES_DB
- todas as variáveis necessárias com valores padrão estão no arquivo .env.example
, onde é necessário copiar esse arquivo para .env
e alterar os valores das variáveis. O serviço irá executar na porta 5432
. Os arquivos referentes ao banco de dados serão persistidos como volume em ./db-data
no contexto da pasta do projeto.
O container do backend está declarado no mesmo arquivo docker-compose.yaml
como forecast
. Todas as variáveis necessárias estão declarados também no arquivo .env.example
, como DB_HOST
, DB_PORT
, DB_PASS
, DB_NAME
, DB_USER
, PRODUCTION
, SSL_MDOE
, PORT_API
, LATITUDE
, LONGITUDE
e TIMEZONE
.
Copie o arquivo .env.example
para .env
e atualize seus valores, essas variáveis serão inicializadas quando utilizado o arquivo docker-compose.yaml
em implantação.
Para construir os containers utilizando Docker Compose, acesse esta pasta do projeto e use o comando docker compose up
, para recompilar docker compose up --build
. Para desligar e ligar todos os containers, use respectivamente docker compose stop
e docker compose start
.
Ao construir a imagem do container da aplicação em Docker, está sendo executado os testes unitários, antes dessa fase.