Skip to content

djhonantanparreira/api-portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API-PORTFÓLIO

API criada para o portfólio de projetos, com o intuito de mostrar as habilidades e conhecimentos adquiridos ao longo do tempo.

image

Tecnologias utilizadas

Back-end

  • Node.js
  • Express
  • MongoDB Atlas
  • Mongoose
  • JWT
  • Bcrypt

Front-end

  • React
  • React Router
  • Axios
  • Styled Components

Ferramentas

  • Visual Studio Code
  • Insomnia
  • Git e GitHub
  • Render
  • Netlify

Estrutura de pastas

api-portfolio
├── src
│   ├── controllers
│   │   ├── auth.controller.js
│   │   ├── project.controller.js
│   │   └── user.controller.js
│   ├── database
│   │   └── db.js
│   ├── middlewares
│   │   └── admin.middlewares.js
|   |   └── auth.middlewares.js
|   |   └── global.middlewares.js
│   ├── models
│   │   ├── Project.js
│   │   └── User.js
│   ├── routes
│   │   ├── auth.routes.js
│   │   ├── project.routes.js
|   |   ├── swagger.routes.js
│   │   └── user.routes.js
│   ├── services
│   │   ├── auth.services.js
│   │   ├── project.services.js
│   │   └── user.services.js
│   ├── index.js
|   └── swagger.json
├── .env
├── .gitignore
├── package-lock.json
├── package.json
└── README.md

Funcionalidades

Back-end:

  • Cadastro de usuários
  • Login de usuários
  • Cadastro de projetos
  • Edição de projetos
  • Exclusão de projetos
  • Curtir projetos/deixar de curtir projetos
  • Comentar projetos

Observações

Por se tratar de um projeto pessoal, não terá mais de um administrador, apenas um usuário administrador que terá permissão para adicionar, editar e excluir projetos.

Para você testar a API utilize o link da descrição ou faça um fork do projeto e crie um arquivo .env na raiz do projeto com as seguintes variáveis de ambiente:

PORT=3000
MONGODB_URI=URL_DO_SEU_BANCO_DE_DADOS
JWT_SECRET=SEU_JWT_SECRET

Autenticação

Para autenticação de usuários, será utilizado o JWT (JSON Web Token), onde o usuário irá se cadastrar e fazer login para obter um token de acesso. Este token será utilizado para acessar as rotas protegidas da aplicação.

Caso queira testar as funcionalidades de administrador, você deve alterar o campo role do usuário para admin no banco de dados, fazer login e utilizar o token gerado para acessar as rotas protegidas.

Permissões

  • Administrador: poderá adicionar, editar e excluir projetos
  • Usuário: poderá adicionar, editar e excluir comentários, curtir e descurtir projetos e comentários
  • Visitante: poderá apenas visualizar os projetos e os comentários

Rotas

Usuários

  • POST /api/users/register
  • GET /api/users
  • GET /api/users/:id
  • PATCH /api/users/:id

Autenticação

  • POST /api/auth/login

Projetos

  • POST /api/projects Apenas administrador
  • GET /api/projects
  • GET /api/projects/:id Apenas administrador
  • PATCH /api/projects/:id Apenas administrador
  • DELETE /api/projects/:id Apenas administrador
  • PATCH /api/projects/like/:id Somente logado
  • PATCH /api/projects/comment/:id Somente logado
  • PATCH /api/projects/:idProject/:idComment Somente logado

Autores

Releases

No releases published

Packages

No packages published