Como o Projeto Laravel Funciona

Nesta seção da Plataforma, detalharemos a estrutura e o funcionamento geral da aplicação Gynforce, baseada no framework Laravel 12.

Ciclo de Vida da Requisição (Request Lifecycle)

Toda interação no sistema começa em public/index.php. O kernel do Laravel carrega as configurações, provedores de serviço e avalia a requisição de acordo com os Middlewares. No Gynforce, os middlewares são fortemente utilizados para segmentar quem acessa a aplicação (ex: AcademyAdmin, StudentApproved, InstructorAuth).

Roteamento

As rotas da aplicação estão divididas para atender os diferentes portais (routes/web.php ou arquivos segmentados). O projeto tem rotas específicas para:

  • Admin (Controle do sistema Gynforce inteiro)
  • Academy (Gestão local da unidade da academia)
  • Instructor (Gestão de fichas e treinos)
  • Student (Painel do aluno e interações com treinos/Livewire)

Controllers e Services

Em vez de possuir lógicas complexas nos Controllers, o Gynforce transfere regras de negócio para a camada Services (app/Services/). Por exemplo, o StudentWorkoutsController delega as responsabilidades reais para o StudentWorkoutsServices. Isso mantém os controladores "magros" e focados apenas em responder à web ou redirecionar a página.

Models (Eloquent)

A persistência de dados e relacionamentos é manipulada pelos Models em app/Models/. Algumas relações notáveis:

  • Student pertence a uma Academy.
  • Ficha se relaciona com Student e Exercise (via FichaExercise e StudentFicha).
  • Payment lida com as faturas geradas e controladas através de MPagoPixServices e AcademyPlan.

Views (Blade e Livewire)

A interface de usuário é baseada em Blade, o motor de templates do Laravel. As views do Gynforce estão categorizadas por pastas (ex: resources/views/academy, resources/views/student). Para componentes interativos que necessitam de atualização na tela sem recarregar (ex: O acompanhamento em tempo real da execução do treino pelo aluno), o projeto utiliza Livewire, cuja lógica reside em app/Livewire/StudentTrainer.php.

Assets Front-end

A aplicação gerencia seu CSS (TailwindCSS) e JavaScript (AlpineJS) através do Vite. Os estilos e scripts são agrupados pelo Vite e renderizados rapidamente no navegador do cliente, oferecendo uma UI responsiva e moderna de forma otimizada.