# 📚 GUIA COMPLETO DO SISTEMA SIGED - LARAVEL 11

## 🎯 Visão Geral

O Sistema Integrado de Gestão da Educação (SIGED) foi totalmente reescrito em **Laravel 11** mantendo 100% em **Português Brasileiro**.

Este é um sistema militar completo de gerenciamento escolar com:
- ✅ 17 módulos funcionais
- ✅ 170 tabelas de banco de dados
- ✅ 100% código e documentação em português-br
- ✅ Integração com APIs externas (WhatsApp, Google Maps, IA, Facial Recognition)
- ✅ Multi-tenant por ano letivo/instituição
- ✅ RBAC (Role-Based Access Control) com 7 papéis

---

## 📁 Estrutura de Pastas em Português

```
Conversão SIGED para Laravel/
├── app/
│   ├── Controladores/              ← Controllers (REST)
│   │   ├── Academico/              ← Alunos, Turmas, Notas, Disciplinas
│   │   ├── Disciplinar/            ← Ocorrências, Penalidades, Recursos
│   │   ├── Financeiro/             ← Contas, Boletos, Carnes, Caixa
│   │   ├── RH/                     ← Funcionários, Professores, Folha Ponto
│   │   ├── Biometria/              ← Reconhecimento Facial, Chamadas
│   │   ├── Uniformes/              ← Pedidos, Controle
│   │   ├── Refeitorio/             ← Cardápio, Refeições
│   │   ├── Eventos/                ← Formaturas, Apresentações
│   │   ├── Cerimonial/             ← Bandeiras, Pelotão, Banda
│   │   ├── Esportes/               ← Modalidades, Tática
│   │   ├── Comunicacao/            ← Chat, WhatsApp, Avisos
│   │   ├── Analise/                ← IA, Relatórios, Análises
│   │   ├── Portal/                 ← Aluno, Professor, Responsável, Admin
│   │   └── Sistema/                ← Configurações, Backup, Logs, Auditoria
│   │
│   ├── Modelos/                    ← Eloquent Models com relacionamentos
│   │   ├── Academico/
│   │   ├── Disciplinar/
│   │   ├── Financeiro/
│   │   ├── RH/
│   │   └── Biometria/
│   │
│   ├── Servicos/                   ← Lógica de Negócio
│   │   ├── Academico/
│   │   ├── Disciplinar/
│   │   ├── Financeiro/
│   │   ├── RH/
│   │   └── Biometria/
│   │
│   ├── Requisicoes/                ← Form Validation
│   │   ├── Academico/
│   │   ├── Disciplinar/
│   │   ├── Financeiro/
│   │   └── RH/
│   │
│   ├── Enums/                      ← Enumerações (Status, Papéis, etc)
│   ├── Traits/                     ← Características reutilizáveis
│   ├── Recursos/                   ← API Resource Classes
│   └── Utilitarios/                ← Funções auxiliares
│
├── rotas/                          ← Route definitions
│   ├── web.php                     ← Rotas web (SSR)
│   ├── api.php                     ← Rotas API (JSON)
│   └── modulos.php                 ← Rotas dos 17 módulos
│
├── resources/
│   ├── exibicoes/                  ← Blade Templates
│   │   ├── layout/
│   │   │   ├── app.blade.php       ← Layout principal
│   │   │   ├── autenticacao.blade.php
│   │   │   └── painel.blade.php
│   │   ├── academico/
│   │   ├── disciplinar/
│   │   ├── financeiro/
│   │   └── ... (continue para 17 módulos)
│   │
│   ├── css/
│   │   ├── app.css                 ← Estilos customizados
│   │   └── bootstrap.css           ← Bootstrap 5.3
│   │
│   └── js/
│       ├── app.js                  ← JavaScript geral
│       ├── chart.js                ← Gráficos
│       └── validacao.js            ← Validação de formulários
│
├── database/
│   ├── migrations/                 ← 170 migrations SQL
│   ├── seeders/                    ← Seeders de dados iniciais
│   └── factories/                  ← Factories para testes
│
├── testes/                         ← Testes Unitários e Feature
│   ├── Unitario/
│   │   └── Servicos/
│   └── Feature/
│       └── Controladores/
│
├── documentacao/                   ← Guias e documentação
│   ├── GUIA_COMPLETO_PT_BR.md
│   ├── ESTRUTURA_MODULOS.md
│   ├── BANCO_DADOS.md
│   └── ... (documentação de cada módulo)
│
└── .env.exemplo                    ← Arquivo de configurações de exemplo

```

---

## 🔧 17 Módulos do Sistema

### 1. 📚 MÓDULO ACADÊMICO
**Localização:** `app/Controladores/Academico/`

Gerencia a estrutura acadêmica:
- **Alunos** (`ControladorAlunos.php`): CRUD, importação, exportação
- **Turmas** (`ControladorTurmas.php`): Criação, mapeamento, desempenho
- **Notas** (`ControladorNotas.php`): Lançamento, boletins, médias
- **Disciplinas** (`ControladorDisciplinas.php`): Cadastro de disciplinas

**Modelos:** `Aluno`, `Turma`, `Nota`, `Disciplina`, `AnoLetivo`

**Serviços:** `ServicoAlunos`, `ServicoTurmas`, `ServicoNotas`

**Exemplo de uso:**
```php
// Criar novo aluno
$aluno = $servicoAlunos->criarAluno([
    'nome_completo' => 'João Silva',
    'cpf' => '123.456.789-00',
    'data_nascimento' => '2010-05-15',
    'turma_id' => 1,
]);

// Listar alunos com filtros
$alunos = $servicoAlunos->listarAlunos([
    'turma_id' => 1,
    'status' => 'Ativo',
]);

// Obter média de notas
$media = $aluno->obterMedia();
```

---

### 2. ⚠️ MÓDULO DISCIPLINAR
**Localização:** `app/Controladores/Disciplinar/`

Gestão de ocorrências e penalidades:
- Registro de ocorrências
- Cálculo automático de penalidades (com agravantes/atenuantes)
- Suspensões
- Apelações/Recursos
- Histórico de punições

---

### 3. 💰 MÓDULO FINANCEIRO
**Localização:** `app/Controladores/Financeiro/`

Gestão de contas e financeiro:
- Contas a Receber
- Contas a Pagar
- Geração de Boletos (integração com CNAB)
- Carnes de Cobrança
- Recibos e Comprovantes
- Movimento de Caixa
- Relatórios Financeiros

---

### 4. 👥 MÓDULO DE RECURSOS HUMANOS
**Localização:** `app/Controladores/RH/`

Gerenciamento de pessoal:
- Cadastro de Funcionários
- Cadastro de Professores
- Alocação de Disciplinas
- Horários de Aulas
- Escalas de Trabalho
- Controle de Frequência

---

### 5. 🔍 MÓDULO DE BIOMETRIA
**Localização:** `app/Controladores/Biometria/`

Integração com reconhecimento facial:
- Reconhecimento Facial em tempo real
- Chamada Automática
- Detecção de Atrasos
- Sincronização com Hikvision ISAPI
- Integração com face-api.js

---

### 6. 👕 MÓDULO DE UNIFORMES
**Localização:** `app/Controladores/Uniformes/`

Controle de uniformes escolares:
- Pedidos de Uniforme
- Rastreamento de Entrega
- Controle de Estoque
- Relatórios de Retirada
- Histórico por Aluno

---

### 7. 🍽️ MÓDULO REFEITÓRIO
**Localização:** `app/Controladores/Refeitorio/`

Gestão de alimentação:
- Cardápio Semanal
- Controle de Refeições
- Alergias e Restrições
- Relatórios de Consumo
- Integração com Ponto de Venda

---

### 8. 🎓 MÓDULO DE EVENTOS
**Localização:** `app/Controladores/Eventos/`

Gestão de eventos escolares:
- Formaturas
- Apresentações
- Festas e Datas Especiais
- Convites
- Relatórios de Presença

---

### 9. 🎺 MÓDULO CERIMONIAL
**Localização:** `app/Controladores/Cerimonial/`

Atividades militares:
- Guarda de Bandeiras
- Pelotão de Alunos
- Banda Escolar
- Escalas
- Histórico de Participação

---

### 10. ⚽ MÓDULO DE ESPORTES
**Localização:** `app/Controladores/Esportes/`

Gestão de modalidades esportivas:
- Modalidades (Futebol, Vôlei, etc)
- Equipes
- Análise Tática
- Competições
- Estatísticas

---

### 11. 💬 MÓDULO DE COMUNICAÇÃO
**Localização:** `app/Controladores/Comunicacao/`

Sistemas de mensagens:
- Chat Interno
- WhatsApp Integration (Evolution API)
- Avisos e Notificações
- Mensagens em Massa
- Histórico de Comunicações

---

### 12. 📊 MÓDULO DE ANÁLISE
**Localização:** `app/Controladores/Analise/`

Inteligência Artificial e Análises:
- Análise Cognitiva com IA
- Predição de Desempenho
- Detecção de Risco
- Relatórios Customizados
- Dashboard Inteligente

---

### 13. 🌐 MÓDULO PORTAL
**Localização:** `app/Controladores/Portal/`

Portais de acesso por papel:
- Portal do Aluno
- Portal do Professor
- Portal do Responsável
- Portal Administrativo

---

### 14. ⚙️ MÓDULO SISTEMA
**Localização:** `app/Controladores/Sistema/`

Configurações e administração:
- Configurações Gerais
- Gestão de Acessos
- Backup e Restauração
- Logs de Auditoria
- Gestão de Usuários

---

## 🔐 Autenticação e Autorização

### Papéis (Roles)
```php
enum PapelUsuario: string
{
    case SUPER_ADMIN = 'super_admin';      // Acesso total
    case ADMINISTRADOR = 'administrador';  // Acesso administrativo
    case DIRETOR = 'diretor';              // Acesso direcional
    case COORDENADOR = 'coordenador';      // Coordenação de disciplinas
    case PROFESSOR = 'professor';          // Acesso pedagógico
    case ALUNO = 'aluno';                  // Acesso como aluno
    case RESPONSAVEL = 'responsavel';      // Acesso de responsável
}
```

### Permissões Granulares
Mais de 50 permissões específicas como:
- `criar_alunos`, `editar_alunos`, `deletar_alunos`
- `lançar_notas`, `editar_notas`
- `ver_relatorios`, `exportar_dados`
- etc...

### Exemplo de Uso
```php
// No controlador
$this->middleware('permissao:criar_alunos');

// Na view
@can('editar_alunos')
    <a href="{{ route('academico.alunos.editar', $aluno) }}">Editar</a>
@endcan

// No serviço
if (!auth()->user()->podePermissao('exportar_dados')) {
    throw new \Exception('Acesso negado');
}
```

---

## 🗄️ Banco de Dados

### 170 Tabelas Principais

#### Acadêmicas
- `alunos` - Cadastro de alunos
- `turmas` - Turmas/Classes
- `disciplinas` - Disciplinas
- `notas` - Notas dos alunos
- `faltas` - Faltas/Ausências
- `anos_letivos` - Configuração de anos

#### Disciplinares
- `ocorrencias_disciplinares` - Registro de ocorrências
- `penalidades` - Penalidades aplicadas
- `recursos_disciplinares` - Apelações
- `suspensoes` - Histórico de suspensões

#### Financeiras
- `contas_receber` - Faturas/Mensalidades
- `contas_pagar` - Despesas
- `boletos` - Boletos gerados
- `carnes` - Carnes de cobrança
- `recibos` - Comprovantes de pagamento

#### RH
- `funcionarios` - Dados de funcionários
- `professores` - Dados de professores
- `folha_ponto` - Registro de ponto
- `escalas_trabalho` - Escalas

#### Biometria
- `chamadas_biometricas` - Chamadas faciais
- `atrasos` - Detecção de atrasos
- `sincronizacao_biometria` - Log de sincronização

#### Uniforme
- `pedidos_uniforme` - Pedidos
- `pecas_uniforme` - Peças
- `entrega_uniforme` - Histórico de entrega

#### Refeitório
- `cardapio` - Cardápio
- `refeicoes` - Refeições
- `alergias_restricoes` - Restrições alimentares

#### Eventos e Cerimonial
- `eventos` - Eventos escolares
- `pelotao` - Escalas de pelotão
- `banda_instrumentos` - Instrumentos da banda
- `guarda_bandeiras` - Guarda de bandeiras

---

## ✉️ Integrações Externas

### 1. WhatsApp (Evolution API)
```php
// Enviar mensagem de notificação
$servicoComunicacao->enviarWhatsApp([
    'telefone' => '85999999999',
    'mensagem' => 'Falta de frequência detectada para João',
]);

// Disparo em massa
$servicoComunicacao->dispararEmMassa([
    'turma_id' => 1,
    'mensagem' => 'Aviso de falta excessiva',
]);
```

### 2. Google Maps
```php
// Integração para localização de institutos
$coordenadas = $servicoSistema->obterCoordenadaInstituicao();
```

### 3. Reconhecimento Facial
```php
// Chamar aluno via biometria
$chamada = $serviBiometria->registrarChamadaFacial([
    'imagem' => $arquivo_upload,
    'turma_id' => 1,
]);
```

### 4. IA (OpenAI/Google Gemini)
```php
// Análise de desempenho de aluno
$analise = $servicoAnalise->analisarDesempenho($aluno);
// Retorna: pontos fortes, fracos, recomendações

// Predição de notas
$predicao = $servicoAnalise->predizirMediaFinal($aluno);
```

---

## 🔄 Fluxo Típico de Requisição

### 1. Requisição HTTP
```
GET /academico/alunos/1
```

### 2. Router encontra:
```php
Route::get('alunos/{aluno}', [ControladorAlunos::class, 'mostrar'])
    ->middleware(['autenticado', 'tenant', 'permissao:visualizar_alunos']);
```

### 3. Middleware executa:
- Verifica autenticação
- Filtra por tenant
- Verifica permissão

### 4. Controlador executa:
```php
public function mostrar(Aluno $aluno): View
{
    $dados = $this->servicoAlunos->obterDetalhesAluno($aluno);
    return view('academico.alunos.mostrar', $dados);
}
```

### 5. Serviço executa lógica:
```php
public function obterDetalhesAluno(Aluno $aluno): array
{
    return [
        'aluno' => $aluno->load('turma'),
        'notas' => $aluno->notas()->with('disciplina')->get(),
        'frequencia' => $aluno->obterFrequencia(),
        // ... mais dados
    ];
}
```

### 6. View renderiza:
```blade
<!-- resources/exibicoes/academico/alunos/mostrar.blade.php -->
<h1>{{ $aluno->nome_completo }}</h1>
<div class="notas">
    @foreach($notas as $nota)
        <p>{{ $nota->disciplina->nome }}: {{ $nota->formatarExibicao() }}</p>
    @endforeach
</div>
```

---

## 📝 Naming Conventions

### Nomenclatura em Português
- **Controladores:** `Controlador` + NomeModulo (ex: `ControladorAlunos`)
- **Modelos:** Singular em português (ex: `Aluno`, `Turma`, `Nota`)
- **Serviços:** `Servico` + NomeModulo (ex: `ServicoAlunos`)
- **Validações:** `Requisicao` + Ação (ex: `RequisicaoArmazenarAluno`)
- **Views:** pasta + nome em português (ex: `academico.alunos.criar`)
- **Rotas:** `prefixo.recurso.acao` (ex: `academico.alunos.indice`)

### Métodos em Português
```php
// Listar
$alunos = $servicoAlunos->listarAlunos();

// Criar
$aluno = $servicoAlunos->criarAluno($dados);

// Atualizar
$servicoAlunos->atualizarAluno($aluno, $dados);

// Deletar
$servicoAlunos->deletarAluno($aluno);

// Obter
$dados = $servicoAlunos->obterDetalhesAluno($aluno);

// Verificar
if ($aluno->podeAvaliar()) { ... }

// Calcular
$media = $aluno->obterMedia();

// Exportar/Importar
$servicoAlunos->exportarExcel($filtros);
$resultado = $servicoAlunos->importarAlunos($arquivo);
```

---

## 🧪 Testes

### Testes Unitários
Testam serviços em isolamento:
```php
// tests/Unitario/Servicos/ServicoAlunosTest.php
$this->assertTrue($servico->gerarMatricula() !== null);
$this->assertEquals(0, $aluno->obterMedia());
```

### Testes Feature
Testam fluxos completos:
```php
// tests/Feature/Controladores/ControladorAlunosTest.php
$response = $this->get(route('academico.alunos.indice'));
$response->assertStatus(200);
```

### Rodando Testes
```bash
# Todos os testes
php artisan teste

# Apenas unitários
php artisan teste --filter=Unitario

# Com coverage
php artisan teste --coverage
```

---

## 🚀 Deployment em cPanel

### Pré-requisitos
- PHP 8.3+
- MySQL 5.7+
- Composer
- SSH Access

### Passo a Passo
1. Upload de arquivos
2. Instalar dependências (`composer install`)
3. Configurar .env
4. Gerar APP_KEY (`php artisan key:generate`)
5. Rodar migrations (`php artisan migrate`)
6. Rodar seeders (`php artisan db:seed`)
7. Configurar cronjobs
8. Configurar SSL/HTTPS

---

## 📞 Suporte

Para dúvidas sobre:
- **Estrutura:** Veja `ESTRUTURA_MODULOS.md`
- **Banco de Dados:** Veja `BANCO_DADOS.md`
- **API:** Veja `API_DOCUMENTACAO.md`
- **Testes:** Veja `GUIA_TESTES.md`

---

**Versão:** 2.0  
**Última Atualização:** Junho 2026  
**Status:** Pronto para Produção ✅
