Backend Stack of Project #19 from Driven's Fullstack Bootcamp

Overview

SISTEMA DRIVENPASS

Introdução


O projeto consiste em um serviço de armazenamento seguro de credenciais:

  1. Os tipos de credenciais que podem ser guardados no sistema são:
  • credenciais (credentials)
  • notas seguras (notes)
  • cartões bancários (documents)
  • senhas de WiFi (networks)
  1. Dentro de uma mesma categoria, exceto senhas de WiFi, um usuário não pode repetir o título de um item, estes precisam ser únicos.
  2. Usuários conseguem acessar ou deletar apenas seus itens registrados.

ROTAS DE SERVIÇO

CADASTRO

  • Para poder usar o serviço é necessário estar cadastrado, para isso, o usuário deve:
  1. Enviar uma requisição do tipo POST na rota /signup informando as credenciais do novo usuário a ser cadastrado no corpo (body) da requisição.

  2. A requisição de usuário possui três parâmetros:

    • email uma string com o endereço de e-mail do novo usuário.
    • password uma string com a senha do usuário a ser cadastrada.
    • repeatPassword a repetição da senha do usuário:
    {
      "email": string,
      "password": string,
      "repeatPassword": string
    }
    

LOGIN

  • Para poder usar o serviço é necessário estar cadastrado, para isso, o usuário deve:
  1. Enviar uma requisição do tipo POST na rota /signin informando as credenciais do usuário no corpo (body) da requisição.
  2. A requisição de usuário possui três parâmetros:
    • email uma string com o endereço de e-mail do novo usuário.
    • password uma string com a senha do usuário a ser cadastrada.
    {
      "email": string,
      "password": string
    }
    
  3. O retorno da requisição é a chave de autenticação do usuário, um objeto com a string token.

CREDENCIAIS

  • Para cadastro de uma nova credencial, o usuário deve:
  1. Enviar uma requisição do tipo POST na rota /credentials informando a chave Bearer token no cabeçalho (header) da requisição.

  2. A requisição de uma nova credencial possui quatro parâmetros:

    • url uma string numérica referente ao endereço aonde a credencial é utilizada.

    • title uma string referente ao identificador da credencial (nome único).

    • username uma string referente ao nome de usuário utilizado na url fornecida.

    • password a senha do usuário.

    • Resumidamente, a requisição fica no seguinte formato:

    {
      "url": string,
      "title": string,
      "username": string,
      "password": string
    }
    
  • Para buscar uma ou mais credenciais, usuários podem:
  1. Enviar uma requisição do tipo GET na rota /credentials informando a chave Bearer token no cabeçalho (header) da requisição.
  2. O retorno desta requisição é uma lista com todas as credenciais registradas pelo usuário, as senhas das credenciais retornam decriptografadas.
  3. Se a requisição receber um campo id na forma de query params, o retorno desta requisição é apenas o objeto com id correspondente, se o mesmo pertencer ao usuário que fez a requisição.
    • id é uma string numérica
  • Para deletar uma credencial, usuários podem:
  1. Enviar uma requisição do tipo DELETE na rota /credentials informando a chave Bearer token no cabeçalho (header) da requisição.
  2. A requisição não possui dados de retorno, mas retorna com código 204 quando bem sucedida.
  3. Usuários podem deletar apenas credenciais que pertençam a si próprios, do contrário ocorrerá um erro na requisição.

NOTAS SEGURAS

  • Para cadastro de uma nova nota segura, o usuário deve:
  1. Enviar uma requisição do tipo POST na rota /notes informando a chave Bearer token no cabeçalho (header) da requisição.

  2. A requisição de nova segura possui dois parâmetros:

    • title uma string referente ao identificador da nota segura (nome único).

    • description uma string referente ao nome de usuário utilizado na url fornecida.

    • Resumidamente, a requisição fica no seguinte formato:

    {
      "title": string,
      "description": string
    }
    
  • Para buscar uma ou mais notas seguras, usuários podem:
  1. Enviar uma requisição do tipo GET na rota /notes informando a chave Bearer token no cabeçalho (header) da requisição.
  2. O retorno desta requisição é uma lista com todas as notas seguras registradas pelo usuário.
  3. Se a requisição receber um campo id na forma de query params, o retorno desta requisição é apenas o objeto com id correspondente, se o mesmo pertencer ao usuário que fez a requisição.
    • id é uma string numérica
  • Para deletar uma nota segura, usuários podem:
  1. Enviar uma requisição do tipo DELETE na rota /notes informando a chave Bearer token no cabeçalho (header) da requisição.
  2. A requisição não possui dados de retorno, mas retorna com código 204 quando bem sucedida.
  3. Usuários podem deletar apenas notas seguras que pertençam a si próprios, do contrário ocorrerá um erro na requisição.

DOCUMENTOS

  • Para cadastro de um novo documento, o usuário deve:
  1. Enviar uma requisição do tipo POST na rota /documents informando a chave Bearer token no cabeçalho (header) da requisição.

  2. A requisição de novo documento possui oito parâmetros:

    • title uma string referente ao identificador da nota segura (nome único).
    • Uma string numérica referente aos 16 dígitos do cartão (ex.: 1122334455667788)
    • O nome do portador do cartão, conforme o formato:
      • Todas as letras em maiúsculo
      • Primeiro e ultimo nomes com apenas a inicial do nome do meio
      • Ou apenas primeiro em último nomes em caso de não existir um nome do meio.
    • A data de validade do cartão, no formato MM/AA
    • O código de verificação (CVV)
    • A senha
    • Um valor Booleano isVirtual (true/false) indicando se o cartão é virtual ou físico.\
    • O tipo do cartão, se é crédito, débito ou ambos, os valores aceitos são:
      • credit
      • debit
      • both
    • Resumidamente, a requisição fica no seguinte formato:
    {
      "title": string,
      "number": string,
      "cardholderName": string,
      "expirationDate": string,
      "CVV": string,
      "password": string,
      "isVirtual": boolean,
      "type": string
    }
    
  • Para buscar um ou mais documentos, usuários podem:
  1. Enviar uma requisição do tipo GET na rota /documents informando a chave Bearer token no cabeçalho (header) da requisição.
  2. O retorno desta requisição é uma lista com todos os documentos registradas pelo usuário, as senhas dos documentos retornam decriptografadas.
  3. Se a requisição receber um campo id na forma de query params, o retorno desta requisição é apenas o objeto com id correspondente, se o mesmo pertencer ao usuário que fez a requisição.
    • id é uma string numérica
  • Para deletar um documento, usuários podem:
  1. Enviar uma requisição do tipo DELETE na rota /documents informando a chave Bearer token no cabeçalho (header) da requisição.
  2. A requisição não possui dados de retorno, mas retorna com código 204 quando bem sucedida.
  3. Usuários podem deletar apenas documentos que pertençam a si próprios, do contrário ocorrerá um erro na requisição.

REDES WIFI

  • Para cadastro de uma nova rede, o usuário deve:
  1. Enviar uma requisição do tipo POST na rota /network informando a chave Bearer token no cabeçalho (header) da requisição.

  2. A requisição de nova rede possui três parâmetros:

    • name Uma string referente ao nome da rede
    • title uma string referente ao identificador da rede.
    • password uma string referente a senha da rede.
    • Resumidamente, a requisição fica no seguinte formato:
    {
      "name": string,
      "title": string,
      "password": string
    }
    
  • Para buscar uma ou mais credenciais, usuários podem:
  1. Enviar uma requisição do tipo GET na rota /network informando a chave Bearer token no cabeçalho (header) da requisição.
  2. O retorno desta requisição é uma lista com todas as redes registradas pelo usuário, as senhas das redes retornam decriptografadas.
  3. Se a requisição receber um campo id na forma de query params, o retorno desta requisição é apenas o objeto com id correspondente, se o mesmo pertencer ao usuário que fez a requisição.
    • id é uma string numérica
  • Para deletar uma rede, usuários podem:
  1. Enviar uma requisição do tipo DELETE na rota /network informando a chave Bearer token no cabeçalho (header) da requisição.
  2. A requisição não possui dados de retorno, mas retorna com código 204 quando bem sucedida.
  3. Usuários podem deletar apenas redes que pertençam a si próprios, do contrário ocorrerá um erro na requisição.
You might also like...

A AfirmaJobs é uma plataforma de divulgação de vagas voltadas para a diversidade e inclusão. A aplicação foi desenvolvida como projeto final do curso bootcamp da Reprograma

A AfirmaJobs é uma plataforma de divulgação de vagas voltadas para a diversidade e inclusão. A aplicação foi desenvolvida como projeto final do curso bootcamp da Reprograma

AFIRMAJOBS Este projeto é resultado do Bootcamp Back-End - Todas em Tech - { reprograma } Justificativa Grupos historicamente minorizados – população

Dec 13, 2022

This repository is exclusive to javascript bootcamp, organized at GDSC TIU. Maintained by Gourav Ghosal

JAVASCRIPT BOOTCAMP This repository is exclusive to javascript bootcamp, organized at GDSC TIU. An introductory resource by Gourav Ghosal, Chapter Lea

Nov 26, 2022

Gatsby-Formik-contact-form-with-backend-panel - Full working contact form with backend GUI panel.

Gatsby minimal starter 🚀 Quick start Create a Gatsby site. Use the Gatsby CLI to create a new site, specifying the minimal starter. # create a new Ga

Jan 2, 2022

Venni backend - The backend of the Venni client apps implementing the credit card payments, matching algorithms, bank transfers, trip rating system, and more.

Cloud Functions Description This repository contains the cloud functions used in the Firebase backend of the Venni apps. Local Development Setup For t

Jan 3, 2022

It is a solo Project and In this repo I try to build a E-Commerce full-stack website with MERN stack technologies. For Practice purpose.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Aug 3, 2022

The backend of a full stack application of a personal wallet made with React, Node and MongoDB that allows you to add inputs, outputs and see all your extract.

The backend of a full stack application of a personal wallet made with React, Node and MongoDB that allows you to add inputs, outputs and see all your extract.

My first full stack application with the concept of a personal wallet that allows you to create a personal account to keep track of your entire statement by adding incoming and outgoing transactions, as well as calculating the total balance and being able to edit and delete old transactions.

Jun 23, 2022

The only Backend you'll ever need. Written in NodeJS, works with any stack

The only Backend you'll ever need. Written in NodeJS, works with any stack Conduit Platform Conduit is a NodeJS-based Self-Hosted backend, that aims t

Jan 3, 2023

This repository contains a fullstack chatbot project based on the ChatGPT `gpt-3.5-turbo` model.

This is a fullstack chatbot created with React, Nodejs, OpenAi, and ChatGPT while developing the following tutorial: How To Build A Chat Bot Applicati

May 10, 2023

Online Inventory Control System for an apparel manufacturing company "CASANOVA" (Pvt) Ltd. Technology stack: Node.js, Express.js, MongoDB Atlas, React.js (MERN Stack).

Project Name - Online Inventory Control System for an apparel manufacturing company "CASANOVA". The project was given a "A" grade. Group Leader - IT20

Dec 26, 2021
Owner
Guilherme de Oliveira
Guilherme de Oliveira
Backend Stack of Project #18 from Driven Fullstack Bootcamp, coded in TypeScript

SISTEMA VALEX Introdução O projeto consiste em um serviço de emissão de cartões (vales) para empresas. O sistema permite as seguintes funcionalidades

Guilherme de Oliveira 6 Sep 6, 2022
Projeto de conclusão de módulo - Bootcamp Resilia Web FullStack

projeto_Modulo5_Imobiliaria_Frontend_ReactJS Projeto Final do módulo 5, Resilia Web Full Stack. ?? Descrição O objetivo deste projeto é aprender a est

Emanuel Melo 4 Jan 21, 2022
14th project from Driven Full-Stack Web Dev Bootcamp

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Darlon Gomes 4 Sep 3, 2022
Project developed as Capstone of Q4 Backend module of the Fullstack Developer Course of Kenzie Academy Brasil by the group @ezms, @Nafly09, @RafaelSchug, @victorlscherer, @Vinicius2m, @ManoelaCunha

✨ Quokka Services ✨ ?? Serviço rápido e sem preocupação! ?? O objetivo da nossa aplicação é diminuir a dificuldade que moradores de condomínios encont

Manoela Fernanda Girello Cunha 4 May 4, 2022
This is a full-stack exercise tracker web application built using the MERN (MongoDB, ExpressJS, ReactJS, NodeJS) stack. You can easily track your exercises with this Full-Stack Web Application.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

WMouton 2 Dec 25, 2021
a stack-separated way to bringing together common AWS services useful in a fullstack application that uses AWS Amplify libraries

Fullstack CDK Helpers This project helps developers create common AWS services that are useful in creating fullstack applications. Backend services ar

Focus Otter 14 Nov 26, 2022
Primary repository for all information related to Fast-Floward Bootcamp session 1

⏩ Fast Floward Welcome to Fast Floward! We are excited to have you here. This repository is where you will find all content, resources, and links for

Decentology 44 Dec 23, 2022
Front End do Projeto Integrador do bootcamp da Generation Brasil.

Integrantes do grupo ?? : Alan Carlos Fabrício Rocha Guilherme Albuquerque Josiane Caroliny Lucas Melo Wesley Ninaja Genducation ?? Projeto desenvolvi

Guilherme Cruz 1 Feb 2, 2022
BootCamp "Impulso Javascript Evolution" da DIO

Impulso Javascript Evolution Digital Innovation One O bootcamp Impulso JavaScript Evolution é um programa de recrutamento de devs de todo o Brasil e d

Rene Montes 4 Jul 11, 2022