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 referencePrefixos: feat, fix, chore, docs, refactor, test.
Escopo entre parenteses indica o modulo: auth, economia, loja, eventos, etc.
Nomenclatura
| Contexto | Convencao | Exemplo |
|---|---|---|
| Variaveis/funcoes | camelCase | saldoCapixacoins |
| Classes/tipos | PascalCase | AuthService |
| Enums | SCREAMING_SNAKE | LIDER_PROJETO |
| Banco (tabelas/colunas) | snake_case | transacoes_moeda |
| Arquivos TS | kebab-case | auth.service.ts |
| Componentes React | PascalCase arquivo | sidebar.tsx → Sidebar |
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.tsValidacao
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