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