Об этом проекте

## Обзор GRE 镇考 3000 — это чисто фронтендное прогрессивное веб-приложение (PWA) для изучения лексики GRE, разработанное специально для готовящихся к экзамену GRE. Оно включает полный словарь «GRE 镇考 3000 词 (乱序版)» (всего 3275 словарных статей с китайскими толкованиями, транскрипцией и английскими примерами) и использует кривую забывания Эббингауза для планирования интервалов повторения, помогая пользователям эффективно запоминать слова. ## Основные функции - **Ежедневные новые слова**: по умолчанию изучается 100 новых слов в день, количество можно изменить в настройках (50–150, шаг 10). Новые слова выбираются из неизученных слов в порядке перемешанного списка. - **Интервальные повторения по Эббингаузу**: у каждой карточки 8 стадий (0–7), интервалы от 8 минут до 15 дней, с динамической корректировкой коэффициента ease в зависимости от ответов пользователя (начальное значение 2.5, правильный ответ +0.1, неправильный −0.2), фактическое время ожидания = базовый интервал × (ease / 2.5). - **Тип заданий для повторения**: показывается английское слово, нужно выбрать правильный вариант из 4 китайских толкований (1 правильный + 3 отвлекающих). - **Офлайн-доступность**: словарь поставляется вместе с приложением, после первого открытия Service Worker кэширует оболочку приложения и данные словаря, после чего слова можно учить даже без сети. - **Устанавливаемое PWA**: поддерживает добавление на главный экран телефона (iOS Safari / Android Chrome) и запуск в отдельном окне. - **Настольное приложение**: доступен установочный пакет для macOS (сборка Electron), также можно локально собрать версию для Linux. - **Горячие клавиши**: на странице новых слов пробел/Enter разворачивает толкование, 1/2/3 отмечают «не знаю»/«смутно помню»/«знаю»; на странице повторения 1–4 выбирают ответ, пробел/Enter — следующий вопрос. ## Интерфейс и навигация Четыре вкладки внизу: - **Сегодня**: панель прогресса, показывает статус обучения за день, количество дней непрерывных занятий и т. д. - **Учить**: страница изучения новых слов, слово сверху, толкование по умолчанию скрыто, разворачивается по клику на карточку или нажатию пробела. Снизу три кнопки: не знаю, смутно помню, знаю. - **Повторять**: страница повторения, слово сверху, четыре варианта расположены вертикально. - **Словарь**: фильтрация по категориям «не изучено», «в процессе повторения», «освоено», толкование показывается только при открытии слова. Слова, перешедшие на 7-дневную стадию, считаются освоенными. ## Техническая реализация - **Фронтенд-фреймворк**: сборка на основе Vite, используется React (или аналогичный фреймворк, явно не указан, но соответствует современной фронтенд-практике). - **Поддержка PWA**: через vite-plugin-pwa (Workbox) генерируются Web App Manifest и Service Worker, реализуются офлайн-кэширование и возможность установки. - **Хранение данных**: весь прогресс обучения хранится в localStorage браузера (ключ gre3000.vocab.v1), без зависимости от бэкенд-сервера. - **Парсинг словаря**: исходный словарь взят из PDF «GRE 镇考 3000 词 (乱序版)», с помощью Python-скрипта (pymupdf) выполнены разбор таблиц, удаление водяных знаков, объединение перенесённых слов, дедупликация и генерация JSON-файла. ## Использование ### Онлайн Просто откройте https://gre-3000-vocab.vercel.app и начните учиться. Рекомендуется добавить на главный экран телефона для наилучшего опыта. ### Локальный запуск ```bash git clone https://github.com/jayden-dong411/gre-3000-vocab.git cd gre-3000-vocab npm install npm run dev ``` Сервер разработки по умолчанию работает на http://127.0.0.1:43173. ### Продакшен-сборка ```bash npm run build npm run preview ``` Результат сборки находится в каталоге dist/ и может быть развёрнут на любом статическом хостинге. ### Настольное приложение Скачайте установочный пакет macOS из GitHub Releases или запустите локально `npm run desktop` для открытия окна напрямую, `npm run pack:mac` / `npm run pack:linux` для сборки дистрибутива. ## Примечания - При смене устройства прогресс обучения не синхронизируется (данные хранятся локально в браузере). - Для установки на главный экран телефона требуется HTTPS (кроме localhost). - Установочный пакет macOS не нотаризован Apple, при первом открытии система может заблокировать его, для снятия блокировки выполните в терминале команду `xattr -cr`. ## Итог GRE 镇考 3000 — это полнофункциональный и хорошо продуманный инструмент для изучения лексики GRE, который в полной мере использует офлайн-возможности и устанавливаемость PWA, а также предлагает поддержку настольного приложения. Его алгоритм повторения по Эббингаузу учитывает результаты ответов пользователя и является более гибким, чем фиксированные интервалы. Источник словаря ясен, процесс парсинга прозрачен. Подходит для готовящихся к GRE, которым нужно систематически заучивать лексику.