Sistema para generar y gestionar programas de las reuniones de Vida y Ministerio Cristianos con integración automática a JW.org.
- Agregar, editar y eliminar participantes
- Campo de privilegio (Anciano/Siervo Ministerial) solo para hombres
- Estado activo/inactivo
- Historial de participaciones
- Integración con JW.org para obtener datos reales de programas
- Scraping automático de fechas, canciones, partes y tiempos
- Soporte para rango de fechas (bimestrales)
- Asignación manual con modal de selección
- Auto-asignación inteligente según reglas de la congregación
- Validación de duplicados en la misma semana
- Historial de participaciones por persona
- Asamblea Regional
- Asamblea de Circuito
- Conmemoración
- Visita del Superintendente de Circuito
- Programa Bimestral: PDF completo con todas las semanas
- Asignaciones S-89: Formularios individuales para estudiantes
- Selección por semanas con checkboxes
- Campos editables
- Numeración correcta según el programa
- Vista de todas las asignaciones por participante
- Indicadores de cumplimiento
- Node.js 18+
- Python 3.8+
- npm
git clone https://github.com/tu-usuario/programa-vmc.git
cd programa-vmcnpm installpip install -r requirements.txt# Copiar archivos de ejemplo
cp data/participants.example.json data/participants.json
cp data/savedMonths.example.json data/savedMonths.json
cp data/savedSchedules.example.json data/savedSchedules.json
cp data/weekConfigs.example.json data/weekConfigs.jsonEn Windows (PowerShell):
Copy-Item data/participants.example.json data/participants.json
Copy-Item data/savedMonths.example.json data/savedMonths.json
Copy-Item data/savedSchedules.example.json data/savedSchedules.json
Copy-Item data/weekConfigs.example.json data/weekConfigs.json# Modo desarrollo (con recarga automática)
npm run dev
# Modo producción
npm run build
npm startEl servidor estará disponible en: http://localhost:3000
programa-vmc/
├── src/
│ ├── server.ts # Servidor Express principal
│ ├── data/ # Módulos de almacenamiento
│ │ ├── storage.ts
│ │ └── scheduleStorage.ts
│ ├── domain/ # Lógica de negocio
│ │ ├── types.ts
│ │ ├── scheduler.ts
│ │ └── assignmentTypes.ts
│ ├── frontend/ # Interfaz web
│ │ ├── index.html # Página principal
│ │ ├── index.css
│ │ ├── participantes.html
│ │ ├── participantes.css
│ │ ├── resumen.html
│ │ └── resumen.css
│ ├── scraper/ # Scraper de JW.org
│ │ ├── jw_scraper.py
│ │ └── mapper.py
│ ├── PDF/ # Templates PDF
│ │ └── S-89_s-Mlt_S.pdf
│ └── png/ # Imágenes para PDFs
├── data/ # Datos de la aplicación
├── package.json
├── tsconfig.json
├── requirements.txt
└── README.md
- Selecciona el rango de fechas (inicio y fin)
- Haz clic en "Generar Programa"
- Asigna participantes haciendo clic en cada casilla
- Guarda el programa
- Accede desde el menú superior
- Agrega nuevos participantes con nombre, género y privilegio
- Edita o desactiva participantes existentes
- Haz clic en "Generar PDF"
- Selecciona el bimestre
- Previsualiza y descarga
- Haz clic en "Generar S-89"
- Selecciona el bimestre
- Marca las semanas que deseas incluir
- Selecciona el día de reunión
- Genera los PDFs
Para crear una versión portable que funcione en cualquier PC:
# En Windows
.\crear-portable.ps1Esto generará una carpeta Programa-VMC-Portable en el escritorio con:
instalar.bat- Instala dependencias (solo primera vez)iniciar.bat- Inicia el programa
npm run dev # Desarrollo con recarga automática
npm run build # Compilar TypeScript
npm start # Iniciar servidor de producciónMIT License
Las contribuciones son bienvenidas. Por favor:
- Haz fork del proyecto
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -m 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request