Conceitos Fundamentais
Introdução
Este documento detalha as entidades do sistema de integração ProExtend e seus relacionamentos.
Modelo de Dados
Hierarquia de Entidades
Instituição
├── Unidades (Units)
│ └── Áreas (Areas)
│ └── Cursos (Courses)
│ └── Disciplinas Base (Subjects)
│
├── Professores (Professors)
│
├── Alunos (Students)
│
└── Turmas (Enrollments)
├── Disciplina Base
├── Professor
└── Alunos
Entidades Detalhadas
1. Unidade (Unit)
Campus ou unidade física da instituição.
Atributos
- code: Código único da unidade (ex: "CAMPUS_CENTRO", "SEDE")
- name: Nome da unidade
- address: Endereço completo (opcional)
Exemplo
{
"code": "CAMPUS_CENTRO",
"name": "Campus Centro",
"address": "Rua Principal, 123 - Centro, São Paulo - SP"
}
Características
- Não depende de outras entidades
- Pode conter múltiplas áreas
- Deve ser sincronizada antes das demais entidades
2. Área (Area)
Área de conhecimento que agrupa cursos relacionados.
Atributos
- code: Código único da área (ex: "TECH", "HEALTH")
- name: Nome da área
- unit_code: Código da unidade (obrigatório, deve existir)
- responsible_email: Email do responsável (opcional)
Exemplo
{
"code": "TECH",
"name": "Tecnologia da Informação",
"unit_code": "CAMPUS_CENTRO",
"responsible_email": "coord.tech@faculdade.edu.br"
}
Características
- Depende de: Unidade
- Agrupa cursos relacionados
- Pode ter coordenador responsável
3. Curso (Course)
Curso de graduação ou pós-graduação oferecido pela instituição.
Atributos
- code: Código único do curso (ex: "CC001", "ENF001")
- name: Nome do curso
- description: Descrição detalhada (opcional)
- area_code: Código da área (obrigatório, deve existir)
- unit_code: Código da unidade (obrigatório, deve existir)
- responsible_email OU responsible_code: Coordenador do curso
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",
"responsible_code": "PROF001"
}
Características
- Depende de: Unidade e Área
- Pode usar
responsible_email(email) OUresponsible_code(code do usuário) - Se ambos forem fornecidos,
responsible_codetem prioridade
4. Disciplina Base (Subject)
Componente curricular que faz parte da grade do curso.
Atributos
- code: Código único da disciplina (ex: "ALG001", "LIBRAS")
- name: Nome da disciplina
- description: Ementa ou descrição (opcional)
- course_code: Código do curso (obrigatório, deve existir)
- type: Tipo da disciplina (opcional, padrão: "obrigatoria")
obrigatoria: Disciplina obrigatóriaoptativa: Disciplina optativaeletiva: Disciplina eletiva
Exemplo
{
"code": "ALG001",
"name": "Algoritmos e Programação I",
"description": "Introdução a algoritmos e lógica de programação",
"course_code": "CC001",
}
Características
- Depende de: Curso
- Representa componente curricular permanente (sem vínculo com período letivo ou alunos)
- Utilizada como base para criação de Turmas
5. Professor (Professor)
Docente que leciona disciplinas na instituição.
Atributos
- code: Código único do professor (matrícula, CPF ou código funcional)
- name: Nome completo
- email: Email institucional (obrigatório, único)
- cpf: CPF (obrigatório, 11 dígitos)
- phone: Telefone (opcional)
- area_code: Código da área de atuação (opcional)
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)
- Email deve ser único
- CPF deve ser único
- Sistema cria credenciais de acesso automaticamente
- Pode ser vinculado a múltiplas turmas
6. Aluno (Student)
Discente matriculado em um curso da instituição.
Atributos
- code: Código único do aluno (matrícula, CPF ou RA)
- name: Nome completo
- email: Email institucional (obrigatório, único)
- cpf: CPF (opcional, se fornecido deve ter 11 dígitos e ser único)
- phone: Telefone (opcional)
- course_code: Código do curso (obrigatório, deve existir)
Exemplo
{
"code": "ALU2024001",
"name": "Pedro Oliveira Santos",
"email": "pedro.oliveira@aluno.edu.br",
"cpf": "11122233344",
"phone": "11977777777",
"course_code": "CC001"
}
Características
- Não depende de outras entidades, exceto Curso
- Email deve ser único
- Campo
codeaceita matrícula, CPF ou RA do sistema origem - Sistema cria credenciais de acesso automaticamente
- Pode ser vinculado a múltiplas turmas
7. Turma (Enrollment)
Instância de uma Disciplina Base em período letivo específico, com professor responsável e alunos matriculados.
Atributos
- code: Código único da turma (ex: "ALG001-2025.1", "TURMA001")
- subject_code: Código da disciplina base (obrigatório, deve existir)
- professor_code: Código do professor responsável (obrigatório, deve existir)
- semester: Período letivo (obrigatório, formato: "YYYY.N")
- student_codes: Array de códigos de alunos (obrigatório, devem existir)
Exemplo
{
"code": "ALG001-2025.1",
"subject_code": "ALG001",
"professor_code": "PROF001",
"semester": "2025.1",
"student_codes": ["ALU2024001", "ALU2024002", "ALU2024003"]
}
Características
- Depende de: Disciplina Base, Professor e Alunos
- Representa oferta de disciplina em período letivo
- Vincula disciplina, professor, alunos e período acadêmico
- Sincronizações com
codeexistente atualizam professor e lista de alunos - Alunos removidos da lista são automaticamente desvinculados da turma
Diferença: Disciplina Base vs Turma
Distinção fundamental do modelo de dados:
Disciplina Base (Subject)
Registro permanente do componente curricular no catálogo do curso.
{
"code": "ALG001",
"name": "Algoritmos e Programação I",
"course_code": "CC001"
}
- Sem vínculo com período letivo
- Sem vínculo com professor
- Sem vínculo com alunos
- Utilizada como base para criação de turmas
Turma (Enrollment)
Instância da disciplina base em período letivo específico, com professor e alunos vinculados.
{
"code": "ALG001-2025.1",
"subject_code": "ALG001",
"professor_code": "PROF001",
"semester": "2025.1",
"student_codes": ["ALU2024001", "ALU2024002"]
}
- Vinculada a período letivo específico
- Vinculada a professor responsável
- Vinculada a alunos matriculados
- Representa oferta efetiva da disciplina
Campos Obrigatórios vs Opcionais
Resumo por Entidade
| Entidade | Campos Obrigatórios | Campos Opcionais |
|---|---|---|
| Unidade (Unit) | code, name | address |
| Área (Area) | code, name, unit_code | responsible_email |
| Curso (Course) | code, name, area_code, unit_code, responsible* | description |
| Disciplina Base (Subject) | code, name, course_code | description, type |
| Professor (Professor) | code, name, email, cpf | phone, area_code |
| Aluno (Student) | code, name, email, course_code | cpf, phone |
| Turma (Enrollment) | code, subject_code, professor_code, semester, student_codes | - |
* Course requer responsible_email OU responsible_code
Boas Práticas
Regras de Validação de Campos
| Campo | Regra | Formato/Exemplo |
|---|---|---|
| code | Obrigatório, único por tipo de entidade | Alfanumérico, até 100 caracteres |
| cpf | 11 dígitos, único (quando fornecido) | "12345678901" (apenas números) |
| Formato válido, único | "usuario@dominio.com" | |
| phone | Opcional, formato flexível | "11999999999" ou "(11) 99999-9999" |
| semester | Formato ano.período | "2025.1", "2025.2" |
| codes de referência | Devem existir previamente | area_code, unit_code, course_code, etc. |
Validações automáticas:
- CPF: Valida formato e dígitos verificadores
- Email: Valida formato e unicidade
- Codes: Valida unicidade dentro do tipo de entidade
- Referências: Valida existência antes de criar vínculo
Utilização de Identificadores
Utilize identificadores existentes no sistema origem (ERP):
- Matrícula de professor:
"PROF-2023-001" - Código de disciplina:
"CC-ALG-001" - RA de aluno:
"202410001"
Os identificadores devem corresponder aos codes já utilizados no ERP institucional.
Glossário
- Unidade (Unit): Campus ou unidade organizacional da instituição
- Área (Area): Área de conhecimento que agrupa cursos relacionados
- Curso (Course): Programa acadêmico de graduação ou pós-graduação
- Disciplina Base (Subject): Componente curricular permanente (sem vínculo temporal)
- Turma (Enrollment): Instância de disciplina base em período letivo, com professor e alunos
- Professor (Professor): Docente responsável por ministrar disciplinas
- Aluno (Student): Discente matriculado em curso
- Code: Identificador único do sistema origem (ERP)
- Período Letivo (Semester): Semestre acadêmico (formato "YYYY.N")
Próximos Passos
- Configure Autenticação
- Siga o Fluxo de Sincronização
- Entenda Identificadores e Codes
Suporte
Para dúvidas sobre as entidades e conceitos, consulte a equipe técnica da ProExtend.