Skip to content

gabriela-miranda-leite/gymflow-api

Repository files navigation

gymflow-api

CI

API backend do GymFlow construída em Go com Clean Architecture.

Pré-requisitos

Setup local

  1. Clone o repositório:

    git clone https://github.com/gabriela-miranda-leite/gymflow-api.git
    cd gymflow-api
  2. Suba o banco de dados com Docker:

    docker-compose up -d
  3. Copie o arquivo de variáveis de ambiente:

    cp .env.example .env

    Edite .env com suas configurações locais.

  4. Instale o air para hot reload:

    go install github.com/air-verse/air@latest
  5. Inicie o servidor em modo desenvolvimento:

    make run

Testes

Execute os testes e gere o relatório de cobertura:

make test

Isso gera dois arquivos:

  • coverage.out — dados brutos de cobertura
  • coverage.html — relatório visual (abra no browser para ver quais linhas foram testadas)

Padrão de teste (Arrange / Act / Assert)

func TestNomeDoComportamento(t *testing.T) {
    // Arrange — prepara os dados
    // Act     — executa o que está sendo testado
    // Assert  — verifica o resultado com testify
    assert.Equal(t, expected, got)
}

Pre-commit hook

Instale o hook para que o lint rode automaticamente antes de cada commit:

pre-commit install

Comandos disponíveis

Comando Descrição
make run Inicia o servidor em modo desenvolvimento
make build Compila o binário em bin/api
make test Executa os testes
make lint Executa o linter
make migrate-up Aplica as migrations pendentes
make seed Popula o banco com dados iniciais

Estrutura de pastas

cmd/api/          ← entry point (main.go)
internal/
  domain/         ← entidades e interfaces (zero deps externos)
  usecase/        ← regras de negócio
  infra/
    http/         ← handlers, router, middleware
    db/           ← queries SQL, repositórios
pkg/              ← utilitários reutilizáveis (jwt, hash, validator)
migrations/       ← arquivos .sql versionados

About

O GymFlow é um aplicativo mobile que resolve um problema cotidiano de quem frequenta academia: chegar e encontrar a academia lotada, sem equipamentos disponíveis e com espera longa.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors