Pular para o conteúdo principal

Conceitos Fundamentais

Introdução

Este documento detalha as entidades do sistema de integração ProExtend e seus relacionamentos.

Modelo de Dados

Hierarquia de Entidades

observação

Áreas e Disciplinas Base são entidades globais da instituição: não pertencem a uma unidade ou curso específico. O vínculo entre Curso e Área (e entre Curso e Unidade) acontece no próprio Curso. O vínculo entre Curso e Disciplina acontece na Turma (via course_codes).

Entidades Detalhadas

1. Unidade (Unit)

Campus ou unidade física da instituição.

Atributos

codestringobrigatório
Identificador único do sistema de origem (ERP). Usado em todas as entidades para mapeamento idempotente. Exemplo: CAMPUS_CENTRO, SEDE
namestringobrigatório
Nome da unidade
addressstringopcional
Endereço completo

Exemplo

{
"code": "CAMPUS_CENTRO",
"name": "Campus Centro",
"address": "Rua Principal, 123 - Centro, São Paulo - SP"
}

Características

  • Não depende de outras entidades
  • Possui Diretores (Directors), Assessores Pedagógicos (Pedagogical Advisors), Áreas (Areas) e Cursos (Courses) vinculados

2. Diretor (Director)

Diretor de unidade, responsável pela gestão de um campus.

Atributos

codestringobrigatório
Código único do diretor
namestringobrigatório
Nome completo
emailstringobrigatório
Email institucional (único)
cpfstringopcional
CPF: apenas 11 dígitos sem formatação, ex: 12345678901
phonestringopcional
Telefone: apenas dígitos, 10 a 11 caracteres
unit_codestringobrigatório
Código da unidade que dirige (deve existir)
activebooleanopcional

Controla o status:

  • truereativa (remove suspensão)
  • falsesuspende
  • omitirnão altera o status atual

Exemplo

{
"code": "DIR001",
"name": "Roberto Lima",
"email": "roberto.lima@faculdade.edu.br",
"unit_code": "CAMPUS_CENTRO"
}

Características

  • Depende de: Unidade (Unit)
  • Sistema cria credenciais de acesso automaticamente
  • Pode ser suspenso sem ser removido via campo active: false

O Diretor tem visibilidade sobre todas as turmas da sua unidade. Como a unidade agrupa áreas, e cada área agrupa cursos, o acesso percorre toda essa hierarquia: qualquer turma vinculada a um curso de qualquer área da unidade estará visível.


3. Assessor Pedagógico (Pedagogical Advisor)

Assessor responsável pelo suporte pedagógico em uma unidade.

Atributos

codestringobrigatório
Código único do assessor
namestringobrigatório
Nome completo
emailstringobrigatório
Email institucional (único)
cpfstringopcional
CPF: apenas 11 dígitos sem formatação, ex: 12345678901
phonestringopcional
Telefone: apenas dígitos, 10 a 11 caracteres
unit_codestringobrigatório
Código da unidade de atuação (deve existir)
activebooleanopcional

Controla o status:

  • truereativa (remove suspensão)
  • falsesuspende
  • omitirnão altera o status atual

Exemplo

{
"code": "ASSES001",
"name": "Fernanda Costa",
"email": "fernanda.costa@faculdade.edu.br",
"unit_code": "CAMPUS_CENTRO"
}

Características

  • Depende de: Unidade (Unit)
  • Sistema cria credenciais de acesso automaticamente
  • Pode ser suspenso sem ser removido via campo active: false

O Assessor Pedagógico tem a mesma visibilidade de turmas que o Diretor (Director): acesso a todas as turmas de todos os cursos e áreas da unidade. A diferença está no papel dentro da instituição, não no escopo de acesso à plataforma.


4. Área (Area)

Área de conhecimento que agrupa cursos relacionados.

Atributos

codestringobrigatório
Código único da área. Exemplo: TECH, HEALTH
namestringobrigatório
Nome da área

Exemplo

{
"code": "TECH",
"name": "Tecnologia da Informação"
}

Características

  • Não depende de outras entidades: é uma entidade global da instituição
  • O vínculo com unidade acontece através do curso (cada curso indica sua unidade via unit_code)
  • Possui Gestores de Área (Area Managers) e Cursos (Courses) vinculados

5. Gestor de Área (Area Manager)

Gestor responsável por uma ou mais áreas de conhecimento, com escopo restrito a uma unidade.

Atributos

codestringobrigatório
Código único do gestor
namestringobrigatório
Nome completo
emailstringobrigatório
Email institucional (único)
cpfstringopcional
CPF: apenas 11 dígitos sem formatação, ex: 12345678901
phonestringopcional
Telefone: apenas dígitos, 10 a 11 caracteres
area_codesarrayobrigatório
Códigos das áreas que gerencia (mínimo 1)
area_sync_modestringopcional

Modo de sincronização de áreas (padrão: replace). Comportamento detalhado em Fluxo de Sincronização - Modos de sincronização:

  • addpreserva os vínculos existentes e adiciona os novos
  • replacesubstitui pelos enviados
unit_codestringobrigatório
Código da unidade do gestor (deve existir). Restringe o escopo às turmas da unidade
activebooleanopcional

Controla o status:

  • truereativa (remove suspensão)
  • falsesuspende
  • omitirnão altera o status atual

Exemplo

{
"code": "GEST001",
"name": "Carlos Mendes",
"email": "carlos.mendes@faculdade.edu.br",
"area_codes": ["TECH", "ENG"],
"unit_code": "CAMPUS_CENTRO"
}

Características

  • Depende de: Áreas (Areas) e Unidade (Unit)
  • Sistema cria credenciais de acesso automaticamente
  • Pode ser suspenso sem ser removido via campo active: false

O Gestor de Área tem visibilidade sobre todas as turmas dos cursos pertencentes às áreas que gerencia, restritas à sua unidade. Como a área é global da instituição, sem unit_code o gestor veria turmas da mesma área em qualquer campus. Por isso a unidade é obrigatória e funciona como filtro de escopo.


6. Curso (Course)

Curso de graduação ou pós-graduação oferecido pela instituição.

Atributos

codestringobrigatório
Código único do curso. Exemplo: CC001, ENF001
namestringobrigatório
Nome do curso
descriptionstringopcional
Descrição detalhada
area_codestringobrigatório
Código da área (deve existir)
unit_codestringobrigatório
Código da unidade (deve existir)

Exemplo

{
"code": "CC001",
"name": "Ciência da Computação",
"description": "Bacharelado em Ciência da Computação - Duração 4 anos",
"area_code": "TECH",
"unit_code": "CAMPUS_CENTRO"
}

Características

  • Depende de: Unidade (Unit) e Área (Area)
  • Possui Coordenadores (Coordinators) e Disciplinas Base (Subjects) vinculadas

7. Coordenador (Coordinator)

Coordenador de um ou mais cursos, responsável pela gestão acadêmica.

Atributos

codestringobrigatório
Código único do coordenador
namestringobrigatório
Nome completo
emailstringobrigatório
Email institucional (único)
cpfstringopcional
CPF: apenas 11 dígitos sem formatação, ex: 12345678901
phonestringopcional
Telefone: apenas dígitos, 10 a 11 caracteres
course_codesarrayobrigatório
Códigos dos cursos que coordena (mínimo 1)
course_sync_modestringopcional

Modo de sincronização de cursos (padrão: replace). Comportamento detalhado em Fluxo de Sincronização - Modos de sincronização:

  • addpreserva os vínculos existentes e adiciona os novos
  • replacesubstitui pelos enviados
activebooleanopcional

Controla o status:

  • truereativa (remove suspensão)
  • falsesuspende
  • omitirnão altera o status atual

Exemplo

{
"code": "COORD001",
"name": "Prof. Ana Souza",
"email": "ana.souza@faculdade.edu.br",
"cpf": "11122233344",
"phone": "11988887777",
"course_codes": ["CC001", "SI001"]
}

Características

  • Depende de: Cursos (Courses)
  • Sistema cria credenciais de acesso automaticamente
  • Pode ser suspenso sem ser removido via campo active: false

O Coordenador tem visibilidade sobre todas as turmas dos cursos que coordena. Um coordenador pode coordenar mais de um curso e enxerga as turmas de todos eles. Turmas de cursos não coordenados não são acessíveis, mesmo que compartilhem disciplinas via course_codes.


8. Disciplina Base (Subject)

Componente curricular do catálogo da instituição. A mesma disciplina base pode ser usada por turmas de cursos diferentes. O vínculo curso ↔ disciplina é definido na Turma (Enrollment) via course_codes.

Atributos

codestringobrigatório
Código único da disciplina. Exemplo: ALG001, LIBRAS
namestringobrigatório
Nome da disciplina

Exemplo

{
"code": "ALG001",
"name": "Algoritmos e Programação I",
"type": "obrigatoria"
}

Características

  • Não depende de outras entidades: é uma entidade global da instituição
  • Representa componente curricular permanente, sem vínculo com período letivo, curso ou alunos
  • O vínculo curso ↔ disciplina existe apenas na Turma (Enrollment), via campo course_codes
  • Possui Turmas (Enrollments) vinculadas

9. Turma (Enrollment)

Instância de uma Disciplina Base em período letivo específico, com um ou mais professores responsáveis e alunos matriculados.

Atributos

codestringobrigatório
Código único da turma. Exemplo: ALG001-2025.1, TURMA001
subject_codestringobrigatório
Código da disciplina base (deve existir)
course_codesarrayobrigatório
Códigos dos cursos vinculados à turma (pelo menos um; aceita course_code singular por retrocompatibilidade). É na turma que o vínculo curso ↔ disciplina é definido
course_sync_modestringopcional
Modo de sincronização de cursos (padrão: replace)
professor_codesarrayobrigatório
Códigos de professores (pelo menos um; aceita professor_code singular por retrocompatibilidade)
professor_sync_modestringopcional
Modo de sincronização de professores (padrão: replace)
semesterstringobrigatório
Semestre acadêmico (formato YYYY.N, ex: 2025.1, 2025.2)
student_codesarrayopcional
Códigos de alunos (devem existir se fornecidos)
student_sync_modestringopcional
Modo de sincronização de alunos (padrão: replace)

Os três *_sync_mode aceitam add (preserva os vínculos existentes e adiciona os novos) ou replace (substitui pelos enviados). Detalhes e exemplos em Fluxo de Sincronização - Modos de sincronização.

Exemplo

{
"code": "ALG001-2025.1",
"subject_code": "ALG001",
"course_codes": ["CC001", "SI001"],
"professor_codes": ["PROF001", "PROF002"],
"semester": "2025.1",
"student_codes": ["ALU2024001", "ALU2024002", "ALU2024003"]
}

Cursos da Turma e Matrícula de Alunos

A disciplina base não é vinculada a curso. O vínculo curso ↔ disciplina é feito na turma, pelo campo course_codes (obrigatório na criação, com pelo menos um curso).

Ao matricular alunos, se algum aluno pertencer a um curso que ainda não está em course_codes, esse curso é vinculado automaticamente à turma (a turma se torna multicurso) e o aluno é matriculado normalmente. Ou seja, course_codes define os cursos iniciais da turma, mas ela cresce conforme os cursos dos alunos sincronizados, sem rejeição por "curso diferente".

Uma mesma disciplina pode ser usada em turmas vinculadas a cursos diferentes (ou várias delas ao mesmo tempo, via course_codes com múltiplos cursos).

Múltiplos Professores

O campo professor_codes permite vincular mais de um professor à mesma turma. Todos os professores vinculados têm o mesmo nível de acesso à turma: podem criar atividades, avaliar alunos e visualizar submissões igualmente. Útil para turmas com co-docência ou quando dois professores dividem a responsabilidade pela disciplina.

Características

  • Depende de: Disciplina Base (Subject), Professores (Professors) e Alunos (Students)
  • Sincronizações com code existente adicionam professores novos sem remover os existentes
  • O comportamento dos alunos é controlado por student_sync_mode (replace ou add)
  • Alunos removidos da lista (em modo replace) são automaticamente desvinculados

10. Professor (Professor)

Docente que leciona disciplinas na instituição.

Atributos

codestringobrigatório
Código único do professor (matrícula, CPF ou código funcional)
namestringobrigatório
Nome completo
emailstringobrigatório
Email institucional (único)
cpfstringopcional
CPF: apenas 11 dígitos sem formatação, ex: 12345678901
phonestringopcional
Telefone: apenas dígitos, 10 a 11 caracteres
area_codestringopcional
Código da área de atuação
activebooleanopcional

Controla o status do professor:

  • truereativa o professor (remove suspensão)
  • falsesuspende o professor
  • omitirnão altera o status atual

Exemplo

{
"code": "PROF001",
"name": "Dr. João Silva",
"email": "joao.silva@faculdade.edu.br",
"cpf": "12345678901",
"phone": "11999999999",
"area_code": "TECH"
}

Características

  • Não depende de outras entidades: pode ser sincronizado a qualquer momento
  • Sistema cria credenciais de acesso automaticamente
  • Pode ser suspenso sem ser removido via campo active: false

Um professor pode ministrar diversas turmas simultaneamente em diferentes disciplinas e semestres. Em cada turma que leciona, o professor tem acesso completo: pode criar e corrigir atividades, lançar notas e visualizar submissões dos alunos matriculados.


11. Aluno (Student)

Discente matriculado em um curso da instituição.

Atributos

codestringobrigatório
Código único do aluno (matrícula, CPF ou RA)
namestringobrigatório
Nome completo
emailstringobrigatório
Email institucional. Pode se repetir entre matrículas do mesmo usuário (aluno) em cursos diferentes; ver Aluno com múltiplas matrículas
cpfstringopcional
CPF: apenas 11 dígitos sem formatação, ex: 12345678901. Pode se repetir entre matrículas do mesmo usuário (aluno)
phonestringopcional
Telefone: apenas dígitos, 10 a 11 caracteres
course_codestringobrigatório
Código do curso (deve existir)
activebooleanopcional

Controla o status do aluno:

  • truereativa o aluno (remove suspensão)
  • falsesuspende o aluno
  • omitirnão altera o status atual

Exemplo

{
"code": "ALU2024001",
"name": "Pedro Oliveira Santos",
"email": "pedro.oliveira@aluno.edu.br",
"cpf": "11122233344",
"phone": "11977777777",
"course_code": "CC001"
}

Características

  • Depende de: Curso (Course)
  • Campo code aceita matrícula, CPF ou RA do sistema de origem
  • Sistema cria credenciais de acesso automaticamente
  • Pode ser suspenso sem ser removido via campo active: false

Um aluno pode estar matriculado em diversas turmas ao mesmo tempo, correspondentes às disciplinas do seu semestre. Em cada turma à qual pertence, o aluno tem acesso para visualizar as atividades disponíveis, enviar submissões e acompanhar suas notas.


12. Administrador (Admin)

Usuário com acesso administrativo completo ao painel ProExtend. Diferentemente dos demais perfis, o Administrador não é gerenciado via integração: é cadastrado diretamente no painel e possui permissões que vão além do escopo da API, como criar e revogar integrações, fazer edições manuais em turmas, reenviar convites de acesso e gerenciar outros usuários da plataforma.

Atributos

codestringobrigatório
Código único do administrador
namestringobrigatório
Nome completo
emailstringobrigatório
Email institucional (único)
cpfstringopcional
CPF: apenas 11 dígitos sem formatação, ex: 12345678901
phonestringopcional
Telefone: apenas dígitos, 10 a 11 caracteres
unit_codestringopcional
Código da unidade de atuação (deve existir se fornecido)
area_codestringopcional
Código da área de atuação (deve existir se fornecido)
course_codestringopcional
Código do curso de atuação (deve existir se fornecido)

Características

  • Não é criado nem atualizado via integração: gerenciado exclusivamente pelo painel ProExtend

Diferença: Disciplina Base vs Turma

A Disciplina Base é o registro permanente de um componente curricular no catálogo da instituição. Não está vinculada a curso, período letivo, professores ou alunos. A Turma é a instância dessa disciplina em um semestre específico: é nela que os cursos (via course_codes), professores e alunos são vinculados e as atividades acontecem.

Uma turma pode ter mais de um professor responsável via professor_codes, todos com o mesmo nível de acesso, e pode estar vinculada a um ou mais cursos via course_codes (obrigatório), permitindo que alunos de qualquer um desses cursos sejam matriculados. Uma mesma Disciplina Base pode originar turmas em semestres e cursos diferentes.

Boas Práticas

Regras de Validação de Campos

CampoRegraFormato/Exemplo
codeObrigatório, único por tipo de entidadeMáximo 255 caracteres
nameObrigatórioMáximo 255 caracteres
cpfOpcional, apenas 11 dígitos. Único entre perfis administrativos; pode se repetir entre matrículas do mesmo aluno"12345678901"
emailFormato válido. Único entre perfis administrativos; pode se repetir entre matrículas do mesmo aluno"usuario@dominio.com"
phoneOpcional, apenas dígitos"11999999999" (10-11 dígitos)
semesterFormato ano.período"2025.1", "2025.2"
codes de referênciaDevem existir previamentearea_code, unit_code, course_code, etc.

Validações automáticas:

  • CPF: Valida formato e dígitos verificadores (apenas 11 dígitos sem formatação)
  • Email: Valida formato. Unicidade exigida para perfis administrativos; não exigida para alunos (ver Aluno com múltiplas matrículas)
  • Phone: Aceita apenas dígitos numéricos
  • codes: valida unicidade dentro do tipo de entidade e tamanho máximo 255
  • Referências: Valida existência antes de criar vínculo

Utilização de Identificadores

Recomenda-se utilizar os identificadores já existentes no sistema de origem (ERP). Os exemplos abaixo são sugestões de formato, não obrigatórios. Consulte Identificadores e codes para mais detalhes.

  • Matrícula de professor: "PROF-2023-001"
  • Código de disciplina: "CC-ALG-001"
  • RA de aluno: "202410001"

Suporte

Para dúvidas sobre as entidades e conceitos, consulte a equipe técnica da ProExtend.