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