Конструктор тренажеров
Реализуйте сайт, с помощью которого пользователи смогут создавать свои тренажеры для заучивания информации.
Продумайте структуру базы данных для хранения пользователей, тренажеров и вопросов. Реализуйте регистрацию и авторизацию пользователей. Настройте серверную часть для работы с API. Все операции должны выполняться через AJAX-запросы без перезагрузки страницы.
Основные возможности проекта
- Регистрация и авторизация пользователей.
- Создание тренажеров с вопросами и ответами.
- Режим прохождения с таймером.
- Публичные и приватные тренажеры.
- Все операции выполняются через AJAX без перезагрузки страницы.
Регистрация и авторизация
На сайте должна быть реализована регистрация и авторизация пользователей:
- Регистрация - форма с полями: логин, email, пароль.
- Авторизация - форма с полями: логин, пароль.
- Тренажеры могут создавать только зарегистрированные пользователи.
Страница создания тренажера
На странице создания тренажера должны быть:
- Инпут для названия тренажера.
- Текстареа для описания тренажера.
- Переключатель: публичный или приватный тренажер.
- Форма для добавления вопросов и ответов (инпут для вопроса, инпут для ответа и кнопка "Добавить вопрос").
- Список добавленных вопросов с возможностью удаления и редактирования.
Список тренажеров
На странице списка тренажеров пользователь видит все свои тренажеры. Для каждого тренажера доступны действия:
- Перейти на страницу тренажера для прохождения.
- Перейти на страницу редактирования.
- Удалить тренажер (с подтверждением).
На главной странице отображаются публичные тренажеры всех пользователей с пагинацией.
Страница тренажера (прохождение)
На странице тренажера отображаются:
- Название тренажера.
- Описание тренажера.
- Таймер обратного отсчета.
- Текущий вопрос.
- Инпут для ввода ответа.
- Кнопка "Проверить".
- Прогресс (сколько вопросов пройдено из общего количества).
Принцип работы тренажера
При прохождении тренажера:
- Вопросы выводятся в случайном порядке.
- При правильном ответе переходим к следующему вопросу.
- При неправильном - граница инпута загорается красным цветом.
- Таймер обратного отсчета ограничивает время на прохождение.
- По истечении времени, если не все вопросы пройдены, тренажер провален.
Взаимодействие с сервером
Все операции выполняются через AJAX-запросы:
- При загрузке страницы данные загружаются с сервера.
- При создании, редактировании, удалении тренажера или прохождении вопросов данные отправляются на сервер, после успешного ответа обновляется интерфейс.
Дополнительные возможности
- Статистика прохождений тренажера.
- Лучший результат (минимальное время).