Este projeto consiste em um sistema distribuído, desenvolvido com arquitetura de microsserviços, projetado para atender funcionalidades relacionadas a autenticação e gestão de dados de usuários. O projeto utiliza tecnologias modernas para garantir escalabilidade, segurança e eficiência no desenvolvimento.
O sistema é dividido em dois serviços principais:
O serviço de autenticação (auth-services) é responsável por gerenciar o cadastro, login e validação de usuários. Ele garante que as credenciais dos usuários sejam processadas de forma segura, fornecendo funcionalidades essenciais para o controle de acesso.
- Cadastro de novos usuários.
- Login de usuários com validação de credenciais.
- Geração e verificação de tokens JWT para autenticação.
- Segurança de senhas com hashing (usando
bcrypt).
| Tecnologia | Descrição |
|---|---|
| NestJS | Framework para construção de APIs escaláveis e modulares com TypeScript. |
| TypeScript | Superset do JavaScript com tipagem estática, garantindo maior confiabilidade. |
| JWT (JSON Web Token) | Utilizado para geração e validação de tokens de autenticação. |
| Bcrypt | Utilizado para segurança adicional em algumas operações de dados. |
| Axios | Biblioteca HTTP para comunicação entre serviços. |
| TypeORM | ORM utilizado para a interação com o banco de dados relacional (MySQL). |
| MySQL2 | Driver para integração com o banco de dados MySQL. |
O serviço de dados (data-service) é o núcleo de gestão de informações no sistema, focado no armazenamento e manipulação de dados de usuários e informações adicionais.
- Armazenamento e gerenciamento de dados de usuários.
- Validação e formatação de dados antes da persistência no banco de dados.
- Suporte para múltiplos bancos de dados relacionais (MySQL e PostgreSQL).
| Tecnologia | Descrição |
|---|---|
| NestJS | Framework para construção de APIs escaláveis e modulares com TypeScript. |
| TypeScript | Superset do JavaScript com tipagem estática, garantindo maior confiabilidade. |
| TypeORM | ORM utilizado para a interação com bancos de dados relacionais. |
| MySQL2 | Driver para integração com o banco de dados MySQL. |
| RxJS | Biblioteca para programação reativa, usada em operações assíncronas e fluxos de dados. |
Certifique-se de ter instalado:
-
Clone o repositório:
git clone https://github.com/Jeferson5641/project-root.git
-
Instale as dependências em cada serviço:
cd auth-services yarn install cd ../data-service yarn install
-
Execute os serviços em modo de desenvolvimento:
yarn dev
yarn dev
project-root/
├── auth-services/ # Serviço de autenticação
│ ├── src/
│ ├── package.json
│ └── README.md
├── data-service/ # Serviço de dados
│ ├── src/
│ ├── package.json
│ └── README.md
└── README.md # Descrição geral do projeto