/lab-node

REST API With Node, Express, TypeScript & MongoDB + Authentication

Primary LanguageTypeScript

Explicações Sobre a aplicação

A aplicação é um CRUD de usuários com duas operações principais: Criar o usuário e Login no banco de dados. Todas as informações devem ser salvas no MongoDB e o usuário criado deve conter os seguintes dados: “id”, “name”, “password”

Regras de Negócio - Linhas Gerais

  • Deve ser possível criar o usuário no banco de dados. ✔

  • Não será possível criar um novo usuário com mesmo email e nome. ✔

  • A senha deverá ser criptografada, preferencialmente usando “bcrypt” module.

  • A senha no banco deve vir com salt. Ver mais sobre

  • Todas as operações de um CRUD devem estar contidas no código (create, read, update and delete)

  • Na visualização de registros no banco, deve conter dois métodos: geral (mostrar todos) e id (mostrar por id) ✔

  • O ID deve ser gerado de forma aleatória ✔

  • Ao criar o usuário, a exigência é que a senha deverá ter mais do que 8 caracteres. Senhas menores deveran retornar o status code: 400 - Invalid Request.

  • Ao criar o usuário, todos os campos devem ser preenchidos. Caso não, retornar o status code: 400 - Invalid Request. ✔.

  • O usuário deve ser capaz de se logar. Os dados requeridos são email e password, e casa haja de erro de um ou de ambos deverá ser retornado o status code: 400 - Invalid Request.

  • Seria interessante, mas não obrigatório adição de testes nos controllers com o Jest...

Tecnlogias e ferramentas usadas

  • Node v.20.12.1
  • TypeScript 5.5.3
  • Nodemon 3.1.4
  • Express 4.19.2
  • Jest 29.7.0
  • Insomnia

Para rodar localmente o projeto, siga as instruções abaixo.

Clone o projeto

  git clone https://github.com/samuelribeiroo/lab-node.git

Inicialize o repositório

  cd users-api

Instale as dependências

  npm install

Inicie o servidor

  npm start