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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.