Skip to content

📬 Projeto de integração do SIGAA-UFG com aplicação SempreUFG por meio de troca de mensagem

License

Notifications You must be signed in to change notification settings

matheuspiment/sigaa-egressos

Repository files navigation

SIGAA-EGRESSOS

build quality gate status codecov coverage version downloads semantic-release All Contributors MIT License

Esta é uma blibioteca para fins acadêmicos e não indicada para uso em produção.

Este projeto tem como objetivo propor uma solução de integração entre o SIGAA-UFG com aplicação SempreUFG, esta destinada ao egressos da universidade, onde por troca de mensagem a mesma receberia as informações do SIGAA acerca dos alunos em egresso. 📬

Especificação da Proposta

Contexto

Como descrito na introdução acima, a divulgação de notícias e eventos, por exemplo, para os egressos da universidade é de interesse da comunidade acadêmica e fomenta/permetua o contato do ex-aluno com a mesma.

Diagramas

Diagrama de implantação.

Figura 1 - Diagrama de implantação.

O sigaa-engressos vem como uma solução de integração entre os sistemas SIGAA-UFG e SEMPRE-UFG a integração se dará por meio de troca de mensagens para isso é ultilizado o serviço Emitter.

Conforme apresentado na figura 1 a comunicação entre o SIGAA-UFG e EMITTER, SEMPRE-UFG e EMITTER é realizada através do protocolo HTTP. A figura 2 (abaixo) apresenta a dependência entre os sistemas.

Diagrama de dependência

Figura 2 - Diagrama de dependência.

Ferramentas/Tecnologias

A "simplicidade" foi o fator determinante nas escolhas técnicas, bem como a familiaridade dos integrantes envolvidos. O objetivo principal foi a adoção de ferramentas/tecnologias com um grande ecossistema/comunidade e que auxiliassem na ornanização dos artefatos e do workflow de desenvolvimento do projeto.

Instalação

sigaa-egressos para NodeJS:

npm install sigaa-egressos --save

Exemplo

import sigaaEgressos from "sigaa-egressos";

const credentials = { key: "...", channel: "..." };

const messages = [];

const onMessage = message => {
  messages.push(message);
  console.log(messages);
};

sigaaEgressos.connect();
sigaaEgressos.subscribe(credentials);
sigaaEgressos.onMessage(onMessage);

sigaaEgressos.publish(credentials, {
  id: 1,
  title: "Espaço das Profições",
  type: "evento",
  description:
    "A Universidade Federal de Goiás (UFG) realiza nos dias 25 e 26 de junho, o Espaço das Profissões 2018, na Regional Goiânia, uma exposição que aproxima os universitários e profissionais da Instituição de estudantes do ensino médio, interessados em ingressar na UFG."
});

sigaaEgressos.publish(credentials, {
  id: 2,
  title:
    "UFG está entre as 20 melhores instituições Sul-Americanas em Ciências da Terra e Ambientais",
  type: "noticia",
  description:
    "A Universidade Federal de Goiás (UFG) está entre as 20 melhores instituições Sul-Americanas no que diz respeito às produções na área de Ciências da Terra e Ambientais. O ranking é do Nature Index, um banco de dados sobre publicações, autorias e produtividade dos pesquisadores."
});

API

Você pode obter as credenciais no site https://emitter.io/.

connect()

Conecta no broker emitter.

disconnect()

Desconecta do broker.

subscribe(credentials, last)

Inscreve-se no canal.

  • credentials.key - string | requerido - Chave do canal.
  • credentials.channel - string | requerido - Nome do canal.
  • last - número | opicional - Defini quantas mensagens armazenadas você deseja recuperar.

unsubscribe(credentials)

Desinscreve do canal.

  • credentials.key - string | requerido - Chave do canal.
  • credentials.channel - string | requerido - Nome do canal.

publish(credentials, message, ttl)

Publica a mensagem no canal.

  • credentials.key - string | requerido - Chave do canal.
  • credentials.channel - string | requerido - Nome do canal.
  • message - objeto | requerido - Um objeto javascript com essa estrutura.
  • ttl - número | opicional - É o tempo de vida da mensagem, em segundos.

onMessage(callback)

Definir a função callback para os pacotes de mensagens recebidos.

  • callback(message) - function | requerido - Função callback para os pacotes de mensagens recebidos. O argumento message segue essa estrutura.

Estrutura da Mensagem

As mensagens publicadas e recebidas seguem o modelo/esquema abaixo, onde essas chaves são as requeridas, podendo haver outras.

Outras chaves e seus respectivos valores não são verificados pela biblioteca.

{
  id: 2,
  title: 'UFG está entre as 20 melhores instituições Sul-Americanas em Ciências da Terra e Ambientais',
  type: 'noticia',
  description: 'A Universidade Federal de Goiás (UFG) está entre as 20 melhores instituições Sul-Americanas no que diz respeito às produções na área de Ciências da Terra e Ambientais. O ranking é do Nature Index, um banco de dados sobre publicações, autorias e produtividade dos pesquisadores.',
}

Equipe

Mais detalhes sobre emoji key


Matheus Pimenta

💻 📖 💡 🚇 📦 🤔

Beatriz Nogueira

📖 🤔

Antonio Silva

📖 🤔

Keslley L.

📖 🤔

Fábio Nogueira de Lucena

🤔