Repositório contendo o código final do curso ministrado por Andrew Rosário, onde foi desenvolvida uma aplicação de chat em tempo real, composta pelas seguintes tecnologias:
- MongoDB - Banco de Dados orientado a Documentos
- Express - Framework de desenvolvimento web para Node
- Node - Ambiente de Execução Back-End
- Cadastrar usuário - cadastra nome e senha do usuário, disparando um hook para encriptografar senha.
- Autenticar usuário - autentica usuário com base no login e senha, retornando um token para ser usado nas requisições.
- Enviar mensagens - dispara mensagem entre o usuário logado e um usuário específico.
- Listar mensagens - lista todas as mensagens entre o usuário autenticado e um usuário específico.
- Buscar usuários - traz os dados de um usuário, sendo necessário passar o token de autorização.
- Listar usuários - Retornando sempre a lista de usuários em ordem decrescente tendo como parâmetro a data da última mensagem enviada (mensagens recentes primeito, semelhante ao whastapp).
- Realizar a integração com o banco de dados MongoDB
- Criar rotas, controllers, models, middlewares com o auxílio do Express
- Implementando contratos com interfaces
- Realizar autenticação de usuário com JWT
- Criação de hooks para modelo de usuários
- Declaração de tipagens globais
- Criação de métodos personalizados
- Utilização de optional chaining