Projeto da disciplina de Grafos - Sistema de Recomendação de Oportunidade
Sistema de recomendação de oportunidades dentro do Campus para os alunos com base em habilidades e interesses do aluno.
Para te contextualizar, na faculdade existem:
-
Horas complementares (qualquer atividade extra curricular, por exemplo, cursos, iniciação científica, etc)
-
Horas de extensão (alguns projetos fornecidos pela universidade com foco em impacto social)
-
Horas de estágio (alguns laborários de professores dão horas de estágio para alunos que participarem de alguns desenvolvimento, além das horas comprovadas por estágios em empresas)
Com isso o objetivo é criar um local para centralizar e impulsionar a divulgação de oportunidades dentro da faculdade tanto para os professores quanto para alunos, pois várias oportunidades acabam não sendo divulgadas adequadamentes e acabam se perdendo.
E o sistema de recomendação de oportundiades para os alunos vem como uma forma de realizar essa divulgação de forma mais uniforme (distribuir os interesses de oportunidades mais concorridos para outras similares, porém menos procuradas por falta de divulgação)
Modelagem
public enum NodeType {
ALUNO,
OPORTUNIDADE,
HABILIDADE,
TEMA
}
public class Node {
private final String id;
private final NodeType type;
private final Map<String, Object> properties;
}
public class Edge {
private final Node source;
private final Node target;
private final RelationType type;
}
public enum RelationType {
// ALUNO -> HABILIDADE
POSSUI_HABILIDADE,
// ALUNO -> TEMA
TEM_INTERESSE_EM,
// OPORTUNIDADE -> HABILIDADE
REQUER_HABILIDADE,
// OPORTUNIDADE -> TEMA
RELACIONADA_A_TEMA
}
// Persistido no banco de dados
public class Aluno {
private String id;
private String nome;
private String email;
private String senha;
}
// Persistido no banco de dados
public class Oportunidade {
private String id;
private String titulo;
private String descricao;
private String linkInscricao;
private LocalDate dataLimiteInscricao;
}