Skip to content

Aplicación web para gestionar programas de reuniones de Vida y Ministerio Cristiano. Asignación de participantes, generación de PDFs y formularios S-89.

License

Notifications You must be signed in to change notification settings

And106MCU/programa-vmc

Repository files navigation

Programa VMC - Vida y Ministerio Cristianos

Sistema para generar y gestionar programas de las reuniones de Vida y Ministerio Cristianos con integración automática a JW.org.

Node.js Python License

📋 Características

Gestión de Participantes

  • Agregar, editar y eliminar participantes
  • Campo de privilegio (Anciano/Siervo Ministerial) solo para hombres
  • Estado activo/inactivo
  • Historial de participaciones

Generación de Programas

  • 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 de Participantes

  • 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

Semanas Especiales

  • Asamblea Regional
  • Asamblea de Circuito
  • Conmemoración
  • Visita del Superintendente de Circuito

Generación de PDFs

  • 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

Resumen Bimestral

  • Vista de todas las asignaciones por participante
  • Indicadores de cumplimiento

🚀 Instalación

Requisitos

  • Node.js 18+
  • Python 3.8+
  • npm

1. Clonar el repositorio

git clone https://github.com/tu-usuario/programa-vmc.git
cd programa-vmc

2. Instalar dependencias de Node.js

npm install

3. Instalar dependencias de Python

pip install -r requirements.txt

4. Configurar archivos de datos

# 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.json

En 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

5. Iniciar el servidor

# Modo desarrollo (con recarga automática)
npm run dev

# Modo producción
npm run build
npm start

El servidor estará disponible en: http://localhost:3000

📁 Estructura del Proyecto

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

🖥️ Uso

Página Principal

  1. Selecciona el rango de fechas (inicio y fin)
  2. Haz clic en "Generar Programa"
  3. Asigna participantes haciendo clic en cada casilla
  4. Guarda el programa

Gestionar Participantes

  • Accede desde el menú superior
  • Agrega nuevos participantes con nombre, género y privilegio
  • Edita o desactiva participantes existentes

Generar PDF del Programa

  1. Haz clic en "Generar PDF"
  2. Selecciona el bimestre
  3. Previsualiza y descarga

Generar Asignaciones S-89

  1. Haz clic en "Generar S-89"
  2. Selecciona el bimestre
  3. Marca las semanas que deseas incluir
  4. Selecciona el día de reunión
  5. Genera los PDFs

📦 Crear Versión Portable

Para crear una versión portable que funcione en cualquier PC:

# En Windows
.\crear-portable.ps1

Esto generará una carpeta Programa-VMC-Portable en el escritorio con:

  • instalar.bat - Instala dependencias (solo primera vez)
  • iniciar.bat - Inicia el programa

🛠️ Scripts Disponibles

npm run dev      # Desarrollo con recarga automática
npm run build    # Compilar TypeScript
npm start        # Iniciar servidor de producción

📝 Licencia

MIT License

🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Haz fork del proyecto
  2. Crea una rama para tu feature (git checkout -b feature/nueva-funcionalidad)
  3. Commit tus cambios (git commit -m 'Agregar nueva funcionalidad')
  4. Push a la rama (git push origin feature/nueva-funcionalidad)
  5. Abre un Pull Request

About

Aplicación web para gestionar programas de reuniones de Vida y Ministerio Cristiano. Asignación de participantes, generación de PDFs y formularios S-89.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published