Arquitetura do back-end
Visão geral
A aplicação segue o padrão modular do NestJS, com separação por contexto de negócio em src/modules.
Bootstrap da aplicação
No main.ts, a aplicação:
- Cria a instância Nest
- Configura Swagger em
/swagger - Habilita CORS aberto
- Aplica pipe global de validação
- Inicia na porta
PORT(fallback3000)
Módulo raiz
No app.module.ts, são carregados:
ConfigModuleglobal com.envSequelizeModule.forRoot(...)com MySQL- Módulos de domínio (contato, blog, faq, chat, etc.)
Camadas e convenções
Cada módulo segue a estrutura típica:
*.module.ts: declaração do módulo*.controller.ts: exposição de endpoints*.service.ts: regra de negóciodto/: contratos de entrada/saída (quando aplicável)
Persistência
- ORM: Sequelize (
sequelize-typescript) - Modelos em
src/models/*.model.ts autoLoadModels: truesynchronize: false(não altera schema automaticamente)timestamps: falsepor padrão global
Integrações expostas
- API HTTP REST via controllers
- Swagger para documentação interativa
- WebSocket gateway no módulo
chat
Módulos registrados atualmente
- agendamento
- blog
- busca
- chat
- contato
- dashboard
- faq
- header
- mapa
- notificacao
- publicidade
- recomendacao
- reports
- servicos
- simulador
- usuario