Materia { grau: number, nome: string, especializacao: string[] } Professor { avaliacoes: Avaliacao_Professor[], email: string, senha: string, nota_media: float, nome: string, endereco: string, data_nascimento: date, agenda: date[], materia: materia[], lattes: string, diploma: string, //temporario biografia: string, aula: Aula[] } Aluno { avaliacoes: Avaliacao_Aluno[] responsavel: bool, quantidade_resp: number, email: string, senha: string, nota_media: float, nome: string, endereco: string, data_nascimento: date, agenda: date[], materia: materia[], lattes: string, diploma: string, //temporario biografia: string, aula: Aula[] } Avaliacao_Aluno { avaliador: Professor, avaliado: Aluno, nota: number, comentario: string, aula: Aula, } Avaliacao_Professor { avaliador: Aluno, avaliado: Professor, nota: number, comentario: string, aula: Aula, } Aula { professor: Professor, aluno: Aluno, horario: date, local: string[], status: string, materia: Materia, }