Este projeto é uma aplicação construída com NestJS. O front-end da aplicação fica no repositório metrix-webapp
- Tecnologias Utilizadas
- Como executar o projeto
- Estrutura do Projeto
- Ajustes e/ou novas funcionalidades para o sistema
- NestJS: Framework para construção de aplicativos back-end em Node.js.
- TypeScript: Linguagem de programação para tipagem estática de dados.
- Sequelize: ORM (Object-Relational Mapping) para Node.js, utilizado para interagir com o banco de dados SQLite.
- class-validator: Biblioteca para validação de dados em classes e objetos.
- bcrypt: Biblioteca para hashing de senhas.
- JWT (JSON Web Tokens): Método para autenticação.
- SQLite: Banco de dados SQL embutido.
- Jest: Framework de testes em JavaScript.
- Prettier: Ferramenta para formatação de código.
- ESLint: Ferramenta para análise estática de código em JavaScript e TypeScript.
-
Crie um arquivo com o nome
.env
na raiz do projeto com a seguinte configuração:NODE_ENV=development DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASS=postgres DB_NAME=metrix DB_DIALECT=postgres PRIVATE_KEY=random_secret_key TOKEN_EXPIRATION=48h
-
Instale as dependências do projeto:
npm install
-
Crie o banco localmente:
npm run migrate
-
Execute as seeds para popular o banco:
npm run seed
-
Execute a aplicação:
npm run start
A estrutura do projeto é organizada da seguinte forma:
|-- src/
|-- common/
|-- constants/
|-- guards/
|-- helpers/
|-- core/
|-- constants/
|-- database/
|-- modules/
|-- auth/
|-- user/
|-- dto/
|-- entities/
|-- enums/
- Contém módulos comuns utilizados em toda a aplicação, como constantes, guards e helpers.
- Responsável por configurar aspectos centrais da aplicação, como conexão com o banco de dados.
- Contém os módulos da aplicação, cada um representando uma área ou recurso, como autenticação e usuário. Cada módulo pode conter Data Transfer Objects (DTOs), entidades e enums relacionados.
- (Melhoria) Separar o Address e o Physical para um novo módulo para poder ter rotas para editar somente eles
- (Ajuste) Configurar o CORS
- (Melhoria) Adiciona o Swagger para uma melhor documentação
- (Melhoria) Melhorar o tratamento e retorno dos erros