Está sendo utilizado o banco de dados MongoDB.
MongoDB é um software de banco de dados orientado a documentos livre, de código aberto e multiplataforma, escrito na linguagem C++. Classificado como um programa de banco de dados NoSQL, o MongoDB usa documentos semelhantes a JSON com esquemas. É desenvolvido pela MongoDB Inc. e publicado sob uma combinação da GNU Affero General Public License e Licença Apache. Suas características permitem com que as aplicações modelem informações de modo muito mais natural, pois os dados podem ser aninhados em hierarquias complexas e continuar a ser indexáveis e fáceis de buscar. O desenvolvimento de MongoDB começou em outubro de 2007 pela 10gen, atual MongoDB Inc., e sua primeira versão pública foi lançada em fevereiro de 2009.
Referência: https://pt.wikipedia.org/wiki/MongoDB
Universo de discurso
O projeto Easy Class tem por objetivo entregar uma ferramenta que modernize o fluxo de agendamento de aulas particulares de conteúdos do ensino médio. A ideia é o desenvolvimento de um aplicativo onde seja possível que o aluno procure por matérias e professores, podendo realizar a marcação de aulas diretamente em uma agenda previamente disponibilizada pelo professor.
O professor que desejar dar aulas deverá realizar um cadastro que será validado posteriormente. Caso seja aceito, será liberado o uso da aplicação.
A validação do cadastro do professor será feita através de uma aplicação web, acessível somente pelos Stakeholders, com usuários administrativos.
Alunos que desejarem buscar aulas também deverão realizar um cadastro, sem a necessidade de uma validação posterior.
Alunos poderão avaliar os professores após a aula, da mesma forma que os professores poderão avaliar os alunos.
Entidades extraídas do universo de discurso
- Professor
- Aluno
- Aulas
- Conteúdos/Matérias
- Avaliação do aluno
- Avaliação do professor
- Usuário administrativo web
``` Materia { grau: Number, nome: String, especializacoes: String[] }
Professor {
nome: String,
email: String,
senha: String,
endereco: String,
revisado: boolean,
lattes: String,
diploma: String,
biografia: String,
notaMedia: Float,
dataNascimento: Date,
agenda: Date[],
materias: Materia[],
avaliacoes: AvaliacaoProfessor[],
aulas: Aula[],
camposInvalidos: String[],
localAula: String
}
Aluno {
nome: String,
email: String,
senha: String,
endereco: String,
responsavel: Boolean,
numeroDependentes: Number,
notaMedia: Float,
dataNascimento: Date,
avaliacoes: AvaliacaoAluno[]
materiasDificuldade: Materia[],
aulas: Aula[]
}
AvaliacaoAluno{ avaliador: Professor, avaliado: Aluno, nota: Number, comentario: String, aula: Aula }
AvaliacaoProfessor { avaliador: Aluno, avaliado: Professor, nota: Number, comentario: String, aula: Aula, }
Aula { professor: Professor, aluno: Aluno, horario: Date, local: String[], status: String, materia: Materia }