Skip to content

Repository files navigation

✂️ RaphaBarber — Sistema Inteligente de Barbearia

JavaSpring BootSpring SecurityMySQLJWTMaven

StatusLicense

Uma plataforma completa para gerenciar sua barbearia com segurança, profissionalismo e facilidade. 💈✨

Acesse o Sistema


📖 Sobre o Projeto

O RaphaBarber é um sistema Full Stack moderno desenvolvido para barbearias gerenciarem seus negócios de forma eficiente. Com autenticação segura, agendamentos inteligentes e um painel administrativo, o Rapha pode focar no que faz de melhor: cortes impecáveis! 💇

Fase Atual: Sistema completo (Frontend + Backend) com toda a lógica de segurança, serviços e agendamentos implementada e em produção. 🚀


✨ Funcionalidades Principais

👤 Autenticação & Segurança

  • ✅ Registro seguro de usuários (clientes e admin)
  • ✅ Login com geração de JWT Token
  • ✅ Senhas criptografadas (bcrypt)
  • ✅ Controle de acesso por Roles (ADMIN/CLIENTE)
  • ✅ Token com expiração de 1 hora

✂️ Gerenciamento de Serviços

  • ✅ CRUD completo de serviços
  • ✅ Definição de preços e duração
  • ✅ Descrições detalhadas
  • ✅ Validações profissionais

📅 Sistema de Agendamentos

  • ✅ Agendamento com validação de data/hora
  • ✅ Controle de disponibilidade (sem conflitos)
  • ✅ Status do agendamento (AGENDADO, CONCLUÍDO, CANCELADO)
  • ✅ Agenda diária do Rapha
  • ✅ Histórico completo de cada agendamento
  • ✅ Atualização e cancelamento de agendamentos

🛡️ Segurança & Validações

  • ✅ Spring Security integrado
  • ✅ Validação em todas as camadas (Controller → Service → Database)
  • ✅ Mensagens de erro claras e úteis
  • ✅ Proteção contra SQL Injection (JPA)

🏗️ Arquitetura e Estrutura

raphabarber/ ├── src/main/java/com/claudio/dev/raphabarber/ │ ├── controller/ 🌐 Endpoints HTTP │ │ ├── AuthController.java │ │ ├── ServicoController.java │ │ └── AgendamentoController.java │ │ │ ├── service/ 🧠 Lógica de Negócio │ │ ├── UsuarioService.java │ │ ├── ServicoService.java │ │ ├── AgendamentoService.java │ │ └── JwtService.java │ │ │ ├── repository/ 🗄️ Acesso ao Banco │ │ ├── UsuarioRepository.java │ │ ├── ServicoRepository.java │ │ └── AgendamentoRepository.java │ │ │ ├── model/ 📦 Entidades (JPA) │ │ ├── Usuario.java │ │ ├── Servico.java │ │ ├── Agendamento.java │ │ ├── StatusAgendamento.java │ │ └── UserRole.java │ │ │ └── RaphabarberApplication.java │ └── src/main/resources/ └── application.properties ⚙️ Configurações

📊 Fluxo de Dados

Cliente HTTP Request ↓ Controller (Valida entrada) ↓ Service (Lógica de negócio) ↓ Repository (JPA) ↓ MySQL Database ↓ Response JSON 200/400/404


🔌 Endpoints da API

🔑 Autenticação (/auth)

MétodoEndpointDescrição
POST/registrarRegistrar novo usuário
POST/loginFazer login (retorna JWT)

✂️ Serviços (/servicos)

MétodoEndpointDescrição
GET/servicosListar todos os serviços
GET/servicos/{id}Buscar serviço por ID
POST/servicosCriar novo serviço ⭐
PUT/servicos/{id}Atualizar serviço ⭐
DELETE/servicos/{id}Deletar serviço ⭐

📅 Agendamentos (/agendamentos)

MétodoEndpointDescrição
GET/agendamentosListar agendamentos ativos
GET/agendamentos/{id}Buscar agendamento por ID
GET/agendamentos/dia?data=YYYY-MM-DD📅 Agenda do dia (Rapha)
POST/agendamentosCriar novo agendamento
PUT/agendamentos/{id}Atualizar agendamento
DELETE/agendamentos/{id}Cancelar agendamento

⭐ Requer autenticação (token JWT)


🚀 Tecnologias Stack

Backend

TecnologiaVersãoFunção
Java17Linguagem principal
Spring Boot3.xFramework Web/Rest
Spring Security6.xAutenticação
Spring Data JPA3.xORM Hibernate
JWT (JJWT)0.11.5Tokens seguros
MySQL8.0+Banco de dados
Maven3.9+Build & Dependências

Frontend

TecnologiaFunção
React.jsInterface do Usuário
ViteBuild Tool rápida
Tailwind CSSEstilização Responsiva
AxiosConsumo da API

Segurança

  • 🔐 Spring Security para autenticação/autorização
  • 🔑 JWT (JSON Web Tokens) para sessões
  • 🔒 BCrypt para hash de senhas
  • Validações em camadas (Controller → Service)

📋 Checklist de Funcionalidades

✅ Fase 1: Motor e Segurança

  • ✅ Repositório e dependências
  • ✅ Banco de dados MySQL
  • ✅ Spring Security + JWT
  • ✅ AuthController (Cadastro/Login)

✅ Fase 2: Coração do Negócio

  • ✅ Classe Servico e Agendamento
  • ✅ Métodos de agendamento e visualização de horários
  • ✅ Validações de conflito de horários

✅ Fase 3: Interface (Frontend)

  • ✅ Projeto React com Vite e Tailwind CSS
  • ✅ Tela de login/cadastro integrada ao JWT
  • ✅ Painel de agendamentos funcional (Admin e Cliente)
  • ✅ Consumo de rotas protegidas com Axios

✅ Fase 4: Lançamento

  • ✅ Deploy do banco e API (Railway)
  • ✅ Deploy do Frontend (Vercel)
  • ✅ Vídeo de demonstração (LinkedIn)

🧪 Como Testar Localmente

Pré-requisitos

  • MySQL rodando localmente
  • Java 17+
  • Node.js instalado

Configuração Rápida

  1. Clone o repositório:
git clone [https://github.com/claudiondev/raphabarber.git](https://github.com/claudiondev/raphabarber.git)
Backend: Configure o application.properties com suas credenciais do MySQL e rode:
Bash
./mvnw spring-boot:run
Frontend:
Bash
npm install
npm run dev
👨‍💻 Autor
Claudio Nascimento
🔗 GitHub: @claudiondev
💼 LinkedIn: linkedin.com/in/claudionascimento-dev
📧 Email: claudinhon152@gmail.com
⭐ Se este projeto foi útil, deixe uma star! ⭐
Desenvolvido para a RaphaBarber!
Status: 🟢 Production Ready | Última atualização: Maio de 2026

About

Sistema de agendamento para barbearia — Backend API com Java + Spring Boot

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages