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.

Funções personalizadas: restrinja de forma fina os direitos de certas contas de administrador sem abrir todos os direitos globais.

Funções personalizadas

A opção Papéis personalizados permite restringir os direitos de uma conta de administrador módulo a módulo e operação a operação. Serve para delegar parte da administração sem conceder todos os direitos globais.

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.

See also