Skip to content

rafittu/back-alma

Repository files navigation

🌱 Back-end da aplicação ALMA


A API desenvolvida tem como objetivo o gerenciamento de usuários. Por meio dessa API, é possível realizar operações de cadastro, consulta, autenticação, atualização e exclusão de usuários.

A identidade de cada usuário é considerada uma "ALMA" dentro do sistema, representando a importância e singularidade de cada indivíduo. Por isso, a API oferece recursos para gerenciar e manter essas informações com segurança e eficiência.


Tecnologias


Este projeto utiliza as seguintes tecnologias:

  • Node.js com framework NestJS e TypeScript;

  • Prisma ORM para comunicação e manipulação do banco de dados PostgreSQL;

  • Redis para armazenamento em memória

  • Amazon Simple Queue Service (SQS) para comunicação assíncrona entre serviços;

  • JWT para autenticação e autorização de acesso;

  • Bcrypt e Crypto como ferramenta de criptografia;

  • Passport.js para implementação de estratégias de autenticação;

  • Helmet para configuração segura dos cabeçalhos HTTP;

  • CORS para controle de acesso à API;

  • Docker como uma ferramenta de containerização;

  • Jest para execução dos testes unitários;

  • Swagger para documentação da API;


Funcionalidades

A API ALMA oferece diversas funcionalidades para gerenciamento de usuários, autenticação e segurança, permitindo desenvolver aplicações robustas e seguras.


Gerenciamento de Usuários:

  • Cadatro de usuários: crie novos usuários na plataforma com informações completas.
   {
     "firstName": "John",
     "lastName": "Doe",
     "cpf": "12365478914",
     "socialName": "Joane Eod",
     "username": "jd",
     "bornDate": "1990-01-01",
     "motherName": "Jane Doe",
     "email": "johndoe@example.com",
     "phone": "1234567890",
     "password": "#Password123",
     "passwordConfirmation": "#Password123",
     "originChannel": "WOPHI"
   }
  • Busca de usuários: encontre usuários por ID, email ou telefone.

  • Atualização de cadastro: atualize as informações do seu perfil.

{
  "username": "John D"
}
  • Exclusão e reativação de cadastro: exclua ou reative um cadastro de usuário.

Autenticação e Segurança:

  • Login: realize login na plataforma utilizando email e senha para obtenção de tokens de acesso.
{
  "email": "johndoe@example.com",
  "password": "password123",
  "origin": "wophi"
}
  • Renovação de tokens: renove o accessToken e o refreshToken para garantir acesso contínuo à plataforma.

  • Recuperação da senha: recupere sua senha de acesso em caso de esquecimento.


Explore mais:

  • Consulte a documentação completa da API ALMA para obter mais detalhes sobre cada funcionalidade e exemplos de utilização.

Instalação


Clonando o repositório:

$ git clone git@github.com:rafittu/back-alma.git

Instalando as dependências:

$ cd back-alma
$ npm install

Iniciando o app


Crie um arquivo .env na raiz do projeto e preencha as informações de acordo com o arquivo .env.example disponível.

Execute o banco de dados PostgreSQL usando Docker:

$ docker-compose up -d

Para garantir que o banco de dados esteja atualizado com as ultimas alterações, rode o comando:

$ npx prisma migrate dev

Iniciando o servidor:

# modo de desenvolvimento
$ npm run start

# modo de observação
$ npm run start:dev

Testes


A API possui uma cobertura de testes unitários abrangente, com 100% de cobertura em cada parte essencial do código, garantindo a qualidade e o correto funcionamento do sistema.

Para executar os testes unitários, utilize o seguinte comando:

$ npm run test

Você também pode gerar um relatório de cobertura dos testes para verificar quais partes do código foram testadas. Para gerar esse relatório, utilize o seguinte comando:

$ npm run test:cov

Documentação


A documentação completa da API está disponível através do Swagger. Para acessá-la, siga as etapas abaixo:

  • Certifique-se de ter a API em execução localmente ou em um ambiente acessível;
  • Abra um navegador da web e acesse a seguinte URL: http://localhost:3000/v3/api-doc (substitua 3000 pelo número da porta inserida no arquivo .env);
  • A documentação interativa da API será exibida no Swagger UI, onde você poderá explorar todos os endpoints, seus parâmetros e exemplos de solicitação.

Rafael Ribeiro 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors