Skip to content

kalebzaki4/room-reservation-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,323 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 SyncSpace API

Enterprise-grade Room Reservation System built with Java 21 and Spring Boot 3. Desenvolvido com foco em alta disponibilidade, integridade de dados e segurança, simulando os desafios técnicos de uma Fintech.

Java Spring Boot MySQL Docker

SyncSpace resolve o problema de agendamentos simultâneos em ambientes corporativos. O diferencial deste projeto é a implementação de Optimistic Locking para evitar o "Double Booking" (reserva duplicada) e uma arquitetura que isola totalmente as regras de negócio.


🛠 Business Rules (Regras de Negócio)

Para garantir a consistência do sistema, as seguintes regras foram implementadas:

  • Prevenção de Conflitos: O sistema utiliza controle de versão JPA para impedir que dois usuários reservem a mesma sala no exato milissegundo.
  • Validação Temporal: Reservas não podem ser feitas em horários retroativos.
  • Segurança por Camada: Endpoints de administração são protegidos via JWT, garantindo que apenas usuários autorizados gerenciem as salas.

✨ Features Técnicas

  • Concurrency Control — Implementação de @Version para integridade de dados.
  • 🔐 Stateless Security — Autenticação robusta com Spring Security e JWT.
  • 🐳 Infrastructure as Code — Ambiente 100% conteinerizado com Docker Compose.
  • 📐 Domain-Driven Design (Lite) — Camadas de serviço puras, isolando a lógica da infraestrutura.
  • 📖 Swagger UI — Documentação interativa disponível em /swagger-ui.html.

🚦 Endpoints Principais (Exemplos)

Método Endpoint Descrição Acesso
POST /api/auth/login Autenticação e geração de Token Público
GET /api/rooms Lista todas as salas disponíveis Público
POST /api/reservations Cria uma nova reserva Autenticado
DELETE /api/rooms/{id} Remove uma sala do sistema Admin

🚀 Como Executar

Via Docker (Recomendado)

# Clone e entre na pasta
git clone [https://github.com/kalebzaki4/room-reservation-api](https://github.com/kalebzaki4/room-reservation-api)
cd room-reservation-api

# Suba todo o ecossistema (App + DB)
docker-compose up -d

🧪 Qualidade de Código

O projeto conta com uma suíte de testes focada no caminho feliz e em casos de erro (Edge cases):

Testes Unitários: JUnit 5 e Mockito.

Validação de DTOs: Bean Validation para garantir que dados sujos não cheguem ao banco.

👨‍💻 Autor Kaleb Zaki

About

API de reserva de quartos de alto desempenho, desenvolvida com Java 21, Spring Boot 3.2 e MySQL. Oferece segurança JWT e bloqueio otimista para alta concorrência.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages