Sistema back-end desenvolvido para automatizar e gerenciar as operações de uma barbearia, incluindo agendamentos, clientes, barbeiros e serviços.
O BarberPro API é um sistema robusto de back-end criado para facilitar a gestão de barbearias. A aplicação fornece endpoints seguros para gerenciar o catálogo de serviços, cadastrar clientes e barbeiros, além de controlar a agenda de horários e permitir avaliações.
Construído com Java e Spring Boot, o projeto implementa as melhores práticas de desenvolvimento, incluindo autenticação via JWT, arquitetura em camadas e documentação automatizada da API.
- Autenticação e Autorização: Login seguro com JWT (JSON Web Token) e controle de acessos (Filtros de Token e Security Config).
- Gestão de Usuários: CRUD de Clientes e Barbeiros com distinção de perfis.
- Catálogo de Serviços: Gerenciamento dos serviços oferecidos (cortes, barba, etc).
- Agendamentos: Controle completo de marcação de horários entre clientes e barbeiros, manipulando o status do agendamento.
- Sistema de Avaliações: Permite que clientes avaliem os serviços prestados.
- Documentação: API documentada com Swagger/OpenAPI.
- Containerização: Ambiente pré-configurado com Docker Compose.
- Tratamento de Erros: Padronização de respostas de erro utilizando
GlobalExceptionHandler.
- Java
- Spring Boot
- Spring Security (Autenticação JWT)
- Spring Data JPA
- Maven
- Swagger / OpenAPI (Documentação)
- Docker & Docker Compose
- Padrão DTO (Data Transfer Object)
- Tratamento global de exceções
O projeto segue a arquitetura padrão MVC/Camadas do Spring:
├── src/main/java/com/barberpro/dsc/
│ ├── config/ # Configurações de Segurança (JWT, Filtros) e Swagger
│ ├── controllers/ # Endpoints da API (Agendamento, Autenticação, etc.)
│ ├── dto/ # Objetos de Transferência de Dados (Request/Response)
│ ├── models/ # Entidades de Domínio (Agendamento, Barbeiro, Cliente...)
│ ├── repositories/ # Interfaces de acesso ao BD (Spring Data JPA)
│ └── services/ # Lógica de negócios, autenticação e validações
├── docker-compose.yml # Configuração de containers (Banco de dados)
├── pom.xml # Dependências do Maven
└── README.md
- Java 11 ou superior
- Maven
- Docker (Opcional, mas recomendado para levantar o banco de dados)
# Clonar o projeto
git clone https://github.com/edsonplz/barberpro.git
# Entrar na pasta do projeto
cd barberpro
# Subir os containers do Docker (Banco de Dados)
docker-compose up -d
# Instalar dependências e rodar a aplicação
./mvnw spring-boot:runA documentação do Swagger geralmente fica disponível em http://localhost:8080/swagger-ui.html após a execução do projeto.
Desenvolvedor Front-End | React • TypeScript • Spring Boot
⭐ Se este projeto foi útil, deixe uma estrela no repositório.