Um template robusto e pronto para produção para construir APIs Node.js.
Este projeto é construído sobre os pilares da Arquitetura Limpa (Clean Architecture), S.O.L.I.D. e Domain-Driven Design (DDD), usando as ferramentas mais modernas do ecossistema TypeScript.
- Node.js
 - TypeScript
 - Express: Servidor web
 - Docker e Docker Compose: Ambiente de banco de dados (PostgreSQL)
 - TypeORM (v0.3+): ORM para comunicação com o banco
 - TSyringe: Contêiner de Injeção de Dependência (DI)
 - Bcrypt.js e JWT: Para autenticação
 - Class-transformer e Class-validator: Para validação de DTOs e formatação de Views (JSON de resposta)
 - DotEnv: Gerenciamento de variáveis de ambiente
 - Express-Async-Errors: Tratamento de erros em rotas assíncronas
 
Siga os passos abaixo para rodar o projeto localmente.
- "Use este template" no GitHub para criar seu novo repositório, ou clone este repo.
 - Entre na pasta do projeto: 
cd seu-projeto - Instale as dependências:
npm install
 
- 
Copie o arquivo de exemplo
.envpara criar seu arquivo de ambiente local:cp .env.example .env
(O arquivo
.envé pessoal e ignorado pelo Git) - 
Verifique o arquivo
.enve ajuste as portas ou senhas, se necessário. Os valores padrão já estão configurados para funcionar com o Docker Compose. 
- 
Inicie o container do PostgreSQL em segundo plano (
-d):docker-compose up -d
 - 
(Opcional) Para acessar a interface gráfica (Adminer) do banco, acesse:
http://localhost:8080- Sistema: 
PostgreSQL - Servidor: 
postgres_db - Usuário: 
docker - Senha: 
dockerpass - Banco de Dados: 
template_api 
 - Sistema: 
 
Com o banco no ar, precisamos criar as tabelas. O projeto usa migrations do TypeORM para isso.
npm run migration:run