Arquitetura, módulos e funções
Esta página resume a arquitetura aplicacional do Omniscol e as funções visíveis do lado da escola. Os compromissos contratuais precisos (disponibilidade, backups, retenção, supervisão) constam dos documentos jurídicos ou comerciais validados.
Hospedagem e confiabilidade
O Omniscol está hospedado na União Europeia, mais especificamente na AWS Paris e na Scaleway Paris. O produto utiliza mecanismos de backup, de supervisão e de isolamento lógico entre as contas das instituições; os detalhes aplicáveis a uma conta dependem do contrato e do ambiente em causa.
Consulte FAQ — Segurança e alojamento para o detalhe do lado do usuário.
Arquitetura de software
- Aplicação web: a aplicação é carregada uma vez e, em seguida, as telas são renderizadas dinamicamente com trocas REST/JSON (Single Page Application).
- CouchDB como base de dados principal.
- Redis como base de dados para a sincronização do lado da aplicação e para os logs.
- TypeScript para a interface (webapp).
- Backend Node.js / Express que orquestra os engines internos (api, webapp, portal, panel, ical, mcp, oauth2, etc.).
- C++ para o algoritmo de geração, executado em VMs dedicadas iniciadas sob demanda.
Segurança
- HTTPS para as comunicações expostas.
- Cloudflare como porta de entrada exclusiva (proteção anti-DDOS).
- Senhas pré-hasheadas do lado do cliente com scrypt, depois re-hasheadas e salgadas do lado do servidor. Não são armazenadas nem transmitidas em texto claro.
- Autenticação JWT com chaves de assinatura e tempo de vida curto; uma rotação ou revogação de chave pode invalidar os tokens assinados.
- Links de compartilhamento assinados, expiráveis, associados à conta que os gerou e invalidáveis por mudança de senha ou desativação dessa conta.
- Tokens de API com chave raiz e tokens derivados, escopos de endpoints e expirações.
- OIDC / SSO disponível conforme o contrato e a configuração da conta.
- Exportação e backups internos em JSON para a reversibilidade dos dados.
Funções de usuário
O Omniscol distingue várias funções do lado da escola:
| Função | Uso típico |
|---|---|
| Administrador | Responsáveis de planejamento, direção, TI |
| Professor | Professores, palestrantes, formadores |
| Aluno | Alunos, estudantes, aprendizes |
| Pessoal | Vida escolar, coordenadores, monitores, inspetores se o Gestão de pessoal estiver ativo |
| Link de compartilhamento | Acesso por URL assinada a um perímetro preciso |
A correspondência entre estes rótulos e os identificadores técnicos das funções está detalhada em Usuários e papéis.
Um mesmo usuário pode acumular várias funções. Por exemplo, um professor que participa no planejamento pode ser ao mesmo tempo Professor e Administrador.
A função Link de compartilhamento não corresponde a uma conta de usuário clássica. Trata-se de links assinados: os links web de horário são de leitura apenas, ao passo que certos links direcionados podem autorizar uma ação limitada, como a inserção das disponibilidades de um professor até uma data de expiração.
Existem também funções internas reservadas às equipes do Omniscol: administração da plataforma, tradução, ações comerciais e parceiros redistribuidores. Algumas destas contas estão autorizadas a conectar-se às contas das escolas, por razões de manutenção. Intervêm então como superadministradores da escola, com mais possibilidades do que um administrador: importação de dados brutos na base de dados, ativação ou desativação de opções pagas, conexão em nome de um usuário. Estes acessos disparam alertas de conexão visíveis e os seus tokens expiram muito depressa. Grandes poderes implicam grandes responsabilidades.
Módulos
Os módulos visíveis numa conta padrão:
- Página inicial (
home) — página de entrada e síntese do dia. - Horário (
schedules) — consulta e alterações pontuais. - Painel (
dashboard) — estatísticas de ocupação e de serviço. - Gestão de ausências (
absences) — declarações e substituições. - Gestão de horários letivos (
timetables) — construção, geração e publicação dos horários. - Administração (
admin) — usuários, configurações, importação / exportação e integrações.
Conforme o contrato, podem surgir outros módulos, nomeadamente Gestão de pessoal para o planejamento das tarefas de vida escolar e de supervisão.
Multiescola
Cada escola está isolada logicamente do lado do servidor e acessa o seu próprio domínio. Os dados de uma escola não são visíveis pelas outras escolas a partir da aplicação. Em contrapartida, mediante pedido, é possível ativar um canal de comunicação entre as contas distintas, para compartilhar os conflitos de ocupação de salas e de professores. Isto é muito útil no âmbito de edifícios compartilhados, ou para um grupo de escolas que compartilha recursos.