📋 Sobre o projeto
O NutriFit é um sistema de gestão para nutricionistas e personal trainers acompanharem seus clientes. Reúne, em um só lugar, o controle de treinos, avaliações físicas, planos alimentares e agendamentos. Foi desenvolvido como projeto acadêmico da disciplina de Programação Orientada a Objetos seguindo a arquitetura MVC (controller / service / repository / model / templates).
⭐ Principais funcionalidades
- Login e autenticação com Spring Security + BCrypt
- Controle de acesso por perfil (Admin / Personal / Nutricionista) com menu dinâmico
- CRUD de 7 entidades: Usuário, Cliente, Exercício, Ficha de Treino, Plano Alimentar, Alimento e Agendamento
- Fichas de treino personalizadas, registro diário de treinos e histórico de progressão de carga
- Avaliações físicas com histórico, cálculo de IMC e meta de peso
- Banco de alimentos com macronutrientes e cálculo de calorias por refeição
- Agenda do dia e da semana com ações de status
- Dashboard com indicadores dinâmicos
🛠️ Tecnologias
- Spring Boot — base da aplicação e injeção de dependências
- Spring Web MVC — controllers e rotas
- Thymeleaf (+ Layout Dialect) — páginas com layout base e fragments reutilizáveis
- Spring Security — login, autenticação e autorização por papel
- Spring Data JPA / Hibernate — persistência e relacionamentos (OneToMany / ManyToOne)
- Bean Validation — validações backend (@Valid, @NotBlank, @Email)
- H2 (dev) e MySQL (produção) — perfis de banco separados
- Bootstrap + JavaScript — interface e validações frontend
- Lombok — redução de código repetitivo nas entidades