📄 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.
- 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.
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
# 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
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;
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.
Essa é a rota que será chamada quando o usuário quiser obter os dados do seu próprio perfil.
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;
Essa é a rota que será chamada quando o usuário logado quiser listar todas as categorias cadastradas.
Essa é a rota que será chamada quando o usuário logado quiser listar todas as suas transações cadastradas.
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;
Essa é a rota que será chamada quando o usuário logado quiser obter uma das suas transações cadastradas.
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';
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';
Essa é a rota que será chamada quando o usuário logado quiser excluir uma das suas transações cadastradas.
Essa é a rota que será chamada quando o usuário logado quiser obter o extrato de todas as suas transações cadastradas.
As seguintes ferramentas foram usadas na construção do projeto:
Server (NodeJS)
Veja o arquivo package.json
Utilitários
- Editor: Visual Studio Code
- Teste de API: Postman
Veja o arquivo teste-api-rotas-postman.json