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.jsonatual 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
Renderizando diagrama declarativo…
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.
diagrams/sources/arquitetura-atual-diagrama.mmdComponentes observados
| Área | Situação | Evidência |
|---|---|---|
| Autenticação | ✅ | Fortify, páginas Livewire e rotas protegidas |
| Usuários | Parcial | Administraçã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ção | Parcial | UserPolicy, 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ídia | Parcial | Spatie Medialibrary disponível; Models e schema de templates/versões existem, mas upload e geração DOCX seguem pendentes |
| Estágios | Parcial | Models, migrations, validações e auditoria existem; faltam Actions, Policies completas e jornadas da aplicação |
| Administração de campi | Parcial | Páginas Livewire para Administrador do Sistema e backend para operações locais permitidas ao Administrador do Campus; a interface local continua pendente. |
| Relatórios | Planejado | Devem 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.