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