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

## О проекте «Помощник для подготовки к „专升本“» — это приложение для управления учебным процессом абитуриентов, сдающих вступительный экзамен в вузы Китая. Доступны веб-версия (PWA) и настольные клиенты для Windows/macOS. Облачная синхронизация аккаунта и данных реализована на Cloudflare Workers + D1 + R2: после регистрации записи обучения保持一致 на всех устройствах. Основная идея — замкнуть цикл «запись → фокус → мотивация → рефлексия» в единый процесс. ### Почему этот проект - **Полный цикл обучения**: ежедневные отметки, Pomodoro-таймер, прорешивание задач и разбор ошибок, вечерние итоги — всё в одном инструменте, без переключения между приложениями. - **Облачная синхронизация**: после регистрации данные полностью синхронизируются (Cloudflare D1); PWA кэширует данные, позволяя просматривать последнюю версию офлайн. - **Геймификация**: ранги от бронзы до короля, стена значков, история очков, серия дней обучения — превращает рутину в квест. - **Углублённая подготовка по математике и английскому**: дерево глав по программе, заметки с Markdown+LaTeX, интеграция с приложением «墨墨背单词» для ежедневного повторения, шаблоны для заданий на заполнение пропусков, чтение, аудирование и эссе. - **Pomodoro с описанием задачи**: прямой и обратный отсчёт, поле для описания текущей задачи; отдельный блок «недавно завершённые» показывает время, длительность и задачу каждого помидора. - **Сообщество и учебные партнёры**: посты, обсуждения, круги по интересам, личные сообщения и уведомления; поиск напарника для совместных занятий, командные челленджи, совместные планы и приглашения к рефлексии. - **Наглядная аналитика**: ECharts для распределения времени, динамики точности по предметам, анализа фокуса. - **Десктоп + PWA**: нативные клиенты с треем, системными уведомлениями и автообновлением; веб-версия устанавливается как PWA с офлайн-кэшем. ### Функциональность | Категория | Возможности | | :--- | :--- | | Учебные записи | Дерево глав и уровень освоения, учёт времени, сессии решения задач, журнал ошибок, записи пробных экзаменов, ежедневные задачи | | Заметки и материалы | Заметки Markdown+KaTeX, библиотека материалов, загрузка PDF и чтение по частям | | Английский | Отметки по словам (интеграция с 墨墨背单词), заполнение пропусков, чтение, аудирование, шаблоны эссе и ежедневные цели | | Pomodoro | Прямой/обратный отсчёт, описание задачи, детали недавних сессий, запись причин прерывания, обои для фокуса | | Привычки и рефлексия | Отметки привычек и статистика, ежедневное резюме (настроение + трёхчастная рефлексия + план на завтра), карточки для шеринга | | Мотивация | Очки и история, шесть рангов, стена значков, серия дней | | Сообщество | Посты и комментарии, лайки, тематические круги, обсуждение знаний, личные сообщения, подписки и центр уведомлений | | Совместная работа | Командные челленджи и прогресс, учебные партнёры, виртуальные комнаты для совместной учёбы, совместные планы, еженедельные отчёты | | Аккаунт и безопасность | Регистрация/вход (bcrypt + JWT HttpOnly Cookie), Cloudflare Turnstile, ограничение запросов, локальный словарь нецензурных слов + повторная проверка Workers AI | | Персонализация | Обратный отсчёт до экзамена, темы и тёмный режим, напоминания и «не беспокоить», обрезка аватара, гостевой режим | ### Технический стек | Уровень | Технологии | | :--- | :--- | | Фронтенд | Vue 3 (`<script setup>`), TypeScript, Vite 5, Vue Router 4, Pinia 2, Tailwind CSS 3 | | Визуализация/контент | ECharts 5, KaTeX 0.16, markdown-it, pdfjs-dist | | Десктоп | Electron 43, electron-builder, electron-updater | | PWA | vite-plugin-pwa (установка + Service Worker офлайн-кэш) | | Бэкенд | Cloudflare Workers (TypeScript), bcryptjs, jose для JWT | | Данные | Cloudflare D1 (более 50 таблиц), R2 (хранение изображений сообщества) | | Инженерия | ESLint, tsc --noEmit, два пайплайна GitHub Actions | ### Быстрый старт **Требования**: Node.js 18 или выше ```bash git clone https://github.com/Han050912/zsb-study-tracker.git cd zsb-study-tracker npm install npm run dev ``` **Запуск бэкенд-воркера (обязательно для локальной разработки)**: ```bash cd worker npm install npm run init:local npx wrangler dev ``` **Десктоп-клиент**: ```bash npm run electron:dev ``` **Сборка**: ```bash npm run dist:win # Windows npm run dist:mac # Mac ``` ### Деплой В проекте два пайплайна GitHub Actions, слушающих ветку master: фронтенд разворачивается на GitHub Pages, бэкенд — на Cloudflare Workers. Требуется настроить секреты CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID и другие. ### Вклад в проект Приветствуется любой вклад! Процесс: Fork → новая ветка (feat/xxx или fix/xxx) → проверка кода → PR в ветку development. Используйте TypeScript, Tailwind CSS, иконки SVG (Lucide), следуйте Conventional Commits. ### Лицензия Проект распространяется под лицензией MIT.