Este projeto é API robusta para gerenciamento de tarefas, desenvolvida com TypeScript e utilizando boas práticas como testes automatizados, validação de dados e organização em camadas. A estrutura sugere integração com um banco de dados MongoDB e uso do Express para rotas.
- Node.js
- TypeScript
- Express.js
- MongoDB
O projeto segue uma arquitetura em camadas, separando as responsabilidades da aplicação para melhor organização e manutenção.
Diretório principal contendo o código-fonte da aplicação.
adapters/: Adaptadores para frameworks e bibliotecas externas.controllers/: Controllers da API, gerenciando as requisições e respostas.task/: Controllers relacionados a tarefas.
expressRouteAdapter.ts: Adaptador para utilizar rotas do Express.js.factories/: Factories para criação de objetos.interfaces/: Interfaces que definem contratos.presentations/: Lógica de apresentação da API.api/: Configuração e estrutura da API.config/: Arquivos de configuração da API.errors/: Tratamento de erros da API.httpResponses/: Respostas HTTP personalizadas.middlewares/: Middlewares da API (ex: CORS).routes/: Definição das rotas da API.
validations/: Classes e funções para validação de dados.
dataSources/: Camada de acesso a dados.config/: Configurações de conexão com o banco de dados.db/: Implementação do acesso ao banco de dados.repository/: Repositórios para interação com o MongoDB.
entities/: Entidades de domínio da aplicação.task.ts: Entidade que representa uma tarefa.
usecases/: Casos de uso da aplicação, representando as regras de negócio.addTask.ts,deleteTask.ts: Casos de uso para adicionar e remover tarefas.repository/: Interfaces de repositórios para os casos de uso.
index.ts: Ponto de entrada da aplicação.
Diretório para os arquivos compilados da aplicação.
.eslintignore,.eslintrc.json: Configurações do ESLint para estilo de código..git/: Pasta do sistema de controle de versão Git..gitignore: Define arquivos e pastas ignorados pelo Git..prettierrc: Configurações do Prettier para formatação de código..vscodeignore: Define arquivos e pastas ignorados pelo VS Code.CHANGELOG.md📑: Histórico de mudanças do projeto.docker-compose.yml: Arquivo para configuração de containers Docker.package-lock.json,package.json📦: Gerenciamento de dependências.README.md📄: Este arquivo, que você está lendo agora! 😊tsconfig.json⚙️: Configurações do compilador TypeScript.
- A utilização de Docker sugere que o projeto está preparado para ser executado em um ambiente containerizado.
- A estrutura bem organizada e a separação de responsabilidades indicam um código mais fácil de entender, manter e evoluir.
- Detalhar a documentação da API (rotas, parâmetros, etc.) dentro do diretório
docs/. - Adicionar informações sobre como executar o projeto (ex: comandos para build, iniciar a API, etc.).