Skip to content

isaacdev-hub/RachacontaAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RachacontaAPI

# RachaConta API

API REST para divisão de despesas entre grupos de amigos.

## Tecnologias

- Java 21

- Spring Boot 3.5

- PostgreSQL 16

- Flyway

- Spring Security + JWT

- Docker

## Como rodar localmente

### Pré-requisitos

- Java 21

- Maven

- Docker Desktop

### 1. Sobe o banco

docker compose up -d

### 2. Configura o application.properties

Cria o arquivo src/main/resources/application.properties com:

spring.application.name=rachaconta-api



spring.datasource.url=jdbc:postgresql://localhost:5435/rachacontaapi

spring.datasource.username=postgres

spring.datasource.password=postgres

spring.datasource.driver-class-name=org.postgresql.Driver



spring.datasource.hikari.maximum-pool-size=10

spring.datasource.hikari.minimum-idle=2

spring.datasource.hikari.connection-timeout=30000

spring.datasource.hikari.idle-timeout=600000

spring.datasource.hikari.max-lifetime=1800000



spring.jpa.hibernate.ddl-auto=validate

spring.jpa.show-sql=false

spring.jpa.open-in-view=false



spring.flyway.enabled=true



jwt.secret=dev-secret-key-minimo-32-caracteres-aqui

jwt.expiration-ms=86400000



server.port=8001

### 3. Cria o banco

docker exec -it rachaconta-db psql -U postgres -c "CREATE DATABASE rachacontaapi;"
docker exec -it rachaconta-db psql -U postgres -c "ALTER USER postgres PASSWORD 'postgres';"

O segundo comando define a senha do usuário postgres para coincidir com o application

### 4. Sobe a aplicação

./mvnw spring-boot:run

### 5. Acessa o Swagger http://localhost:8001/swagger-ui.html

## Fluxo de uso

1. POST /api/auth/register — cria usuário

2. POST /api/auth/login — obtém token JWT

3. Autoriza no Swagger com Bearer <token>

4. POST /api/groups — cria grupo

5. POST /api/groups/{id}/members/{userId} — adiciona membros (apenas ADMIN)

6. POST /api/groups/{id}/expenses — registra despesa

7. POST /api/groups/{id}/settlements/calculate — calcula quem deve quanto

8. PATCH /api/groups/{id}/settlements/{settlementId}/confirm — confirma pagamento

About

💸 API REST para divisão inteligente de despesas em grupo | Java + Spring Boot + JPA • Algoritmo de liquidação que minimiza transferências entre usuários 🚀

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages