-
Notifications
You must be signed in to change notification settings - Fork 2
Modelo entidade relacionamento
O objetivo desta página é dar uma visão geral, e também mais particular de alguns conceitos importantes, dos relacionamentos entre os modelos da aplicação.
Os diagramas apresentados nesta página foram gerados com a gem rails-erd
. A notação de Charles Bachman (1992) foi usada para indicar se um relacionamento é opcional (ponto aberto) ou obrigatório (ponto fechado). Mais detalhes sobre o significado de cada tipo de relacionamento pode ser encontrado na documentação do projeto Rails ERD.
Os diagramas estão simplificados (sem atributos), mas é possível ter acesso a um PDF com a versão completa (com atributos) clicando na imagem. Nos conceitos mais específicos alguns relacionamentos também foram removidos para simplificar os pontos principais.
Além dos diagramas gerado pelo Rails ERD, outro diagrama geral (em SVG — podem ser abertos nos navegadores) foi gerado com a gem railroady
: versão breve / completa.
Neste diagrama temos uma visão geral de todos os modelos encontrados no projeto do Openredu:
Um dos conceitos principais do projeto é a hierarquia do Ambiente Virtual de Aprendizagem (AVA). Ela pode ser resumida em:
Ambiente (Environment)
├── Curso (Course)
│ ├── Disciplina (Space)
│ │ ├── Módulo (Subject)
│ │ │ ├── Aula (Lecture)
Um curso (Course
) pode possuir várias disciplinas.
Uma disciplina (Space
) é um agrupamento de módulos. Toda disciplina possui um mural próprio e uma área para arquivos de apoio (Folder
).
Um módulo (Subject
) é um agrupamento de aulas.
Existem vários tipos de aulas (Lecture
): em texto, documento, vídeo, exercício. Cada aula possui seu próprio mural onde os alunos podem fazer comentários ou pedir ajuda.
O exercício (Exercise
) é um dos tipos de aulas disponíveis. Ele é feito de questões (Question
) com alternativas (Alternative
), respostas (Choice
) e resultados (Result
).
O modelo de usuário (User
) talvez seja o modelo com mais relacionamentos do projeto. Associado ao perfil do usuário você tem informações sobre escolaridade (Education
), experiências profissionais (Experience
), redes sociais que é membro (SocialNetwork
), configurações de conta (UserSetting
), entre outros.
Os usuários estão conectados entre uns aos outros através do relacionamento de amizade (Friendship
). Além de poder postar mensagens nos murais dos seus contatos, eles também podem enviar mensagens privadas (Message
).
Eles podem ter sido convidados a participar da aplicação (Invitation
), bem como participar de cursos.
Eles estão associados por toda hierarquia da AVA, participando nos papéis de alunos, tutores, professores e/ou administradores.
Os murais são formados por mensagens (comumente chamados de "status"/Status
) deixados pelos usuários em seus murais, de outros usuários, de disciplinas e de aulas. Estes status podem ser comentados (Answer
) e conter links embedáveis (StatusResource
). Além disso eles também são compostos por várias ações do usuário como, confirmação de amizades e matrícula em cursos, atualizações de perfil, entre outros. Muitas vezes essas ações similares são agrupadas em "logs"(CompoundLog
) a fim de evitar repetições.
O mural pode ser encontrado na:
- Visão Geral: confirmação de pedidos de amizades, confirmação de matrícula em cursos, entre outros.
- Meu Mural: status pessoais do usuário.
- Mural da Disciplina
- Mural da Aula