Skip to content

GessycaBorges/api-dindin

Repository files navigation

Desafio - Módulo 03 - Back-end

Status Concluído

💻 Sobre o projeto

📄 A proposta do desafio do módulo 03 do curso de Desenvolvimento de Software com Foco em Back-end da Cubos Academy é criar uma RESTful API para auxiliar no controle financeiro.


⚙️ Funcionalidades

  • Cadastrar usuário;
  • Fazer login;
  • Detalhar o perfil do usuário logado;
  • Atualizar o perfil do usuário logado;
  • Listar categorias;
  • Cadastrar uma nova transação;
  • Atualizar a transação;
  • Detalhar transação;
  • Listar transações e filtrar as transações por categoria;
  • Excluir transação;
  • Emitir extrato de transações.

🛣️ Como executar o projeto

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js. Além disto é bom ter um editor para trabalhar com o código como o VS Code

🎲 Rodando o Backend (servidor)

# Clone este repositório
$ git clone [email protected]:JulianaT93/desafio-backend-m03-b2bt05.git

# Acesse a pasta do projeto no terminal/cmd
$ cd desafio-backend-m03-b2bt05

# Instale as dependências
$ npm install express pg bcrypt jsonwebtoken

$ npm install -D nodemon

# Execute a aplicação em modo de desenvolvimento
$ npm run dev

# O servidor inciará na porta:3000 - acesse http://localhost:3000 

👩‍💻 Exemplo

📌Cadastrar usuário

POST /usuario

Essa é a rota que será utilizada para cadastrar um novo usuário no sistema.

Requisitos para os dados de cadastro:

  • Todos os dados precisam ser informados (nome, email e senha);
  • O nome deve conter no mínimo 3 caracteres;
  • O email precisa ser um e-mail válido e só pode ser cadastrado uma vez;
  • A senha deve conter no mínimo 6 caracteres;

📌Login do usuário

POST /login

Essa é a rota que permite ao usuário cadastrado realizar o login no sistema.

Requisitos para os dados de login:

  • Todos os dados precisam ser informados (email e senha);

⚠️ATENÇÃO: Todas as funcionalidades (endpoints) a seguir, a partir desse ponto, deverão exigir o token de autenticação do usuário logado, recebendo no header com o formato Bearer Token.

📌Detalhar usuário

GET /usuario

Essa é a rota que será chamada quando o usuário quiser obter os dados do seu próprio perfil.

📌Atualizar usuário

PUT /usuario

Essa é a rota que será chamada quando o usuário quiser realizar alterações no seu próprio cadastro.

Requisitos para os dados de atualização:

  • Todos os dados precisam ser informados (nome, email e senha);
  • O nome deve conter no mínimo 3 caracteres;
  • O email precisa ser um e-mail válido e não pode estar cadastrado para outros usuários;
  • A senha deve conter no mínimo 6 caracteres;

📌Listar categorias

GET /categoria

Essa é a rota que será chamada quando o usuário logado quiser listar todas as categorias cadastradas.

📌Listar transações do usuário logado

GET /transacao

Essa é a rota que será chamada quando o usuário logado quiser listar todas as suas transações cadastradas.

📌Filtrar transações por categoria

GET /transacao

Essa é a rota que será chamada quando o usuário logado quiser listar todas as suas transações cadastradas filtrando pelo nome da categoria.

Requisitos para os filtrar transações:

  • Incluir um parâmetro do tipo query filtro para que seja possível consultar apenas transações das categorias informadas;

📌Detalhar uma transação do usuário logado

GET /transacao/:id

Essa é a rota que será chamada quando o usuário logado quiser obter uma das suas transações cadastradas.

📌Cadastrar transação para o usuário logado

POST /transacao

Essa é a rota que será utilizada para cadastrar uma transação associada ao usuário logado.

Requisitos para cadastro de transação:

  • Todos os dados precisam ser informados (descricao, valor, data, categoria_id e tipo);
  • O tipo deverá ser 'saida' ou 'entrada';

📌Atualizar transação do usuário logado

PUT /transacao/:id

Essa é a rota que será chamada quando o usuário logado quiser atualizar uma das suas transações cadastradas.

Requisitos para cadastro de atualização:

  • Todos os dados precisam ser informados (descricao, valor, data, categoria_id e tipo);
  • O tipo deverá ser 'saida' ou 'entrada';

📌Excluir transação do usuário logado

DELETE /transacao/:id

Essa é a rota que será chamada quando o usuário logado quiser excluir uma das suas transações cadastradas.

📌Obter extrato de transações

GET /transacao/extrato

Essa é a rota que será chamada quando o usuário logado quiser obter o extrato de todas as suas transações cadastradas.


🛠 Tecnologias

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

Server (NodeJS)

Veja o arquivo package.json

Utilitários

Veja o arquivo teste-api-rotas-postman.json


Feito com ❤️ por Gessyca e Juliana

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published