🟡 Uma plataforma "Enterprise-Grade" desenhada para ambientes de alta criticidade, focada na integridade da informação, auditoria forense e controle de acesso granular.
- Visão do Produto
- Propósito e Objetivos de Engenharia
- Arquitetura de Software
- Stack Tecnológica
- Funcionalidades Core
- Instalação e Configuração
- Roadmap de Desenvolvimento
O Sentinela não é apenas um sistema de gestão; é uma solução de arquitetura de software projetada para resolver os desafios de Compliance e Segurança em organizações militares e hospitalares.
Em ambientes onde um dado alterado incorretamente pode ter consequências legais ou vitais, sistemas CRUD tradicionais falham. O Sentinela preenche essa lacuna implementando uma camada rígida de interceptação de dados, garantindo que cada byte alterado seja rastreado, validado e autorizado.
Este projeto foi concebido como um laboratório avançado de Engenharia de Software para demonstrar a implementação de padrões corporativos complexos. O objetivo técnico é transcender o desenvolvimento web básico e aplicar conceitos de Sistemas de Alta Confiabilidade.
- Soberania dos Dados (Audit Trail): Implementação de um sistema de Logs Imutáveis. Diferente de logs de erro, o Sentinela grava o snapshot (estado) dos dados antes e depois de cada transação, permitindo auditoria forense completa.
- Segurança Granular (RBAC Manual): Em vez de depender de bibliotecas externas "caixa-preta", o sistema implementa uma lógica própria de Controle de Acesso Baseado em Função (RBAC) ao nível do banco de dados, permitindo definir permissões de Ler, Criar, Editar e Excluir para cada módulo individualmente.
- Padronização de API (Service Layer Pattern): Desacoplamento das respostas HTTP da lógica de negócio através de Controllers padronizados (
MensagemController), garantindo consistência no consumo pelo Frontend. - Interface Otimizada (SPA Feel): Utilização de técnicas avançadas de AJAX e manipulação de DOM para oferecer uma experiência próxima de uma Single Page Application (SPA), mantendo a robustez do renderização Server-Side.
O sistema segue o padrão MVC (Model-View-Controller) estendido, com interceptadores de segurança (Middlewares) e serviços de auditoria.
O diagrama abaixo ilustra como o Sentinela intercepta uma ação de usuário para garantir segurança e rastreabilidade antes de persistir qualquer dado.
sequenceDiagram
autonumber
actor User as Usuário
participant Route as Rotas (Middleware/Gate)
participant Ctrl as Controller
participant Valid as Request Validator
participant Audit as Serviço de Auditoria
participant DB as Banco de Dados
User->>Route: Requisição (Ex: Criar Registro)
Route->>DB: Verifica Permissão (RBAC)
alt Acesso Negado
DB-->>Route: False
Route-->>User: 403 Forbidden
else Acesso Permitido
Route->>Ctrl: Encaminha Requisição
Ctrl->>Valid: Valida Dados de Entrada
Valid-->>Ctrl: Dados Sanitizados
par Persistência e Auditoria
Ctrl->>DB: Salva Novo Registro
Ctrl->>Audit: Registra Log (IP, User, Dados JSON)
Audit->>DB: Insere na Tabela 'logs'
end
DB-->>Ctrl: Confirmação
Ctrl-->>User: Resposta JSON Padronizada
end
A estrutura de banco de dados foi desenhada para permitir a criação dinâmica de menus e perfis de acesso sem necessidade de alteração de código (Hard Coding).
erDiagram
USERS ||--|| PERFIS : possui
PERFIS ||--|{ PERFIS_PERMISSOES : define
MODULOS ||--|{ PERFIS_PERMISSOES : regula
USERS ||--|{ LOGS : gera
PERFIS {
bigint id PK
string nome
}
MODULOS {
bigint id PK
string nome
string rota
string icone
}
PERFIS_PERMISSOES {
bigint perfil_id FK
bigint modulo_id FK
boolean ler
boolean criar
boolean editar
boolean excluir
}
LOGS {
bigint id PK
json dados_snapshot
string ip_origem
string operacao
}
A escolha tecnológica priorizou estabilidade, suporte a longo prazo (LTS) e tipagem forte.
| Tecnologia | Categoria | Versão | Justificativa |
|---|---|---|---|
| Backend | 10.x / 11.x | Framework PHP líder de mercado, oferecendo ORM Eloquent robusto e segurança nativa contra CSRF/SQL Injection. | |
| Core | 8.2+ | Utilização de recursos modernos como Typed Properties e Enums para código mais seguro. | |
| Database | 8.0 | Banco relacional ACID-compliant, essencial para integridade transacional de dados hospitalares. | |
| UI Framework | 5.3 | Garantia de responsividade e acessibilidade com componentes estáveis e amplamente documentados. | |
| Frontend Logic | 3.6 | Manipulação eficiente do DOM e requisições AJAX para interfaces dinâmicas sem complexidade de build tools. | |
| UX | 11.x | Feedback visual assíncrono para melhorar a experiência do usuário em ações críticas. |
- Menu Dinâmico: A interface de navegação é renderizada em tempo real com base nas permissões do usuário logado.
- Proteção de Rotas: Middlewares customizados interceptam requisições HTTP, verificando as credenciais no banco antes de carregar o Controller.
- Black Box Logging: O sistema atua como uma "caixa preta", gravando cada interação. Mesmo que um administrador altere um dado diretamente, o rastro da alteração permanece.
- Snapshot JSON: Os logs armazenam o estado do objeto em formato JSON, permitindo "voltar no tempo" para ver como o dado era antes da alteração.
- Cadastro Parametrizado: Módulos flexíveis para cadastro de Patentes, Tipos de Pessoas e Hierarquias.
- Integração Visual: Interface limpa e focada na produtividade de operadores que lidam com grande volume de dados.
Guia para implantação em ambiente de desenvolvimento local (On-Premise).
- PHP >= 8.1 (com extensões BCMath, Ctype, JSON, Mbstring, OpenSSL, PDO, XML).
- Composer 2.x.
- Servidor MySQL/MariaDB.
- Node.js & NPM (para compilação de assets).
- Clonagem do Repositório
git clone [https://github.com/seu-usuario/sentinela.git](https://github.com/seu-usuario/sentinela.git)
cd sentinela
- Instalação de Dependências
composer install
npm install && npm run build
- Configuração de Ambiente (.env)
cp .env.example .env
php artisan key:generate
Configure as credenciais do banco de dados no arquivo .env.
4. Provisionamento do Banco de Dados (Seeders)
O comando abaixo cria a estrutura de tabelas, define os perfis de acesso, cria o usuário 'Admin' e popula as tabelas de domínio (Patentes, Tipos, etc).
php artisan migrate:refresh --seed --class=InstallSeeder
- Acesso ao Sistema
- URL Local:
http://sentinela.test(via Laragon) ouhttp://127.0.0.1:8000. - Credenciais Padrão:
- User:
admin@sentinela.com - Pass:
password
O projeto segue um ciclo de vida iterativo. Abaixo, o status atual e os próximos passos.
- Core Framework: Configuração, Autenticação e Layout Base.
- Módulo de Segurança: Implementação completa do RBAC (Tabelas e Lógica).
- Módulo de Auditoria: Implementação do sistema de Logs e rastreabilidade.
- Módulo de Pessoal: CRUD completo de Pacientes/Militares com upload de documentos.
- Módulo de Triagem: Lógica de atendimento e fila de espera.
- Dashboard Executivo: Gráficos e relatórios estatísticos baseados nos Logs.
Desenvolvido com 💛 por Angel Luz.
Se quiser conversar, colaborar ou oferecer uma oportunidade:
📬 E-mail: contatoangelluz@gmail.com
🐙 GitHub: @angelluzk
💼 LinkedIn: linkedin.com/in/angelitaluz
🗂️Website / Portfólio: meu_portfolio/
“Transformando código em fluxo, e ideias em movimento.”
