Тест с обратным отсчетом включен при открытии - PullRequest
0 голосов
/ 21 мая 2019

Как я могу реализовать онлайн-приложение, которое отправляет электронные письма выбранным пользователям. Письмо содержит ссылку, которая доступна в течение 3 дней после отправки письма. Если пользователь щелкает ссылку до истечения срока ее действия, он открывает новое окно / вкладку браузера с пользовательскими вопросами и таймером обратного отсчета, который начинается при загрузке окна. Начиная с этого момента, без паузы, у них есть ровно 1 час, чтобы ответить на вопросы.

Тест будет отправлен пользователем или автоматически со всеми ответами после того, как таймер достигнет 60 минут.
Пользователь может видеть оставшееся время (обновление в реальном времени где-то в пользовательском интерфейсе). Если возможно, я бы хотел реализовать это таким образом, чтобы, если пользователь случайно закрыл вкладку, он мог открыть ее снова со всеми сохраненными ответами.

В настоящее время мы работаем с Java / Spring Boot (REST API - backend), ReactJS (внешний интерфейс) + база данных MySQL.

Мы не знаем точно, как мы должны искать ключевые слова, необходимые для этой логики истечения срока действия ссылки электронной почты. Метод входа в систему, создание теста и его отправка пользователю вместе со структурой базы данных нам понятны. Мы ценим любую помощь или идеи по реализации (или даже технологии)

1 Ответ

0 голосов
/ 22 мая 2019

Идея заключалась в том, чтобы генерировать каждую викторину с определенным случайным токеном, например:

04e69b43-f6e2-4a6b-835b-dd58c95e41810

Затем отправьте электронное письмо конкретному человеку myapp.com/quizz?token=token.Задание CRON в бэкэнде проверит дату создания теста и проверит, прошло ли 3 дня, не оцениваясь впервые, и пометит тест как истекший, если это так (конечно, когда ссылка будет оценена, а тест закончен)появится сообщение об ошибке).

Если тест не истек и пользователь нажимает, автоматически запустите тест и сохраните в базе данных firstClickTime и expirationTime = firstClick + 1h. Интерфейс будет отправлять каждую минуту JSONсо всем, что он написал до сих пор, чтобы предотвратить потерянные ответы, если он закрывает вкладку.

Конечно, есть и другие мелкие детали, но в этом вся идея.

...