Uma API para gerenciar movimentações financeiras, incluindo controle de despesas, dívidas e limites por categoria, com autenticação baseada em JWT.
- Gerenciamento de movimentações financeiras:
- Consultas por mês, ano e categoria.
- Atualização do status de pagamento.
- Controle de limites por categoria.
- Alerta por e-mail caso a categoria tenha superado o limite definido.
- Cadastro e autenticação de usuários:
- Baseada em tokens JWT.
- Roles de usuário: ADMIN e USER.
- Integração com MongoDB para armazenamento de dados.
- Java 17
- Spring Boot
- Spring Data
- Spring Security
- MongoDB
- JWT (JSON Web Token) para autenticação
- Maven para gerenciamento de dependências
-
Clone o repositório:
git clone https://github.com/Leonardobern10/ExpenseManagement.git cd seu-repositorio -
Configure o banco de dados:
- Certifique-se de que o MongoDB está em execução na sua máquina ou configure o
application.propertiescom as credenciais do seu ambiente:spring.data.mongodb.uri=mongodb://<seu-usuario>:<sua-senha>@<host>:<porta>/<database>
- Certifique-se de que o MongoDB está em execução na sua máquina ou configure o
-
Execute o projeto:
mvn spring-boot:run
-
Acesse a API:
- A aplicação estará disponível em:
http://localhost:8080
- A aplicação estará disponível em:
- POST
/auth/login
Retorna um token JWT para acesso à API.
- GET
/movimentations/year/{year}
Retorna movimentações do ano especificado. - POST
/movimentations/create
Cria uma nova movimentação financeira. - PUT
/movimentations/{id}/status
Atualiza o status de pagamento de uma movimentação.
- POST
/categories/limit
Define um limite para uma categoria.
- POST
/users/create
Cria um novo usuário.
Execute os testes unitários com o Maven:
mvn testsrc
├── main
│ ├── java
│ │ └── com.example.ExampleManagement
│ │ ├── config # Camada de controladores
│ │ ├── controller # Camada de controladores
│ │ ├── dto # Objetos para transferência de dados
│ │ ├── model # Classes de modelo
│ │ ├── repository # Interfaces de repositórios
│ │ ├── util # Ferramentas para JWT
│ │ ├── validations # Validações de negócios
│ └── resources
│ ├── application.properties # Configurações da aplicação
- Faça um fork do projeto.
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature). - Faça commit das suas alterações (
git commit -m 'Adiciona nova feature'). - Envie para o repositório remoto (
git push origin feature/nova-feature). - Abra um pull request.
Este projeto está licenciado sob a MIT License. Veja o arquivo LICENSE para mais detalhes.
- Nome: Leonardo Bernardo
- E-mail: leonardo.bernardo2658@gmail.com
- GitHub: Leonardobern10
- LinkedIn: Leonardo Bernardo