Quiz game - Crie perguntas, respostas e histórico para administradores
Estou trabalhando em um jogo que tem dois tipos de usuário; administrador e usuário, para que o administrador possa gerar quantas perguntas ele quiser, para que essas perguntas possam serNORMAL, MULTICHOICE, BINARI, SMALL_DESCRIPTION
, sempre que o administrador desejar criar uma, ele deve decidir qual tipo de resposta deseja esta pergunta, também o tópico desta pergunta (pode ser um subtópico
Ele pode gerar um questionário, a maneira de gerar um questionário é que ele precisa selecionar as perguntas que criou ante
Além disso, ele pode verificar o histórico do usuário, significa que, com uma chamada para um endpoint, ele poderá verificar as perguntas que esse usuário fez (com a pontuação, qual pergunta falhou, o que ele respondeu
Tenho a partir de agora as aulasQuestion
eAnswer
mas estou meio preso com a pergunta gerar com resposta atribuída a um tópico e, em seguida, criando um questionário, porque também sinto falta do usuário nas duas partes, para saber qual usuário criou a pergunta / questionário e qual usuário respondeu à pergunta / teste e armazene alguns dados para fazer o histórico.
classe @My Question possui:
@Entity(name="question") public class Question extends DateAudit { @Id @Column(name = "question_id") @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "question_seq") @SequenceGenerator(name = "question_seq", allocationSize = 1) private Long id; @Column(name = "text_question") private String textQuestion; //The question itself "What's the name of ..." @Column(name = "answerDescription") @NotBlank(message = "Answer description") private String answerDescription; //The answer to the question as an explanation @Column(name = "isExamQuestion", nullable = false) private Boolean isExamQuestion; //A flag for the user to filter when he wants to do a question he only will see those that are not isExamQuestion, isExamQuestion are the questions that are going to appear when he wants to create a Quiz @OneToMany(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE }) private Set<Answer> answers; //List of answers... @Column(name = "answer_type", nullable = false) private String answerType; //I don't know if it goes here, but the answerType mentioned before NORMAL,MULTICHOICE,.... is to render on the user app
E a resposta
@Entity(name = "answer")
public class Answer extends DateAudit {
@Id
@Column(name = "answer_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "answer_seq")
@SequenceGenerator(name = "answer_seq", allocationSize = 1)
private Long id;
@Column(name = "answerToQuestion")
@NotBlank(message = "Answer to question name can not be blank")
private String answerToQuestion; //If the questions is what's 2*2 this could be 3
@ManyToOne
private Question question; //In what question appear that answer
//Here I'm wondering if I have to add a flag saying isCorrect to detect if it's the correct answer or not
Como você pode ver, estou sentindo falta do material do tópico, do histórico e do questionário, e não estou fazendo referência a qual usuário fez a pergunta, ou questionário, ou resolveu o questionário, por favor, me guie como fazer isso ?
EDITAPerguntas que recebi:
a pergunta é direcionada apenas a um usuário ou a um grupo de usuários?
A mesma pergunta ou questionário pode ser respondida para usuários diferentes, o que significa que o primeiro trimestre pode ser feito por 40 usuário
o questionário está relacionado ao tópico?
Ao criar um teste, você seleciona um tópico para selecionar as perguntas que possuem esse tópico. Exemplo: Criando um questionário de Aprenda a somar Vou ter que filtrar por tópico: Matemática e, em seguida, um SubTópico, para poder escolher as perguntas a serem inseridas no Questionário.
como planeja criar um tópico ou subtópico?
@Admin deve ter um ponto de extremidade para criar tópico ou subtópico, a partir de agora só existe um subtópico, não há subtópico de um subtópico, a partir de agora é Tópico: Matemática Subtópico: raiz quadrada. Portanto, antes de criar uma pergunta ou um questionário, o administrador deve primeiro criar um Tópico e, se ele quiser adicionar um subtópico, crie um. Assim, quando ele tentar criar uma Pergunta, ele poderá dizer que essa pergunta é do X topic / subtópico e essa pergunta pode ser atribuída a iss
O que você quer dizer com "histórico"?
Bem, isso é algo para o lado do administrador, o administrador deve ter um ponto de extremidade que, com um ID ou nome do usuário, retorne todo o questionário (primeiro ponto de extremidade) ou todas as perguntas (segundo ponto de extremidade) que o usuário fez, com a pontuação, número de falhas / número de corretas, mas estou imaginando que esse deve ser o front end. Faça o cálculo, ou seja, o endpoint retorna todas essas informações, Total de perguntas / teste realizado, Pontuação, que pergunta falhou, etc .. e, em seguida, no front-end, faça mais cálculo