API REST completa para controle financeiro pessoal, com autenticação JWT, recuperação de senha por e-mail e persistência em banco de dados MySQL em produção.
🚀 Acesse: https://financeiro-production-e0e0.up.railway.app
⚠️ A rota principal retorna 403 por segurança.
Utilize os endpoints/authe/gastospara testar a API.
O Sistema de Controle Financeiro é o backend de uma aplicação Full Stack, responsável por gerenciar autenticação, dados financeiros e regras de negócio.
A API foi desenvolvida com Java e Spring Boot, seguindo boas práticas de arquitetura em camadas, e está hospedada em produção no Railway, utilizando banco de dados MySQL para persistência real dos dados.
- 🔐 Autenticação segura com JWT (login e cadastro)
- 📧 Recuperação de senha via e-mail com código de verificação
- 💰 CRUD de gastos e salários
- 📊 Resumo financeiro mensal com saldo e estatísticas
- 💾 Persistência de dados com MySQL em produção
- POST /auth/register → Cadastro de usuário
- POST /auth/login → Login e geração de token JWT
- GET /gastos → Listar gastos
- POST /gastos → Criar gasto
- DELETE /gastos/{id} → Remover gasto
- GET /salarios → Listar salários
- POST /salarios → Criar salário
src/main/java/com/seuprojeto/financeiro ├── controller # Endpoints da API (requisições HTTP) ├── service # Regras de negócio ├── repository # Acesso ao banco de dados ├── model # Entidades (JPA) ├── dto # Objetos de transferência de dados ├── security # Configurações de segurança (JWT, filtros) └── config # Configurações gerais da aplicação
A aplicação segue o padrão de arquitetura em camadas:
- Controller → recebe requisições HTTP
- Service → contém a lógica de negócio
- Repository → acesso ao banco de dados
| Tecnologia | Descrição |
|---|---|
| Java 17 | Linguagem principal do projeto |
| Spring Boot 3.4.3 | Framework para construção da API |
| Spring Security | Proteção de rotas e criptografia de senhas |
| JWT (jjwt) | Autenticação baseada em token |
| Spring Data JPA | Comunicação com banco de dados |
| MySQL | Banco de dados relacional |
| JavaMailSender | Envio de e-mails |
| Railway | Deploy da aplicação |
Claudio Nascimento
🔗 https://github.com/claudiondev