Sobre el proyecto

## Introducción del proyecto El Asistente de estudio para 专升本 es una aplicación de gestión de estudio para candidatos al examen de promoción, con versión Web (PWA) y escritorio Windows/macOS. Cloudflare Workers + D1 + R2 proporcionan cuenta en la nube y sincronización de datos; tras registrarse, los registros de estudio se mantienen consistentes entre Web y escritorio. Posicionamiento central: unir «registro → concentración → motivación → revisión» en un ciclo de estudio completo. ### Por qué elegir este proyecto - **Ciclo de estudio integral**: registro diario, Pomodoro, práctica y cuaderno de errores, resumen nocturno; todo el proceso de preparación en una sola herramienta, sin cambiar entre apps. - **Sincronización multidispositivo en la nube**: tras registrarse, los datos se sincronizan completamente en la nube (Cloudflare D1); Web y escritorio continúan en cualquier momento; PWA almacena en caché y permite ver el último contenido sin conexión. - **Gamificación para perseverar**: rangos Bronce→Plata→Oro→Platino→Diamante→Rey, muro de insignias, flujo de puntos y racha de días de estudio, convirtiendo la preparación en una experiencia de niveles. - **Refuerzo específico de matemáticas e inglés**: árbol de capítulos del temario, notas Markdown+LaTeX, integración con la app «墨墨背单词» para registrar vocabulario, plantillas para cloze, lectura, listening y composición. - **Pomodoro con descripción de tarea**: modos cronómetro directo y cuenta regresiva; se puede escribir la tarea antes de empezar; sección «Recientes completados» registra hora, duración y tarea de cada Pomodoro. - **Plaza comunitaria y compañeros de estudio**: publicaciones, círculos, mensajes privados y notificaciones; busca compañeros para estudiar juntos, desafíos en equipo, planes colaborativos e invitaciones a revisión. - **Gráficos claros**: distribución de tiempo de estudio, tendencia de precisión por materia y análisis de concentración con ECharts. - **Escritorio + PWA**: clientes nativos Windows/macOS con bandeja del sistema, notificaciones nativas y actualización automática; versión Web instalable como PWA con caché offline. ### Características | Categoría | Funciones | | :--- | :--- | | Registro de estudio | Árbol de capítulos y dominio, tiempo de estudio, sesiones de práctica, cuaderno de errores, registros de simulacros, tareas diarias | | Notas y materiales | Notas Markdown+KaTeX, biblioteca de materiales, subida de PDF y lectura por fragmentos | | Inglés | Registro de vocabulario (con 墨墨背单词), cloze, lectura, listening, plantillas de composición y objetivos diarios | | Concentración Pomodoro | Cronómetro directo/cuenta regresiva, descripción de tarea, detalle de completados recientes, registro de interrupciones, fondos de concentración | | Hábitos y revisión | Registro de hábitos y estadísticas, resumen diario (estado de ánimo + reflexión en tres partes + plan del día siguiente), tarjetas para compartir | | Logros y motivación | Puntos y flujo, seis rangos, muro de insignias, días consecutivos de estudio | | Comunidad | Publicaciones y comentarios, me gusta, círculos temáticos, discusión de conocimientos, mensajes privados, seguimiento y centro de notificaciones | | Colaboración | Desafíos en equipo y progreso, compañeros de estudio, salas de estudio, planes de preparación colaborativos, informe semanal | | Cuenta y seguridad | Registro/login (bcrypt + JWT HttpOnly Cookie), verificación humana Cloudflare Turnstile, límite de frecuencia, diccionario local de palabras sensibles + revisión con Workers AI | | Personalización | Cuenta regresiva del examen, tema y modo oscuro, recordatorios y no molestar, recorte de avatar, modo visitante | ### Arquitectura técnica | Capa | Tecnología | | :--- | :--- | | Frontend | Vue 3 (`<script setup>`), TypeScript, Vite 5, Vue Router 4, Pinia 2, Tailwind CSS 3 | | Visualización/rich content | ECharts 5, KaTeX 0.16, markdown-it, pdfjs-dist | | Escritorio | Electron 43, electron-builder, electron-updater | | PWA | vite-plugin-pwa (instalable + Service Worker con caché offline) | | Backend | Cloudflare Workers (TypeScript), bcryptjs, jose para JWT | | Datos | Cloudflare D1 (más de 50 tablas de negocio), R2 (almacenamiento de imágenes de la comunidad) | | Ingeniería | ESLint, tsc --noEmit, GitHub Actions con doble pipeline | ### Inicio rápido **Requisitos**: Node.js 18 o superior ```bash git clone https://github.com/Han050912/zsb-study-tracker.git cd zsb-study-tracker npm install npm run dev ``` **Iniciar el Worker del backend (necesario para desarrollo local)**: ```bash cd worker npm install npm run init:local npx wrangler dev ``` **Cliente de escritorio**: ```bash npm run electron:dev ``` **Empaquetado**: ```bash npm run dist:win # Windows npm run dist:mac # Mac ``` ### Despliegue El proyecto tiene dos pipelines de GitHub Actions que escuchan la rama master y despliegan el frontend en GitHub Pages y el backend en Cloudflare Workers. Es necesario configurar Secrets como CLOUDFLARE_API_TOKEN y CLOUDFLARE_ACCOUNT_ID. ### Guía de contribución ¡Toda contribución es bienvenida! Proceso: Fork → nueva rama (feat/xxx o fix/xxx) → codificar y verificar → enviar PR a la rama development. Usa TypeScript, Tailwind CSS, iconos SVG (Lucide) y sigue Conventional Commits. ### Licencia Este proyecto es de código abierto bajo la licencia MIT.