DrivenPass

DrivenPass

Ferramentas


Descrição

DrivenPass é um sistema de gerenciamento de senhas de cartões pessoais, informações de login de sites ou serviços e anotações livres em formato de texto.


Características

  • Cadastro e Login de usuários;
  • Criação, busca e deleção de dados de cartões de crédito e débito;
  • Criação, busca e deleção de dados de login em sites ou serviços;
  • Criação, busca e deleção de anotações livres.

Referências da API

AUTENTICAÇÃO

Cadastro de usuário

POST /signUp

Request:

Body Type Description
email string Required. Email do usuário
password string Required. Senha com no mínimo 10 caracteres


Login de usuário

POST /signIn

Request:

Body Type Description
email string Required. Email do usuário
password string Required. Senha do usuário

Response:

{
	"token": "jasonwebtoken (JWT)",
}

CARTÕES

Adicionar cartão

POST /card

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Body Type Description
userId number Required. Id do usuário
cardName string Required. Nome do cartão
number string Required. Número do cartão (4 conjuntos, com espaço entre eles, de 4 números)
printedName string Required. Nome impresso no cartão
securityCode string Required. Código de seguran do cartão, 3 números
expirationDate date Required. Data de expiração do cartão, formato 'mm/aa'
password string Required. Senha do cartão
isVirtual boolean Required. Se o cartão é virtual ou não
type string Required. Tipo de cartão; válido 'credit', 'debit' ou 'both'

Buscar cartões

GET /cards/:userId

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Response:

  [
  {
    "id": 1,
    "userId": 1,
    "cardName": "Nubank",
    "number": "1111 2222 3333 4444",
    "printedName": "Teste R Silva",
    "securityCode": "123",
    "expirationDate": "05/28",
    "password": "1236",
    "isVirtual": false,
    "type": "credit"
  },
  {
    "id": 2,
    "userId": 1,
    "cardName": "C6",
    "number": "1234 5647 1598 4563",
    "printedName": "Teste R Silva",
    "securityCode": "852",
    "expirationDate": "08/28",
    "password": "1236",
    "isVirtual": true,
    "type": "both"
  }
]

Buscar cartão pelo id

GET /card/:userId/:id

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Response:

  {
  "id": 1,
  "userId": 1,
  "cardName": "Nubank",
  "number": "1111 2222 3333 4444",
  "printedName": "Teste R Silva",
  "securityCode": "123",
  "expirationDate": "05/28",
  "password": "1236",
  "isVirtual": false,
  "type": "credit"
}

Deletar cartão pelo id

DELETE /card/:userId/:id

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Response:

  Card successfully deleted

CREDENCIAIS

Adicionar credencial

POST /credential

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Body Type Description
userId number Required. Id do usuário
credentialName string Required. Nome da credencial
url string Required. Url do site
userName string Required. Nome de usuário da credencial
password string Required. Senha do credencial

Buscar crendenciais

GET /credentials/:userId

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Response:

 [
  {
    "id": 1,
    "userId": 1,
    "credentialName": "Facebook",
    "url": "http://facebook.com",
    "userName": "Letícia Gomez",
    "decryptPassword": "senha123456"
  },
  {
    "id": 2,
    "userId": 1,
    "credentialName": "Netflix",
    "url": "http://netflix.com",
    "userName": "Letícia Gomez",
    "decryptPassword": "senha123456"
  }
]

Buscar credencial pelo Id

GET /credential/:userId/:id

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Response:

  {
    "id": 1,
    "userId": 1,
    "credentialName": "Facebook",
    "url": "http://facebook.com",
    "userName": "Letícia Gomez",
    "decryptPassword": "senha123456"
  }

Deletar credencial pelo Id

DELETE /credential/:userId/:id

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Response:

  Credential successfully deleted

NOTAS

Adicionar nota

POST /note

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Body Type Description
userId number Required. Id do usuário
title string Required. Título da nota
note string Required. Nota

Buscar notas

GET /notes/:userId

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Response:

 [
  {
    "id": 1,
    "userId": 1,
    "title": "Título da anotação",
    "note": "Anotações parte 1"
  },
  {
    "id": 2,
    "userId": 1,
    "title": "Título da anotação 2",
    "note": "Anotações parte 2"
  }
]

Buscar nota pelo id

GET /note/:userId/:id

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Response:

  {
    "id": 1,
    "userId": 1,
    "title": "Título da anotação",
    "note": "Anotações parte 1"
  }

Deletar credencial pelo id

DELETE /note/:userId/:id

Request:

Headers Type Description
Authentication string Required. Token

Authorization format: Bearer jsonwebtoken

Response:

  Note deleted successfully

Variáveis de Ambiente

Para executar este projeto, você precisará adicionar as seguintes variáveis ​​de ambiente ao seu arquivo .env

DATABASE_URL = postgres://UserName:Password@Hostname:5432/DatabaseName

PORT = number #recommended:5000

TOKEN_SECRET_KEY = any string

TOKEN_EXPIRES_IN=1d


Execute Localmente

Clone o projecto

  git clone https://github.com/Leticia-Pinheiro/DrivenPass_BackEnd

Vá para o diretório do projeto

  cd DrivenPass_BackEnd/

Instale as dependências

  npm install

Inicie o servidor

  npm start

Autora

Letícia Gomez Pinheiro

Linkedin: https://www.linkedin.com/in/leticia-pinheiro-33354a1b6/

GitHub: https://github.com/Leticia-Pinheiro