Sistema web para agendamento de serviços de manicure e pedicure, desenvolvido com Spring Boot. O sistema oferece funcionalidades completas para gestão de clientes, serviços, agendamentos e portfólio.
- ✅ Cadastro e autenticação de usuários
- ✅ Visualização de serviços disponíveis
- ✅ Agendamento online com verificação de disponibilidade
- ✅ Histórico de agendamentos
- ✅ Cancelamento de agendamentos
- ✅ Visualização do portfólio de trabalhos
- ✅ Dashboard com agendamentos do dia
- ✅ Gestão completa de agendamentos
- ✅ Cadastro e gestão de serviços
- ✅ Gestão de clientes
- ✅ Gestão do portfólio (upload de imagens)
- ✅ Atualização de status dos agendamentos
- ✅ Notificações em tempo real via WebSocket
- Backend: Spring Boot 3.x
- Banco de Dados: JPA/Hibernate
- Segurança: Spring Security
- Frontend: Thymeleaf
- Comunicação em Tempo Real: WebSocket/STOMP
- Autenticação: BCrypt para criptografia de senhas
- Upload de Arquivos: MultipartFile
- Build: Maven
- Java 17 ou superior
- Maven 3.6+
- Banco de dados (H2 para desenvolvimento ou MySQL/PostgreSQL para produção)
git clone <url-do-repositorio>
cd unhasEdite o arquivo application.properties ou application.yml com as configurações do seu banco:
# Exemplo para MySQL
spring.datasource.url=jdbc:mysql://localhost:3306/unhas_db
spring.datasource.username=seu_usuario
spring.datasource.password=sua_senha
spring.jpa.hibernate.ddl-auto=updatemvn spring-boot:runA aplicação estará disponível em: http://localhost:8080
Após a primeira execução, um usuário administrador é criado automaticamente:
- Email: admin@admin.com
- Senha: admin123
⚠️ Importante: Altere essas credenciais após o primeiro login!
src/main/java/com/unhasystem/unhas/
├── config/ # Configurações (Security, WebSocket, MVC)
├── controllers/ # Controladores REST/MVC
├── entities/ # Entidades JPA
├── repositories/ # Repositórios de dados
├── services/ # Lógica de negócio
└── UnhasApplication.java # Classe principal
- Usuario: Gerencia autenticação e autorização
- Cliente: Informações dos clientes
- Servico: Catálogo de serviços oferecidos
- Agendamento: Controle dos agendamentos
- ItemPortfolio: Galeria de trabalhos realizados
O sistema utiliza Spring Security com:
- Autenticação baseada em formulário
- Criptografia BCrypt para senhas
- Controle de acesso baseado em roles:
ROLE_ADMIN: Acesso total ao sistemaROLE_CLIENT: Acesso às funcionalidades de cliente
- Verificação automática de conflitos de horário
- Horários configuráveis (padrão: 9h às 18h)
- Intervalos de 30 minutos
- Status de agendamento: AGENDADO, CONFIRMADO, CONCLUÍDO, CANCELADO
- Cálculo automático do horário de término baseado na duração do serviço
- Configurado para América/São_Paulo
- Conversão automática para UTC no banco de dados
- Upload de imagens para showcase de trabalhos
- Associação com serviços específicos
- Armazenamento local em
./uploads/portfolio/ - Geração automática de nomes únicos para arquivos
Configurado para notificações em tempo real:
- Endpoint:
/ws-agendamento - Tópico:
/topic - Prefixo da aplicação:
/app
- Banco de Dados: Configure um banco robusto (MySQL/PostgreSQL)
- Uploads: Configure um diretório persistente para uploads
- Segurança:
- Altere as credenciais padrão
- Configure HTTPS
- Revise as configurações de CORS se necessário
SPRING_PROFILES_ACTIVE=prod
DATABASE_URL=jdbc:mysql://localhost:3306/unhas_prod
DATABASE_USERNAME=usuario_prod
DATABASE_PASSWORD=senha_segura
UPLOAD_PATH=/var/uploads/unhasGET /- Página inicialGET /login- Página de loginGET /registro- Cadastro de usuáriosGET /portfolio- Visualização do portfólio
GET /agendamento/novo- Novo agendamentoGET /agendamento/horarios-disponiveis- Consulta horáriosPOST /agendamento/agendar- Criar agendamentoPOST /agendamento/{id}/cancelar- Cancelar agendamento
GET /admin/dashboard- Dashboard administrativoGET /admin/agendamentos- Gestão de agendamentosGET /admin/clientes- Gestão de clientesGET /admin/servicos- Gestão de serviçosGET /admin/portfolio- Gestão do portfólio
-
Erro de permissão de arquivo:
- Verifique as permissões do diretório
./uploads
- Verifique as permissões do diretório
-
Conflitos de agendamento:
- Verifique a configuração do fuso horário
- Confirme se os horários estão sendo salvos corretamente
-
Login não funciona:
- Verifique se o usuário admin foi criado
- Confirme as configurações do Spring Security
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.
Para dúvidas ou suporte:
- Abra uma issue no GitHub
- Consulte a documentação do Spring Boot
- Verifique os logs da aplicação em caso de erros
Desenvolvido com ❤️ para facilitar o agendamento de serviços de beleza

