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