Skip to content

Latest commit

 

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Justarter

Busca com autocompletar de jogos — React (frontend) → GraphQL (backend em Go) → PostgreSQL.

Domínio

Top 10k jogos mais populares de 2025, a partir de um dataset do Kaggle. Os dados são limpos (acentos, capitalização, duplicatas) e versionados no repositório, carregados no Postgres por um seed automatizado.

Stack e dependências

Backend (backend/, Go 1.24)

  • gqlgen — servidor GraphQL (schema-first, geração de código)
  • lib/pq — driver Postgres
  • rs/cors — CORS
  • PostgreSQL 16

Frontend (frontend/, Node 20)

  • React 19 + TypeScript, via Vite
  • graphql-request — cliente GraphQL
  • Vitest + Testing Library — testes
  • ESLint — lint

Infra

  • Docker + Docker Compose (sobe db, seed, api, web)

Como rodar

Pré-requisito: Docker + Docker Compose.

docker compose up --build

Sempre use --build após alterar código — sem ele o Compose reaproveita a imagem já buildada.

Docker + Docker Compose é tudo que é preciso ter instalado — Go, Node e até o Python do seed rodam dentro das próprias imagens (golang:1.24-alpine, node:20-alpine, postgres:16-alpine + python3), nunca no host.

Rodando local (sem Docker), pra desenvolver

Só necessário se for editar código com hot-reload em vez de rebuildar a imagem a cada mudança — nesse caso sim, precisa de Go e Node instalados na máquina.

Backend:

cd backend
go run ./cmd   # precisa de DATABASE_URL apontando pro Postgres (docker compose up -d db seed)

Frontend:

cd frontend
npm install
npm run dev    # usa VITE_GRAPHQL_URL de .env (default: localhost:8080/graphql)

Variáveis de ambiente

Variável Onde Default Descrição
DATABASE_URL backend (obrigatória) String de conexão do Postgres. Já setada em docker-compose.yml pro serviço api.
CORS_ORIGIN backend http://localhost:3000 Origem liberada pelo CORS do GraphQL — precisa ser a URL de onde o web é servido.
PORT backend 8080 Porta HTTP do servidor GraphQL.
VITE_GRAPHQL_URL frontend http://localhost:8080/graphql (via frontend/.env) Endpoint que o front chama. Embutida no build (Vite) — quem faz a requisição é o navegador, não o container, então precisa ser um endereço alcançável de fora do Docker. No build da imagem é setada via ARG (ver frontend/Dockerfile/docker-compose.yml).

Testes

# backend
cd backend && go vet ./... && go test ./... && golangci-lint run ./...
# sem golangci-lint instalado: docker run --rm -v $(pwd)/..:/repo -w /repo/backend golangci/golangci-lint:v2.12.2 golangci-lint run ./...

# frontend
cd frontend && npm run lint && npm test && npm run build

Detalhes de cada camada de teste (unitário, integração com Postgres real, smoke do binário) em docs/testing-backend.md.

Mais documentação

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages