Skip to content

angelluzk/sentinela

Repository files navigation

🛡️ SENTINELA - Gestão Estratégica Hospitalar

Status Laravel PHP Bootstrap MySQL Blade Composer Laragon

🟡 Uma plataforma "Enterprise-Grade" desenhada para ambientes de alta criticidade, focada na integridade da informação, auditoria forense e controle de acesso granular.


📑 Índice

  1. Visão do Produto
  2. Propósito e Objetivos de Engenharia
  3. Arquitetura de Software
  4. Stack Tecnológica
  5. Funcionalidades Core
  6. Instalação e Configuração
  7. Roadmap de Desenvolvimento

🔭 Visão do Produto

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.


🎯 Propósito e Objetivos de Engenharia

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.

O que este projeto resolve/demonstra?

  1. 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.
  2. 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.
  3. 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.
  4. 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.

🏗️ Arquitetura de Software

O sistema segue o padrão MVC (Model-View-Controller) estendido, com interceptadores de segurança (Middlewares) e serviços de auditoria.

1. Fluxo de Requisição e 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

Loading

2. Modelagem de Dados de Segurança (ERD)

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
    }

Loading

🚀 Stack Tecnológica

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.

✨ Funcionalidades Core

1. Sistema de Gestão de Identidade e Acesso (IAM)

  • 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.

2. Auditoria e Compliance

  • 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.

3. Gestão Hospitalar/Militar

  • 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.

🛠️ Instalação e Configuração

Guia para implantação em ambiente de desenvolvimento local (On-Premise).

Pré-requisitos do Ambiente

  • 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).

Procedimento de Instalação

  1. Clonagem do Repositório
git clone [https://github.com/seu-usuario/sentinela.git](https://github.com/seu-usuario/sentinela.git)
cd sentinela
  1. Instalação de Dependências
composer install
npm install && npm run build
  1. 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
  1. Acesso ao Sistema
  • URL Local: http://sentinela.test (via Laragon) ou http://127.0.0.1:8000.
  • Credenciais Padrão:
  • User: admin@sentinela.com
  • Pass: password

🗺️ Roadmap de Desenvolvimento

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.

👩‍🎓 Autoria

Foto de Angel Luz

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.”

About

Plataforma de gestão "Enterprise-Grade" focada em auditoria forense, segurança granular (RBAC) e integridade de dados. Desenvolvida em Laravel com arquitetura escalável.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages