打开后启用倒计时的测验

时间:2019-05-21 13:34:39

标签: mysql angular reactjs typescript spring-boot

如何实现将电子邮件发送给选定用户的在线应用程序。该电子邮件包含一个链接,该链接在发送电子邮件后的3天内可用。如果用户在链接失效之前单击该链接,则他们将打开一个新的浏览器窗口/选项卡,其中包含用户特定的问题以及一个从窗口加载开始的倒数计时器。从那一刻开始,不允许有任何停顿,他们只有1个小时可以回答问题。

计时器到60分钟后,测验将由用户或所有答案自动提交。
用户可以看到剩余时间(在UI中的某处更新实时时间)。 如果可能的话,我希望以某种方式实现它,如果用户不小心关闭了选项卡,他可以在保存所有答案的情况下再次打开它。

我们目前正在使用Java / Spring Boot(REST API-后端),ReactJS(前端)+ MySQL数据库。

我们不知道我们应该如何搜索该电子邮件链接到期逻辑所需的关键字。登录方法,测验的创建以及将其与数据库结构一起发送给用户的方式对我们来说都是显而易见的。 我们感谢任何帮助或实施的想法(甚至技术)

1 个答案:

答案 0 :(得分:-1)

想法是使用特定的随机标记生成每个测验,如下所示:

obstacles

然后,将电子邮件发送给特定的人04e69b43-f6e2-4a6b-835b-dd58c95e41810 。 后端的CRON作业将检查测验的创建日期,并检查是否有3天没有经过第一次评估,如果是这样,则将测验标记为已过期(当然,链接评估且测验已过期的时间) ,将显示一条错误消息。)

如果测验未过期并且用户单击,则自动启动测验并将firstClickTime和expirationTime = firstClick + 1h保存在数据库中。前端将每分钟发送一个JSON,其中包含到目前为止已编写的所有内容,以防止丢失任何答案如果他关闭标签。

当然,还有其他一些小细节,但这就是整个想法。