SGEProduto · Domínio · Desenvolvimento
Repositório

architecture · observed

Arquitetura atual

Fotografia da arquitetura, dependências e infraestrutura atualmente presentes na aplicação.

Leitura em linguagem simples

Esta página mostra como o SGE é montado por dentro. Quem usa o sistema não precisa conhecer estas tecnologias para solicitar, acompanhar ou avaliar um estágio. Em termos simples: há uma tela para as pessoas, regras que conferem cada ação, um banco que guarda as informações e serviços que executam tarefas como calcular datas ou preparar documentos.

Use esta página para saber o que já existe e o que ainda está sendo planejado. Para entender o processo de estágio sem detalhes técnicos, comece por Visão geral, Pessoas e responsabilidades e Fluxos principais.

Stack

A implementação atual utiliza:

  • Laravel 13.
  • PHP `^8.3 (o ambiente de desenvolvimento atual usa PHP 8.5).
  • Livewire 4 e Flux UI.
  • Tailwind CSS e Vite.
  • PostgreSQL.
  • Laravel Fortify.
  • Spatie Activitylog.
  • Spatie Medialibrary.
  • Laravel Scout e Meilisearch.

Dependências do domínio

  • O composer.json atual não declara PhpOffice/PhpWord, usado apenas quando a geração DOCX for implementada;
  • o helper de valores por extenso importa Brick Math, mas o pacote não está declarado diretamente no composer.json.

Organização do código

Diagram Design · Mermaid · arraste para mover · Ctrl/⌘ + scroll para zoom

100%Abrir inteiro ↗

Renderizando diagrama declarativo…

Legenda
  • Etapa
  • Resultado
  • Conexão
Leitura semântica

Rotas e configurações chegam a Controllers e Livewire, que usam Services, Actions, Models, Gates e Policies; a aplicação persiste no PostgreSQL e entrega a interface por Blade, Flux UI, Vite e Tailwind.

Fonte declarativa: diagrams/sources/arquitetura-atual-diagrama.mmd

Componentes observados

ÁreaSituaçãoEvidência
Autenticação✅Fortify, páginas Livewire e rotas protegidas
UsuáriosParcialAdministração de contas e vínculos de Administrador do Sistema/Campus pela interface; busca, políticas e ciclo de vida implementados. A listagem mostra contas com vínculos administrativos; fluxos de domínio e perfil pessoal seguem parciais.
AutorizaçãoParcialUserPolicy, AffiliationPolicy e CampusPolicy exigem o vínculo ativo selecionado nos escopos administrativos implementados; políticas e interfaces das jornadas de estágio ainda faltam.
Auditoria✅Spatie Activitylog, autoria pelo vínculo ativo e campos pessoais/profissionais auditados
Infraestrutura de mídiaParcialSpatie Medialibrary disponível; Models e schema de templates/versões existem, mas upload e geração DOCX seguem pendentes
EstágiosParcialModels, migrations, validações e auditoria existem; faltam Actions, Policies completas e jornadas da aplicação
Administração de campiParcialPáginas Livewire para Administrador do Sistema e backend para operações locais permitidas ao Administrador do Campus; a interface local continua pendente.
RelatóriosPlanejadoDevem consumir o domínio e respeitar o escopo do vínculo ativo

Regras de arquitetura

  • Regras de negócio importantes devem ficar em Services, Actions ou objetos de domínio, evitando controllers grandes.
  • Autorização deve ser centralizada em Gates e Policies.
  • A autorização é derivada do vínculo ativo, AffiliationType, campus/curso e estado do registro; a decisão fica no código e nos testes.
  • Alterações persistentes devem ser feitas por migrations.
  • Integrações externas devem ser encapsuladas em Services e testadas isoladamente.
  • Cálculos determinísticos ficam em Services puros; autorização, transação e efeitos colaterais ficam em Actions/Policies.
  • Decisões que alterem o domínio devem manter os modelos e fluxos correspondentes sincronizados.