Giter VIP home page Giter VIP logo

api-salvar-links's Introduction

API para Salvar Links - Devnology - Teste Programa de Trainee

Você pode acessar o site e testar sua funcionalidade atráves do link abaixo

Link para acessar o site: https://salve-seu-link.netlify.app/

Repositorio do front-end: https://github.com/LaezioAP/front-end-api-salvar-links

O Deploy do Back-End foi feito no site da Heroku

O Deploy do Front-End foi feito no site da Netlify


Objetivo: Desenvolva uma API gerenciar links, com a URL e um título/label. Os links também podem ser editados e excluídos.

  • Usuário pode criar conta
  • Usuário pode fazer login
  • Usuário consegue adicionar suas URL favoritas
  • Usuário consegue excluir suas URL
  • Usuário consegue editar suas URL
  • Usuário consegue acessar os links diretos de determinado registro que ele adicionou
  • Usuario consegue sair do site

Banco de dados utilizado:

  • PostgreSQL

Bibliotecas utilizadas

  • Express: Express.js é um framework para Node.js que fornece recursos mínimos para construção de servidores web
  • Axios: Axios é um cliente HTTP baseado em Promises para fazer requisições. Pode ser utilizado tanto no navegador quando no Node.js.
  • Cheerio: O Cheerio permite manipular a estrutura do HTML, e retornar o conteúdo que desejamos através da utilização de seletores que são semelhantes ao JQuery
  • Bcrypt: O bcrypt é uma biblioteca para encriptação de dados. Neste caso, o dado a ser criptografado é o password.
  • JsownWebToken: Um JWT é um padrão para autenticação e troca de informações definido pela RFC7519. Nele é possível armazenar de forma segura e compacta objetos JSON
  • Cors: CORS é um mecanismo que permite que recursos restritos em uma página da web sejam recuperados por outro domínio fora do domínio ao qual pertence o recurso que será recuperado.
  • Dotenv: O DotEnv é um pacote leve do npm que carrega automaticamente as variáveis de ambiente de um arquivo.
  • Knex: O knex é um query-builder ou “construtor de consultas” em tradução livre, para Node. js, e que interage com bancos relacionais.

Endpoints

Criar conta na plataforma

POST /cadastrar-usuario

Esse endpoint deverá criar uma conta no sistema "api-salvar-links"

  • Você deverá, OBRIGATORIAMENTE:

  • Resposta

    Em caso de sucesso, você será redirecionado para a página de login do site e seu cadastro será realizado!
    Em caso de falha na validação, a resposta mostrará uma mensagem de error no próprio site ou na API

Login no sistema

POST /login

Esse endpoint deverá lhe redirecionar para página de dashboard (OBS: Você só consegue acessar a página de dashboard caso faça login, pois será enviado um TOKEN)

  • Você deverá, OBRIGATORIAMENTE:

    • Inserir o email cadastrado
    • Inserir a senha cadastrada
  • Resposta

    Em caso de sucesso, você será redirecionado para a dashboard do site! Em caso de falha na validação, a resposta mostrará uma mensagem de error no próprio site ou na API

Listar links registrados

GET /dashboard

Esse endpoint deverá listar todas os links salvos

  • Você deverá, OBRIGATORIAMENTE:

    • Fazer login na plataforma para ver seus registros
  • Resposta

    • Listagem de todos os seus registros salvos

Cadastrar URL

POST /adicionar-url

Esse endpoint deverá realizar o salvamento de um determinado LINK.

  • Você deverá, OBRIGATORIAMENTE:

    • Colocar no input um LINK VÁLIDO!
  • Resposta

    Em caso de sucesso, o axios fara a requisição para o site e o Cheerio pegará o Título do link e salvará no banco de dados. Em caso de falha na validação, o link não será salvo!

Excluir link salvo

DELETE /dashboard/:id

Esse endpoint deve excluir um link registrado no banco de dados

  • Você deverá, OBRIGATORIAMENTE:

    • Caso seja na API você deverá inserir manualmente no params o id de determinado link salvo
    • Caso seja pelo site é só aperta no ícone da LIXEIRA que será feita a exclusão!
  • Resposta

    Em caso de sucesso, será feita a exclusão do registro no banco de dados
    Em caso de falha na validação, a resposta mostrará uma mensagem de error na API

Editar link salvo

PUT /dashboard/:id

Esse endpoint deverá editar manualmente um link salvo

  • Você deverá, OPCIONALMENTE:

    • Você pode enviar o URL ou Título para fazer a atualização. Caso não envie a URL ela será salva com o valor que está no banco de dados, assim para o Título.
  • Resposta

    Em caso de sucesso, o registro será atualizado!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.