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