lucasdmarten / desafioMongoDB

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Navedex Api

Sistema desenvolvido para o teste proposto pela empresa Nave.

💻 Sobre o projeto

O banco de dados possui 3 tabelas: usuarios, navers e projetos.

BANCO DE DADOS:

  • MongoDB

  • USUARIOS:
  • podem criar apenas um naver.
  • podem alterar ou deletar apenas o seu naver e os projetos que estão ligados a ele.
  • podem visualizar todos navers e seus projetos.??

  • NAVERS:
  • id do usuario é usado para criação do naver.
  • está vinculado ao usuario pelo id.
  • podem participar de N projetos.

  • PROJETOS:
  • estão vinculados a um naver.

  • 🔨 Tecnologias

    As seguintes ferramentas foram usadas na construção do projeto:


    Criar arquivo no diretório base chamado .env , este arquivo irá conter as informações do banco de dados.


    $ nano ./.env
    
    # https://www.mongodb.com/
    DB_CONNECT = mongodb+srv://LOGIN:SENHA@cluster0.oy7kt.mongodb.net/NAMEDATABASE?retryWrites=true&w=majority
    TOKEN_SECRET = ASJDLKASDJ
    JWT_COOKIE_EXPIRES_IN=90
    


    Como rodar este projeto:


    # Clonar o repostório
    $ git clone git@github.com:lucasdmarten/desafioMongoDB.git
    # Entre na pasta do projeto
    $ cd desafioMongoDB
    # Instale todas as bibliotecas
    $ npm install --save-dev nodemon
    $ npm install express mongoose dotenv bcryptjs cookie-parser jsonwebtoken @hapi/joi
    # Runserver...
    $ npm start



    AUTENTICAÇÃO:

    Rota para cadastro:

    Registro de usuario:

    POST http://localhost:3000/api/register/

    alt text


    Rota para login:

    Aqui sera feito login com base no cadastro feito préviamente, e será liberado o token access.

    POST http://localhost:3000/api/user/login/

    alt text


    APÓS LOGIN CRIE UM NAVER E ALGUNS PROJETOS!




    START:

    Comece criando seu naver!

    (STORE) - Rota para criar navers:

    POST http://localhost:3000/api/navers/create

    alt text

    (STORE) - Rota para criar projetos:

    POST http://localhost:3000/api/projects/create

    alt text alt text

    (STORE) - Rota para adicionar naver aos projetos:

    Aqui você pode adicionar participantes do projeto, no caso os navers. Escolha o nome do projeto pelo parametro na url e adicione o username do naver na body.

    POST http://localhost:3000/api/projects/add_naver/:name_project

    alt text





    NAVERS:


    (INDEX) - Rota para mostrar o naver criado pelo usuario autenticado:

     # O usuario poderá criar apenas um naver, e um naver está relacionado a n projetos
     GET  http://localhost:3000/api/navers

    alt text

    (SHOW) - Rota para mostrar o naver e os projetos que ele participa:

    # O usuario poderá criar apenas um naver, e um naver está relacionado a n projetos
    GET http://localhost:3000/api/navers/show/:username

    alt text

    (UPDATE) - Rota para alterar o naver do usuario autenticado:

    Requer o field id_projeto e id_naver na body

    # Alterar naver vinculado ao usuario autenticado
    PUT http://localhost:3000/api/naver/update/

    alt text

    (DELETE) - Rota para deletar o naver do usuario autenticado:

    Requer id do naver a ser deletado

    # DELETE - Deletar seu próprio naver vinculado ao usuario autenticado
    http://localhost:3000/api/navers/delete/




    PROJETOS:


    (INDEX) - Rota para listar todos os projetos:

    #
    GET http://localhost:3000/api/projects/

    alt text

    (UPDATE) - Rota para alterar apenas os projetos do usuario autenticado:

    # Alterar nome projeto
    # escolha o nome do projeto a ser alterado pela url, e na body o novo nome
    PUT http://localhost:3000/api/projetos/update/:name_projects

    alt text


    Dificuldades:

  • Mudança do Mysql para mongo DB e trabalhar com um banco de dados noSQL, mas acredito que consegui concluir o objetivo
  • About


    Languages

    Language:JavaScript 100.0%