Convencoes de Codigo e Git Flow

Git Flow

  • main — Producao (deploy automatico)
  • develop — Integracao (PRs vao para ca)
  • feature/nome — Novas funcionalidades (ex: feature/auth-rbac)
  • fix/nome — Bug fixes (ex: fix/login-redirect)
  • chore/nome — Manutencao (ex: chore/update-deps)

Commits

Conventional Commits obrigatorio:

feat(auth): add JWT refresh token flow
fix(economia): correct CC balance calculation
chore(deps): update Next.js to 15.2
docs(api): add auth endpoints reference

Prefixos: feat, fix, chore, docs, refactor, test.

Escopo entre parenteses indica o modulo: auth, economia, loja, eventos, etc.

Nomenclatura

ContextoConvencaoExemplo
Variaveis/funcoescamelCasesaldoCapixacoins
Classes/tiposPascalCaseAuthService
EnumsSCREAMING_SNAKELIDER_PROJETO
Banco (tabelas/colunas)snake_casetransacoes_moeda
Arquivos TSkebab-caseauth.service.ts
Componentes ReactPascalCase arquivosidebar.tsxSidebar

Estrutura de Modulos (NestJS)

apps/api/src/modules/auth/
  auth.module.ts        # Declaracao do modulo
  auth.controller.ts    # Endpoints (rotas)
  auth.service.ts       # Logica de negocio
  dto/                  # Data Transfer Objects (Zod schemas)
    signup.dto.ts
    login.dto.ts

Validacao

DTOs validados com Zod (nao class-validator). Schemas definidos junto ao DTO e validados via ZodValidationPipe.

Tipos Compartilhados

Enums e types que sao usados tanto no frontend quanto no backend vivem em packages/shared. Nunca duplique tipos entre web e api.

Lingua

  • Codigo: Ingles (nomes de variaveis, funcoes, classes)
  • Conteudo/Labels: Portugues (textos exibidos ao usuario)
  • Banco: Portugues (nomes de tabelas e colunas em snake_case)
  • Commits: Ingles

Formatacao

Prettier configurado no monorepo (.prettierrc):

  • Semicolons: sim
  • Trailing commas: todas
  • Single quotes: sim
  • Print width: 100
  • Tab width: 2