Skip to content

amdiaspb/escribo-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Escribo - Desafio Técnico 2

O objetivo do projeto foi desenvolver uma API RESTful para autenticação de usuários, que permita operações de cadastro (sign up), autenticação (sign in) e recuperação de informações do usuário.

  • Framework: Express. npm start
  • Segurança: JWT, BCrypt, Joi.
  • Padronização: ESLint. npm run lint
  • Testagem: Jest, SuperTest. npm run test
  • Persistência de dados: Idealmente seria feita com um banco de dados na nuvem e conectado ao server com variáveis de ambiente, mas, como o tempo é curto e pela simplicidade, fiz um banco de dados em memória, onde as informações são mantidas apenas durante a execução da aplicação.

Nota: Logo logo irei disponibilizar e linkar nesse projeto uma simples web page utilizando desse backend (com o objetivo de fornecer uma testagem mais prática dos endpoints).

Estrutura do projeto

  • 📂 src
    • 📒 auth.js
    • 📒 db.js
    • 📒 schemas.js
    • 📒 server.js
  • 📂 tests
    • 📒 server.test.js
  • 📗 .eslint.json
  • 📙 .gitignore
  • 📗 jest.config.mjs
  • 📗 package-lock.json
  • 📗 package.json
  • 📘 README.md

Como usar

  1. Clone ou baixe esse repositório.
  2. Instale as dependências. npm install
  3. Inicie a aplicação. npm run dev ou npm start
  4. Utilize os endpoints listados na seção abaixo.
  • Para iniciar a suíte de testes use npm run test.

Alternativa: Com alguma ferramenta que realize requisições HTTP, você também pode testar os endpoints no link de deploy abaixo.
Deploy: https://escribo-2-api.onrender.com

Obs: Como é um deploy gratuito, a execução é lenta e a permanência dos dados na sessão não pode ser garantida. A aplicação é regularmente reiniciada e os dados resetados. Para melhor experiência siga os passos acima.

Endpoints

  • 📘 [POST]  /signup  Cadastro

    • Input

    {
      "nome": "string",
      "email": "string",
      "senha": "string",
      "telefones": [{ "numero": "123456789", "ddd": "12" }]
    }
    • Output

    {
      "id": "number",
      "data_criacao": "date",
      "data_atualizacao": "date",
      "ultimo_login": "",
      "token": ""
    }

  • 📘 [POST]  /signin  Login

    • Input

    {
      "email": "string",
      "senha": "string"
    }
    • Output

    {
      "id": "number",
      "data_criacao": "date",
      "data_atualizacao": "date",
      "ultimo_login": "date",
      "token": "string" // JWT Token
    }

  • 📒 [GET]  /user  Dados

    • Header

    { "Authorization": "Bearer {token}" }
    • Output

    {
      "nome": "string",
      "email": "string",
      "senha": "string", // Encrypted
      "telefones": [{ "numero": "123456789", "ddd": "12" }],
      "id": "number",
      "data_criacao": "date",
      "data_atualizacao": "date",
      "ultimo_login": "date",
      "token": "string" // JWT Token
    }

About

API RESTful para autenticação de usuários.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published