O ClienteHub é uma solução de back-end robusta desenvolvida para otimizar o fluxo de cadastro de clientes e o armazenamento de informações descritivas, focando em integridade de dados e escalabilidade.
Este projeto foi desenvolvido por:
Eduarda Aleixo, Gabriel Pereira, Jean Pedro, Júlia Santos, Julio Aguiar, Laís Souza e Wadssa Wacemberg.
Este projeto foi construído com o propósito de fornecer uma API estruturada para o gerenciamento de clientes e descrições técnicas, aplicando conceitos avançados de arquitetura modular, validações rigorosas e persistência de dados em um ambiente Enterprise.
O ClienteHub utiliza o ecossistema NestJS para garantir um código limpo e de fácil manutenção. A API é dividida em módulos independentes que se comunicam para oferecer um serviço completo de CRUD, garantindo que cada dado inserido esteja de acordo com as regras de negócio.
- 🏗️ Arquitetura Modular: Divisão estratégica entre módulos de Inserção e Descrição.
- 🔐 Integridade de Dados: Validações automáticas de e-mail, campos obrigatórios e tamanhos de caracteres.
- 🗄️ Persistência Relacional: Banco de dados MySQL gerenciado via TypeORM com sincronização automática.
- ⚡ Servidor Eficiente: Configuração global de pipes para tratamento de requisições.
- NestJS: Framework principal para a construção da arquitetura.
- TypeScript: Tipagem forte para evitar erros em tempo de execução.
- TypeORM: ORM para manipulação de entidades e migrações de banco.
- MySQL: Motor de banco de dados para armazenamento persistente.
- Class-Validator: Biblioteca para validação de esquemas de dados (DTOs/Entities).
- Módulo de Clientes: Cadastro, atualização e exclusão de clientes com validação de e-mail único.
- Módulo de Descrições: Sistema para gerenciar títulos e textos longos vinculados a processos internos.
- Filtros de Busca: Localização de registros através de identificadores únicos (IDs) ou termos parciais (ILike).
- Feedback HTTP: Retorno de status codes apropriados para cada operação (201 Created, 204 No Content, 404 Not Found).
- Controller Decorators: Uso de decorators para simplificar a lógica de rotas e injeção de dependências.
- Tratamento de Erros: Implementação de
HttpExceptionpersonalizada para garantir que o front-end receba mensagens claras. - Global Validation: Uso do
ValidationPipenomain.ts, garantindo que nenhuma requisição malformada chegue aos Services. - Clean Architecture: Organização de diretórios que separa claramente a lógica de negócio (Services) das rotas (Controllers).
├── src/
│ ├── description/
│ │ ├── controller/
│ │ │ └── description.controller.ts
│ │ ├── entities/
│ │ │ └── description.entity.ts
│ │ ├── service/
│ │ │ └── description.service.ts
│ │ └── description.module.ts
│ ├── insert/
│ │ ├── controller/
│ │ │ └── insert.controller.ts
│ │ ├── entities/
│ │ │ └── insert.entity.ts
│ │ ├── services/
│ │ │ └── insert.service.ts
│ │ └── insert.module.ts
│ └── main.ts