📅 Valhalla — Sistema de Agendamento para Barbearia
📌 Sobre o Projeto
O Valhalla é uma aplicação web desenvolvida em ASP.NET Core MVC, com o objetivo de gerenciar agendamentos de uma barbearia de forma eficiente, moderna e segura.
O sistema permite:
Gestão de serviços Agendamento de clientes Controle de utilizadores com autenticação Visualização interativa em calendário
Este projeto foi desenvolvido no contexto de formação em desenvolvimento backend, com foco em boas práticas, organização e lógica de negócio.
🚀 Tecnologias Utilizadas C# ASP.NET Core MVC Entity Framework Core SQL Server ASP.NET Identity Bootstrap FullCalendar.js LINQ
🧠 Funcionalidades 👤 Autenticação e Autorização Login e registo de utilizadores Sistema de roles (Admin / Cliente) Proteção de rotas com [Authorize] ✂️ Gestão de Serviços (Admin) Criar, editar e excluir serviços
Definir: Nome Descrição Preço Duração
📅 Agendamentos Criar agendamentos com: Serviço Data e hora de início Cálculo automático do horário de fim Validação de conflitos (não permite sobreposição de horários)
📆 Calendário Interativo Integração com FullCalendar Visualização semanal Horário de funcionamento configurado Exibição personalizada: Admin vê todos os agendamentos Cliente vê apenas os seus
💰 Faturamento (em desenvolvimento) Resumo semanal/mensal Total de atendimentos Total faturado
🗂️ Estrutura do Projeto Valhalla/ │ ├── Controllers/ ├── Models/ ├── Views/ ├── Data/ ├── wwwroot/ │ ├── css/ │ ├── js/ │ └── images/ │ ├── appsettings.json ├── Program.cs └── README.md
⚙️ Configuração do Projeto 1️⃣ Clonar o repositório git clone https://github.com/SEU_USERNAME/Valhalla.git cd Valhalla 2️⃣ Configurar a Base de Dados
No ficheiro appsettings.json:
"ConnectionStrings": { "DefaultConnection": "Server=.;Database=06_Projeto_Valhalla;Trusted_Connection=True;TrustServerCertificate=True;" } 3️⃣ Aplicar Migrations
No Package Manager Console:
Add-Migration InitialCreate Update-Database 4️⃣ Executar o Projeto dotnet run
Ou via Visual Studio (F5)
🔐 Perfis de Utilizador Tipo Permissões Admin Gestão completa do sistema Cliente Criar e visualizar os próprios agendamentos
📸 Funcionalidades Visuais Interface moderna com Bootstrap Layout responsivo Calendário dinâmico Estilo consistente (tema claro com destaque)
📌 Regras de Negócio Não é permitido agendar em horários já ocupados
O horário final é calculado automaticamente:
DataHoraFim = DataHoraInicio.AddMinutes(Servico.DuracaoMinutos); Clientes só podem visualizar seus próprios dados Apenas Admin pode gerenciar serviços
🧩 Melhorias Futuras 📲 Notificações por email 💳 Integração com pagamentos 📊 Dashboard avançado 📱 Versão mobile ⭐ Sistema de avaliações
👨💻 Autor
Leonardo Souza 💼 Back-End Developer 📍 Braga, Portugal
📬 Contato LinkedIn: https://www.linkedin.com/in/Ldosouza GitHub: https://github.com/Hewllsing
📄 Licença
Este projeto é apenas para fins educacionais.
⭐ Considerações Finais
O Valhalla demonstra a aplicação prática de conceitos como:
Arquitetura MVC ORM com Entity Framework Autenticação e autorização Validação de dados Integração de bibliotecas externas