Skip to content

Latest commit

 

History

History
106 lines (68 loc) · 3.57 KB

README.md

File metadata and controls

106 lines (68 loc) · 3.57 KB

Expense Tracker Restful Api

A API de Rastreamento de Despesas permite que os usuários gerenciem suas despesas, com funcionalidades para cadastro, autenticação, e operações CRUD (criar, ler, atualizar e excluir) sobre as despesas. Cada usuário possui seu próprio conjunto de despesas, acessível somente após autenticação.

Funcionalidades

A API oferece as seguintes funcionalidades:

  • Cadastro de Usuário: Permite que novos usuários se cadastrem.
  • Autenticação e Sessão: Gera e valida tokens JWT (JSON Web Token) para autenticação e manutenção da sessão.
  • Listagem e Filtro de Despesas: Exibe e filtra despesas com as seguintes opções:
    • Última semana
    • Último mês
    • Últimos 3 meses
    • Por categoria
    • Por data que o usuario informa
  • Personalizado (definindo uma data inicial e uma data final)
  • Adicionar Nova Despesa: Permite adicionar novas despesas ao banco de dados.
  • Remover Despesas: Permite excluir despesas existentes.
  • Atualizar Despesas: Permite modificar despesas existentes.

Categorias de Despesas

  • Alimentação
  • Transporte
  • Lazer
  • Saúde
  • Moradia
  • Educação
  • Outros

Requisitos

  • Ter o java instalado em sua maquina para rodar o programa e também o maven.

Instalação

  • Clone o repositório
  git clone https://github.com/pedro-henrique1/ExpenseTracker.git
  cd ExpenseTracker
  • Configure o arquivo com as variáveis de ambiente
  cd src/main/resources
  
  cp example.application.properties  application.properties
  • Instalar Dependência:
  mvn clean install
  mvn spring-boot:run

Documentação com Swagger

Esta API possui documentação interativa gerada automaticamente pelo Swagger, o que facilita a visualização e o teste dos endpoints.

Após iniciar a aplicação, acesse a documentação pelo seguinte endereço:

Através da interface Swagger, você pode explorar todos os endpoints disponíveis, visualizar parâmetros de requisição e resposta, além de testar as requisições diretamente na interface.

Endpoints

Expense Controller

  • POST /v1/expense/create: Cria uma nova despesa.
  • DELETE /v1/expense/{id}: Deleta uma despesa pelo ID.
  • PATCH /v1/expense/{id}: Atualiza uma despesa com base no ID.
  • GET /v1/expense/all: Retorna todas as despesas do usuário autenticado.

Authentication Controller

  • POST /v1/auth/register: Registra um novo usuário.
  • POST /v1/auth/login: Realiza o login do usuário e retorna um token JWT para autenticação.

Expense Filter Controller

  • GET /v1/expense/filter/last-three-months: Retorna as despesas dos últimos 3 meses.
  • GET /v1/expense/filter/filter: Busca as despesas com base na categoria especificada.
  • GET /v1/expense/filter/date: Busca as despesas com base em uma data específica.
  • GET /v1/expense/filter/between: Busca as despesas dentro de um intervalo de datas (início e fim).

Autenticação

A autenticação nesta API é baseada em JWT (JSON Web Tokens). Após o login, o usuário recebe um token que deve ser incluído no cabeçalho de cada requisição protegida para acessar as informações pessoais de despesas. O token é necessário para garantir que somente o usuário autenticado tenha acesso às suas próprias despesas.

Licença

Este projeto está licenciado sob a licença MIT. Sinta-se à vontade para usar, modificar e distribuir conforme os termos da licença.