https://github.com/fioshi/java-spring-smartcash
API em spring boot para controle financeiro
https://github.com/fioshi/java-spring-smartcash
api-rest mysql spring-boot
Last synced: about 2 months ago
JSON representation
API em spring boot para controle financeiro
- Host: GitHub
- URL: https://github.com/fioshi/java-spring-smartcash
- Owner: Fioshi
- Created: 2025-04-30T11:46:19.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-05-08T12:39:19.000Z (about 1 year ago)
- Last Synced: 2025-05-12T07:00:06.642Z (about 1 year ago)
- Topics: api-rest, mysql, spring-boot
- Language: Java
- Homepage:
- Size: 55.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚧 SmartCash - API em Desenvolvimento 🚧
Este repositório contém a API do **SmartCash**, um sistema de controle financeiro pessoal. A aplicação ainda está em fase de desenvolvimento ativo, e mudanças podem ocorrer com frequência.
---
## 🧰 Tecnologias Principais
- **Spring Boot 3.4.4** - Framework principal para construção da API.
- **Spring Data JPA** - Abstração poderosa para persistência com banco de dados.
- **MySQL** - Banco de dados relacional utilizado no ambiente local.
- **Flyway** - Controle de versionamento de migrações no banco de dados.
- **Spring Security** (em desenvolvimento) - Para futura implementação de autenticação/autorizacão segura.
- **Swagger/OpenAPI 3** - Documentação interativa da API, acessível via navegador.
---
## 🗄️ Migrations com Flyway
As migrações SQL são aplicadas automaticamente ao subir a aplicação. As versões estão localizadas em:
`src/main/resources/db/migration`
## 📁 Documentação da API (Swagger)
Após rodar a aplicação, acesse a URL:
```bash
http://localhost:8080/swagger-ui/index.html
```
---
## 🚀 Como executar localmente
```bash
# Clonar o repositório
git clone https://github.com/Fioshi/java-spring-smartCash.git
cd SmartCash
# Build do projeto
./mvnw clean install
# Rodar a aplicação
./mvnw spring-boot:run
```
Certifique-se de que o MySQL está rodando e o banco está configurado corretamente no `application.properties`.
---
## Diagrama do Banco de Dados
```mermaid
erDiagram
tb_user ||--o{ tb_spent : "possui"
tb_user ||--o{ tb_monthly_expense : "relacionado"
tb_monthly_expense ||--o{ tb_monthly_expense_spents : "associa"
tb_spent ||--o{ tb_monthly_expense_spents : "associa"
tb_user {
BIGINT id PK
VARCHAR nome
VARCHAR surname
VARCHAR cpf "UNIQUE"
VARCHAR email "UNIQUE"
VARCHAR password
}
tb_spent {
BIGINT id PK
ENUM type
INT installments
DOUBLE value
VARCHAR place
BIGINT user_id FK
}
tb_monthly_expense {
BIGINT id PK
INT year
VARCHAR month
BIGINT user_id FK
}
tb_monthly_expense_spents {
BIGINT monthly_expense_id PK, FK
BIGINT spent_id PK, FK
}
```