You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Meu primeiro projeto de uma API REST desenvolvida para controle de orçamento familiar. A aplicação permite que uma pessoa cadastre suas receitas e despesas do mês, bem como gerar um relatório mensal completo com totais por categoria.
✨ Funcionalidades
🔐 Sistema de autenticação JWT seguro
💵 Gerenciamento completo de receitas (CRUD)
💳 Gerenciamento completo de despesas (CRUD)
📊 Geração automática de relatórios mensais
🔍 Filtros por descrição e período
📝 Documentação interativa com Swagger
🐳 Totalmente dockerizado para fácil deploy
🚀 Endpoints da API
Autenticação
Método
Endpoint
Descrição
POST
/register
Cadastrar usuário para começar a usar a API
POST
/auth
Autenticar usuário e receber token JWT
Receitas
Método
Endpoint
Descrição
GET
/receitas
Listar todas as receitas
GET
/receitas/{id}
Buscar receita por ID
GET
/receitas?descricao={valor}
Buscar receitas por descrição
GET
/receitas/{ano}/{mes}
Listar receitas de um período específico
POST
/receitas
Cadastrar nova receita
PUT
/receitas/{id}
Atualizar receita existente
DELETE
/receitas/{id}
Remover receita
Despesas
Método
Endpoint
Descrição
GET
/despesas
Listar todas as despesas
GET
/despesas/{id}
Buscar despesa por ID
GET
/despesas?descricao={valor}
Buscar despesas por descrição
GET
/despesas/{ano}/{mes}
Listar despesas de um período específico
POST
/despesas
Cadastrar nova despesa
PUT
/despesas/{id}
Atualizar despesa existente
DELETE
/despesas/{id}
Remover despesa
Relatórios
Método
Endpoint
Descrição
GET
/resumo/{ano}/{mes}
Gerar resumo mensal completo
📚 Documentação Completa
A API está com o Swagger2 implementado. Para ver a documentação interativa completa, rode a aplicação e acesse:
http://localhost:8080/swagger-ui.html
🖼️ Screenshots
Docker Rodando
Swagger UI
Testando com Insomnia
🛠️ Tecnologias Utilizadas
Backend & Framework
Java 17 - Linguagem de programação moderna e performática
Spring Boot 2.7.5 - Framework para desenvolvimento rápido de aplicações
Spring Security 5.7 - Autenticação e autorização robustas
🔄 Atualização importante: Projeto utiliza a nova configuração de segurança (Spring Security 5.7+), substituindo o WebSecurityConfigurerAdapter deprecated por SecurityFilterChain com @Bean (documentação oficial)
Spring Data JPA - Camada de persistência simplificada
Hibernate - ORM para mapeamento objeto-relacional
Bean Validation - Validação automática de dados com anotações
Arquitetura REST - Padrão RESTful para APIs escaláveis
Banco de Dados
MySQL 8.0.30 - Sistema de gerenciamento de banco de dados relacional
Segurança
JWT (Json Web Token) - Autenticação stateless e segura
BCrypt - Algoritmo de hash para senhas
Documentação & Testes
Swagger 2 - Documentação interativa e automática da API
JUnit 4 - Framework para testes unitários
Mockito - Framework para criação de mocks em testes
DevOps & Ferramentas
Docker - Containerização da aplicação
Docker Compose - Orquestração de múltiplos containers
Maven - Gerenciamento de dependências e build
Eclipse IDE - Ambiente de desenvolvimento integrado