FF API de Agendamentos Backend Java • Spring Boot

PROJETO BACKEND DEMONSTRATIVO

Agenda inteligente, regras claras e uma API pronta para crescer.

Solução REST para clientes, serviços, profissionais, conflitos de horário, disponibilidade e ciclo de vida dos agendamentos.

Java 21LTS
Spring BootAPI REST
PostgreSQLPersistência
OpenAPIDocumentação
POST /api/v1/agendamentos
{
  "id": 42,
  "cliente": {
    "nome": "Marina Alves"
  },
  "servico": {
    "nome": "Consultoria inicial",
    "duracaoMinutos": 60
  },
  "profissional": {
    "nome": "Lívia Martins"
  },
  "inicio": "2099-08-20T09:00:00",
  "fim": "2099-08-20T10:00:00",
  "status": "PENDENTE"
}

RECURSOS

Mais do que um CRUD.

01

Conflito de agenda

Impede sobreposição de atendimentos para o mesmo profissional.

02

Disponibilidade

Calcula horários livres pela duração do serviço e expediente configurado.

03

Contratos limpos

DTOs, validação, paginação, filtros e respostas de erro padronizadas.

04

Pronta para operação

Flyway, PostgreSQL, Docker, health check, testes e integração contínua.

ARQUITETURA

Separação de responsabilidades.

Controllers cuidam do protocolo HTTP. Services concentram regras e transações. Repositories isolam persistência. DTOs protegem o domínio.

HTTPControllerServiceRepositoryDB

CONTRATO

Endpoints principais.

POST/api/v1/agendamentos

Cria e valida o período.

GET/api/v1/agendamentos

Filtros e paginação.

PATCH/api/v1/agendamentos/{id}/status

Controla o ciclo de vida.

GET/api/v1/disponibilidade

Retorna horários livres.

POST/api/v1/clientes

Cadastra clientes.

GET/api/v1/servicos

Lista serviços ativos.