Estuda+ – Integração de sistema de terceiros com estudamais

Integração de sistema de terceiros com estudamais

Este artigo tem como objetivo demonstrar como outros sistemas podem se integrar com o Estudamais. O processo de integração entre esses dois sistemas segue os modelos de requisição e resposta descritos abaixo.

A integração opera da seguinte maneira: sempre que o LMS enviar uma requisição para o sistema de terceiros, ele incluirá um parâmetro na URL chamado API, que indica o tipo de ação ou pergunta que está sendo feita para o sistema de terceiros. Portanto, é crucial ter o modelo de resposta implementado previamente.

O sistema de terceiro não precisa alimentar a estrutura do LMS. A própria aplicação vai entrar em contato com o sistema de terceiro e buscar as informações.

Abaixo é possível ver as principais chaves para integrar a pessoa, curso, turma, matrícula e realizar o login no LMS.

Chave Obrigatório Descrição
ApiUnimMoodleCursos Sim Ação responsável por recuperar a lista de cursos que devem ser integrados. Evite trazer listas enormes de registros. Utilize alguma lógica de período.
lms.ApiPessoa Sim Ação responsável por recuperar as informações da pessoa no cadatro do terceiro. É essa ação que trás a pessoa para dentro do LMS ou vincula a pessoa ao curso EAD como professor, coordenador ou tutor.
ApiUnimMoodleCursosMatriculas Sim Ação responsável por recuperar todas as matriculas de uma pessoa. Nela também é possível visualizar informações importantes do curso e da turma. É nesse momento que a turma é criada no LMS e a pessoa é matriculada.
lms.ApiMatricula Sim Ação responsável por recuperar a quantidade de matrículas do aluno
lms.ApiFichaIndividual Sim Ação responsável por atualizar a situação da matrícula no LMS. O LMS executa essa chamada para o sistema de terceiro a cada 15min.
ApiLiberacaoCursoLms Sim Ação responsável por consultar se a pessoa tem alguma liberação financeira em alguma disciplina especifica.

Importante: Mesmo que a chave não seja utilizada para os fins mencionados acima, é necessário implementá-la. No caso de não ser utilizada, é importante implementar um retorno vazio.

Requisitos

A partir de agora, vamos usar como exemplo a URL http://sistema.terceiro.com.br como sendo a URL de integração. Antes de iniciar, é importante ter a integração do lado do LMS configurada pela equipe de serviços. É por esse passo que eles vão pegar a URL de exemplo e cadastrar para que o LMS saiba por onde ele deve se comunicar.

Integração do curso

A integração de cursos sempre vai esperar como resposta um array de objetos no formato JSON. Cada registro é um curso diferente. Essa integração acontece sempre automaticamente pelo agendamento que acontece a cada 15m ou mais.

[GET] http://sistema.terceiro.com.br/exemplo.php?api=ApiUnimMoodleCursos

Exemplo de como a resposta DEVE ser

[
  {
    "cd_moodle_curso": "2",
    "ds_descricao": "CURSO TESTE INTEGRAÇÃO - 07/05/2024",
    "ds_sigla": "CTI",
    "dt_revisao": "2024-05-06 17:50:59",
    "sn_separar_turma": "1",
    "sn_curso_modelo": null,
    "cd_curso_modelo": null,
    "nr_grau": "1",
    "nr_serie": "1",
    "ds_grau": "ENSFUND",
    "ds_hash_md5": "79cdb28f5c1f94045e0b8403450ea53d",
    "ds_metodo_importacao": "parcial",
    "cd_avaliacao_tipo": "1",
    "cd_coordenador": "248827",
    "cd_tutor": "510287"
  },
  {
    "... próximo curso"
  }
]

Campos

Abaixo segue a descrição dos campos mais relevantes.

Campo Tipo Obrigatório Padrão Descrição
cd_moodle_curso integer Sim Código único para o curso
ds_descricao string Sim Nome do curso
sn_separar_turma smallint Sim 1 Define como as turmas vão ser organizadas dentro do curso. 1 = Todas as turmas do curso vão para uma única turma do LMS chamada turma geral. 2 = Organizar os alunos cada um em sua respectiva turma de acordo com a matrícula dele. 3 = Organizar os alunos em turmas mensais. Serão criadas turmas de Janeiro a Dezembro e os alunos serão organizados de acordo com o mês da matrícula.
ds_hash_md5 string Sim Chave responsável por definir a integridade do curso. Para informar ele, você deve gerar um hash que compõe os campos cd_moodle_cursods_descricao,ds_sigla,ds_metodo_importacao,cd_avaliacao_tipo,sn_separar_turma e grau.
nr_grau integer Sim Define o grau do curso, ver a tabela de referência abaixo.
ds_metodo_importacao string Sim parcial Define como as notas serão devolvidas para o sistema de terceiro. parcial = Cada atividade avaliativa será enviada individualmente. media = Somente a média será integrada. nao_importar = Não integra nenhuma atividade.
cd_avaliacao_tipo smallint Sim 1 Define um código especifico para o tipo de avaliação que deve ser retornado para o sistema de terceiro.

Tabela de referência para os graus do curso

Código Grau Chave
1 Educação Infantil EI
2 1º ano (Ensino Fundamental I) EF1
3 2º ano (Ensino Fundamental I) EF2
4 3º ano (Ensino Fundamental I) EF3
5 4º ano (Ensino Fundamental I) EF4
6 5º ano (Ensino Fundamental I) EF5
7 6º ano (Ensino Fundamental II) EF6
8 7º ano (Ensino Fundamental II) EF7
9 8º ano (Ensino Fundamental II) EF8
10 9º ano (Ensino Fundamental II) EF9
11 1ª série do Ensino Médio EM1
12 2ª série do Ensino Médio EM2
13 3ª série do Ensino Médio EM3
14 4º ano Ensino Médio EM4
16 Cursos Livres CL
18 Olimpíada+ OLI
19 Graduação G
20 Pós Graduação PG
21 Mestrado M
22 Doutorado D

Integração da pessoa

Essa api é responsável por perguntar ao sistema de terceiro se a pessoa que está sendo requisitada existe. Se existir, faz a integração dela para o LMS.

A integração de pessoa é feito exclusivamente sob demanda no momento do login de cada usuário.

[GET] http://sistema.terceiro.com.br/exemplo.php?api=lms.ApiPessoa&ds_login=320854&ds_senha=a9e697258f8471f2032f193786a12f30

Parâmetros

Campo Tipo Obrigatório Padrão Descrição
ds_login string Sim Usuário único
ds_senha string Sim Senha do usuário em formato texto ou hash encriptada

Exemplo de como a resposta DEVE ser

{
  "success": true,
  "message": "",
  "result": {
    "cd_pessoa": "248827",
    "nm_pessoa": "ULISSES TESTE",
    "ds_cpf": "03455537440",
    "ds_sexo": "M",
    "cd_estado_civil": "5",
    "dt_nascimento": "1981-02-28 00:00:00",
    "ds_login": "ulisses",
    "cd_pais": 1,
    "nm_pai": "Luiz Teste",
    "nm_mae": "Miriam Teste",
    "ds_identidade": "12340000",
    "ds_identidade_orgao_exp": "SESP",
    "dt_identidade_expedicao": "2003-01-08 00:00:00",
    "ds_cep": "88318200",
    "ds_estado": "SC",
    "ds_pais": "Brasil",
    "cd_estado": "42",
    "ds_cidade": "Blumenau",
    "ds_bairro": "BRILHANTE I",
    "ds_logradouro": "RUA MOISÉS GAMBA",
    "ds_logradouro_nro": "134",
    "ds_complemento": "",
    "ds_senha": "3343197f6927b267bd765361341e9cb3",
    "ds_pais_nascimento": "BRASIL",
    "cd_pais_nascimento": "10",
    "ds_estado_nascimento": "SC",
    "cd_estado_nascimento": "42",
    "ds_cidade_nascimento": "Brusque",
    "cd_pessoa_antigo": null,
    "arrContatos": [
      {
        "cd_pessoa": "248827",
        "ds_contato": "47999249293",
        "ds_tipo_original": "Telefone Celular"
      },
      {
        "cd_pessoa": "248827",
        "ds_contato": "ulisses@amaiseducacao.com.br",
        "ds_tipo_original": "E-mail"
      },
      {
        "cd_pessoa": "248827",
        "ds_contato": "47 11111-6666",
        "ds_tipo_original": "Telefone Comercial"
      }
    ],
    "arrGrupos": [
      {
        "cd_grupo": "2",
        "ds_nome_grupo": "Estudantes",
        "ds_papel": "ALUNO",
        "cd_coligada": "1",
        "nm_coligada": "Escola Teste - Unidade CENTRO"
      },
      {
        "cd_grupo": "3",
        "ds_nome_grupo": "Professores",
        "ds_papel": "PROFESSOR",
        "cd_coligada": "1",
        "nm_coligada": "Escola Teste - Unidade CENTRO"
      },
      {
        "cd_grupo": "4",
        "ds_nome_grupo": "Coordenação",
        "ds_papel": "COORDENADOR",
        "cd_coligada": "1",
        "nm_coligada": "Escola Teste - Unidade CENTRO"
      }
    ]
  }
}

Campos

Abaixo segue a descrição dos campos mais relevantes.

Campo Tipo Obrigatório Padrão Descrição
cd_pessoa integer Sim Código único da pessoa
ds_sexo char Não M F = Feminino e M = Masculino.
cd_estado_civil integer Sim Valores de referẽncia em estado civil da pessoa
arrContatos.ds_tipo_original string Sim Valores de referẽncia em tipos de contatos da pessoa
arrGrupos.ds_papel string Sim Valores de referẽncia em tipos de contatos da pessoa

Tabela de referência para os grupos dos usuários

Na lista de grupos da pessoa, o campo ds_papel pode ser preenchido com os valores da coluna Papel abaixo.

Papel Perfil do LMS
ALUNO ESTUDANTES
ADMIN ADMINISTRADOR
PROFESSOR PROFESSORES
COORDENADOR COORDENACAO
ADMINISTRADOR ADMINISTRADOR
TUTOR TUTOR
TUTORIA TUTOR

Tabela de referência para o estado civil da pessoa

Na api de pessoa, o campo cd_estado_civil pode ser preenchido com os valores da coluna Código abaixo.

Código Descrição
1 Solteiro(a)
2 União civil estável
3 Casado(a)
4 Separado(a) Judicialmente
5 Divorciado(a)
6 Viúvo(a)

Tabela de referência para os tipos de contatos da pessoa

Na api de pessoa, o campo ds_tipo_original pode ser preenchido com os valores da coluna Código abaixo.

Código Chave
E-mail EMAIL
Site SITE
Telefone Celular TELEFONE-CELULAR
Telefone comercial TELEFONE-COMERCIAL
Telefone residencial TELEFONE

Integração da matrícula e turma

Essa api é responsável por perguntar ao sistema de terceiro quais são as matrículas da pessoa.

[GET] http://sistema.terceiro.com.br/exemplo.php?api=ApiUnimMoodleCursosMatriculas&cd_pessoa=1554172

Parâmetros

O LMS vai acrescentar na URL automaticamente o código da pessoa.

Campo Tipo Obrigatório Padrão Descrição
cd_pessoa integer Sim Código da pessoa do sistema de terceiro. Acrescentado automaticamente pelo LMS no momento do login

Exemplo de como a resposta DEVE ser

[
  {
    "cd_pessoa" : "320854",
    "cd_moodle_curso" : "2",
    "cd_curso_disciplina" : "82",
    "ds_descricao" : "CURSO TESTE INTEGRAÇÃO - 06/05/2024",
    "ds_turma_descricao" : "9.5 - 9º ANO ENSINO FUNDAMENTAL VESPERTINO",
    "cd_matricula_situacao" : "1",
    "ds_curso_md5" : "f183246ea1e053cb85a8a753c5bb0e89",
    "ds_turma_md5" : "8de28bda3b341ce78f044eb05cb02cde",
    "ds_metodo_importacao" : "parcial",
    "cd_avaliacao_tipo" : "1",
    "sn_separar_turma" : "1",
  },
  {
    "... próxima matrícula"
  }
]

Campos

Abaixo segue a descrição dos campos.

Campo Tipo Obrigatório Padrão Descrição
cd_pessoa integer Sim Código da pessoa
cd_moodle_curso integer Sim Código do curso que foi integrado
cd_curso_disciplina integer Sim Código da disciplina que foi vinculada no curso EAD
ds_descricao string Sim Nome do curso para controle interno. Não é o nome que aparece no LMS. em alguns casos, é usado para agrupamento das disciplinas EAD.
ds_turma_descricao string Sim Nome da turma
cd_matricula_situacao smallint Sim 9 Código que define a situação da matrícula
ds_curso_md5 string Sim Define a integridade das informações do curso. Se alterar o hash ele atualiza o título do curso.
ds_turma_md5 string Sim Define a integridade das informações da turma. Se alterar o hash ele atualiza o título da turma.
ds_metodo_importacao smallint Sim parcial Define o método de importação que foi selecionado na integração do curso. parcialmedia ou nao_importar.
cd_avaliacao_tipo smallint Sim 1 Define o código do tipo de avaliação que deve voltar para o sistema de terceiro.
sn_separar_turma smallint Sim null Define o tipo de organização das turmas. Mesmo valor escolhido na integração do curso.

Tabela de referência para a situação da matrícula

Códigos Situação
-8,3,4,5,6,7,8 Cancelada
14,13,12,11,0 Concluído
2,18,15,1 Cursando
9 Reprovado
10,100 Reservado

Total de matrículas da pessoa

[GET] http://sistema.terceiro.com.br/exemplo.php?api=lms.ApiMatricula&cd_pessoa=219477

Parâmetros

O LMS vai acrescentar na URL automaticamente o código da pessoa.

Campo Tipo Obrigatório Padrão Descrição
cd_pessoa integer Sim Código da pessoa do sistema de terceiro. Acrescentado automaticamente pelo LMS no momento do login

Exemplo de como a resposta DEVE ser

[
    {
        "nr_matriculas": "1"
    }
]

Integração da ficha individual

[GET] http://sistema.terceiro.com.br/exemplo.php?api?api=lms.ApiFichaIndividual&dt_base=2024-05-06+17:56:20&cd_coligada=

Parâmetros

O LMS vai acrescentar na URL automaticamente a data da última consulta da fichaindividual.

Campo Tipo Obrigatório Padrão Descrição
dt_base date Sim Data da última consulta para otimizar a resposta.

Exemplo de como a resposta DEVE ser

A implementação do retorno preenchido não é obrigatória, porém a implementação da API sim. Abaixo, apresentamos exemplos tanto preenchidos quanto vazios.

Preenchido:

{
    "success": true,
    "message": "",
    "result": {
        "fichasindividuais": [
            {
                "cd_pessoa": "320854",
                "nr_anosemestre": "20241",
                "cd_curso": "FUNDAMENTAL II",
                "cd_turma_matricula": "9.5",
                "cd_disciplina": "204",
                "nr_situacao": "3",
                "dt_base": "2024-05-06 17:50:11",
                "id_disciplina": "297",
                "cd_moodle_curso": "2"
            }
        ],
        "ds_chave": "dev"
    }
}

Vazio:

{
    "success": true,
    "message": "",
    "result": {
        "fichasindividuais": [],
        "ds_chave": "dev"
    }
}

Campos

Abaixo segue a descrição dos campos mais relevantes.

Campo Tipo Obrigatório Padrão Descrição
ds_chave string Sim Chave de acesso ao cliente informada pela equipe de serviços

Integração da liberação financeira do aluno em uma disciplina

[GET] http://sistema.terceiro.com.br/exemplo.php?api?api=lms.ApiLiberacaoCursoLms&cd_pessoa=123456&ds_chave=somente_pessoa

Parâmetros

O LMS vai acrescentar na URL automaticamente a data da última consulta da fichaindividual.

Campo Tipo Obrigatório Padrão Descrição
cd_pessoa integer Sim Código da pessoa preenchido automaticamente pelo LMS
ds_chave string Sim Chave fixa que é passada do lms para o sistema de terceiro

Exemplo de como a resposta DEVE ser

A implementação do retorno preenchido não é obrigatória, porém a implementação da API sim. Abaixo, apresentamos exemplos tanto preenchidos quanto vazios.

Preenchido:

[
  {
    "cd_liberacao_curso_lms" : "1",
    "cd_pessoa" : "320854",
    "cd_turma" : "9.5",
    "id_disciplina" : "295",
    "cd_usuario" : "1",
    "dt_liberacao" : "2024-05-07 16:18:00",
    "sn_ativo" : "1",
    "cd_curso" : "FUNDAMENTAL II",
    "cd_moodle_curso" : "2"
  }
]

Vazio:

[
  {}
]

Campos

Abaixo segue a descrição dos campos mais relevantes.

Campo Tipo Obrigatório Padrão Descrição
ds_chave string Sim Chave de acesso ao cliente informada pela equipe de serviços

Como logar no LMS

[POST] -> https://lms.unimestre.com/api/auth

Parâmetros

Campo Tipo Obrigatório Padrão Descrição
user string Sim Usuário
password string Sim Senha
portal boolean Não false Define se o menu superior do LMS deve ser exibido. Normalmente é definido como true quando o LMS vai ser exibido embedado.

Parâmetros do header

Campo Tipo Obrigatório Descrição
Api-Token string Sim Chave que será informada ao cliente após a equipe de serviço ter configurado a integração.
Api-Cliente string Sim Código do cliente que será informado ao cliente após a equipe de serviço ter configurado a integração.

Exemplo de requisição

curl --location 'https://lms.unimestre.com/api/auth' \
--header 'Content-Type: application/json' \
--header 'Api-Token: d8dce264b30dbce346ed3754435a652x' \
--header 'Api-Cliente: uc' \
--data '{
  "user": "amaiseducacao",
  "password": "unimestre",
  "portal" : false
}'

Exemplo de como a resposta DEVE ser

{
  "success":true,
  "message":"Pessoa encontrada.",
  "url":"http://lms.unimestre.com/dev/valida-ticket/NDAzMjQwYTRiY2Nmo="
}

O campo URL é para onde o usuário deve ser redirecionado.

Resultado final

Lista de cursos

Home do aluno

Sala de aula

Baixar exemplo em PHP

Abaixo é possível ver um exemplo de implementação de todas as APIs descritas acima.

Baixar exemplo de implementação e Postman/Insomnia

Clique nas estrelas e classifique

Lamentamos que este post não tenha sido útil para você!

Vamos melhorar este post!

Diga-nos, como podemos melhorar este post?

Compartilhe:

Share on whatsapp
Share on telegram
Share on email

Explore outros conteúdos

Portal On-Line

Eventos

Vamos conhecer agora como utilizar o módulo Eventos em sua instituição. Antes de mais nada, certifique-se de que seu sistema está atualizado para que o

Acadêmico

🔁O que é o Educacenso?

O Censo Escolar é o processo coordenado pelo INEP que coleta informações das instituições de educação básica do Brasil. Esse processo conta com a participação

Acadêmico

Como separar as turmas por grupo?

Muitas vezes a instituição precisa separar a turma de uma determinada disciplina por grupos. Ou seja, o grupo A terá aulas nas segunda-feira e a