DOCUMENTAÇÃO DE INTEGRAÇÃO

Integre sua instituição
ao PrevUni.

Consulte o contrato de integração, o formato dos dados esperados e as configurações necessárias para disponibilizar sua instituição no PrevUni.

Como uma instituição se integra?

O PrevUni utiliza uma integração baseada em API. A instituição continua mantendo seus dados em seus próprios sistemas e disponibiliza um endpoint para que o PrevUni possa consultar as informações necessárias.

O endpoint deve retornar um objeto contendo informações da instituição, coordenadores, professores, cursos, disciplinas, alunos e matrículas.

Endpoint de integração

A instituição deve disponibilizar um endpoint HTTP acessível pelo PrevUni.

GEThttps://sua-instituicao.br/api/prevuni
Exemplo

Durante o desenvolvimento, você pode utilizar um endpoint de teste como:

https://prevuni-api.netlify.app/get-data-prevuni

Resposta esperada

O endpoint deve retornar um JSON seguindo exatamente a estrutura abaixo:

JSONPrevUniData
{
  "instituicao": {
    "id": "unifenas",
    "nome": "Universidade de Exemplo",
    "sigla": "UNI",
    "cnpj": "00.000.000/0001-00",
    "cidade": "Alfenas",
    "estado": "MG",
    "api": "https://faculdade.br/api/prevuni",
    "dominio": "prevuni.faculdade.br"
  },

  "coordenadores": [],

  "professores": [],

  "cursos": [],

  "disciplinas": [],

  "alunos": [],

  "matriculas": []
}

Estrutura dos dados

O PrevUni espera os seguintes objetos dentro da resposta da API.

Instituicao

Identifica a instituição que está fornecendo os dados.

{
  "id": "string",
  "nome": "string",
  "sigla": "string",
  "cnpj": "string",
  "cidade": "string",
  "estado": "string",
  "api": "string",
  "dominio": "string"
}

Coordenador

Representa os coordenadores acadêmicos disponibilizados pela instituição.

{
  "id": "string",
  "instituicaoId": "string",
  "nome": "string",
  "email": "string",
  "matricula": "string"
}

Professor

{
  "id": "string",
  "instituicaoId": "string",
  "nome": "string",
  "email": "string",
  "matricula": "string"
}

Curso

{
  "id": "string",
  "nome": "string",
  "quantidadePeriodos": 8,
  "instituicaoId": "string",
  "coordenadorId": "string"
}

Disciplina

{
  "id": "string",
  "nome": "string",
  "periodo": 1,
  "cargaHoraria": 80,
  "cursoId": "string",
  "professorId": "string"
}

Aluno

{
  "id": "string",
  "nome": "string",
  "cpf": "string",
  "email": "string",
  "dataNascimento": "2000-01-01",
  "cursoId": "string",
  "periodoAtual": 3,
  "status": "ativo",
  "dataIngresso": "2024-02-01"
}

Matrícula

{
  "id": "string",
  "alunoId": "string",
  "disciplinaId": "string",
  "semestre": "2026.1",
  "situacao": "matriculado",
  "cargaHorariaCumprida": 40,
  "nota": 8.5
}

Regras de relacionamento

Os dados enviados precisam respeitar os relacionamentos abaixo.

  • Uma instituição pode possuir um ou mais cursos.
  • Uma instituição pode possuir um ou mais coordenadores.
  • Uma instituição pode possuir um ou mais professores.
  • Um curso deve possuir um coordenador.
  • Um curso pode possuir uma ou mais disciplinas.
  • Um curso pode possuir um ou mais alunos.
  • Uma disciplina deve possuir um professor.
  • Uma disciplina pode possuir uma ou mais matrículas.
  • Uma matrícula deve estar associada a um aluno.

Configure o domínio da instituição

Cada instituição possui seu próprio ambiente dentro do PrevUni. Para isso, a instituição deve configurar um subdomínio apontando para a infraestrutura onde o PrevUni está hospedado.

Domínio desejadoprevuni.sua-faculdade.br

Exemplo de configuração

O administrador responsável pelo domínio da instituição deverá criar o registro DNS solicitado pela equipe responsável pelo PrevUni.

TipoNomeValor
CNAMEprevuniseu-destino-do-prevuni
Importante

O DNS não deve conter senhas, tokens, chaves privadas ou outras informações secretas. As configurações exatas de DNS podem variar conforme a infraestrutura de hospedagem utilizada pelo PrevUni.

Exemplo de integração

Abaixo está um exemplo simplificado de uma resposta completa que uma instituição poderia fornecer.

{
  "instituicao": {
    "id": "faculdade-001",
    "nome": "Faculdade Exemplo",
    "sigla": "FAEX",
    "cnpj": "00.000.000/0001-00",
    "cidade": "Alfenas",
    "estado": "MG",
    "api": "https://faculdade.br/api/prevuni",
    "dominio": "prevuni.faculdade.br"
  },

  "coordenadores": [
    {
      "id": "coord-001",
      "instituicaoId": "faculdade-001",
      "nome": "Maria Silva",
      "email": "maria@faculdade.br",
      "matricula": "123456"
    }
  ],

  "professores": [
    {
      "id": "prof-001",
      "instituicaoId": "faculdade-001",
      "nome": "João Souza",
      "email": "joao@faculdade.br",
      "matricula": "654321"
    }
  ],

  "cursos": [
    {
      "id": "curso-001",
      "nome": "Ciência da Computação",
      "quantidadePeriodos": 8,
      "instituicaoId": "faculdade-001",
      "coordenadorId": "coord-001"
    }
  ],

  "disciplinas": [
    {
      "id": "disc-001",
      "nome": "Programação",
      "periodo": 1,
      "cargaHoraria": 80,
      "cursoId": "curso-001",
      "professorId": "prof-001"
    }
  ],

  "alunos": [
    {
      "id": "aluno-001",
      "nome": "Aluno Exemplo",
      "cpf": "00000000000",
      "email": "aluno@faculdade.br",
      "dataNascimento": "2004-05-10",
      "cursoId": "curso-001",
      "periodoAtual": 1,
      "status": "ativo",
      "dataIngresso": "2026-02-01"
    }
  ],

  "matriculas": [
    {
      "id": "mat-001",
      "alunoId": "aluno-001",
      "disciplinaId": "disc-001",
      "semestre": "2026.1",
      "situacao": "matriculado",
      "cargaHorariaCumprida": 20,
      "nota": null
    }
  ]
}

Pronto para integrar sua instituição?

Configure seu endpoint, siga o contrato de dados e entre em contato com a equipe do PrevUni para configurar seu ambiente.

Acesso administrativo