1Cómo funciona el sistema
AdminPH lleva la asamblea en cuatro fases: 1) Servidor y Asamblea, 2) Asistencia y QR, 3) Votaciones y 4) Cierre y acta. Cada unidad recibe un código QR; el propietario lo escanea con su celular y vota. Los votos llegan al servidor y se guardan en la base de datos PostgreSQL.
Si algo no aparece con este nombre exacto en su pantalla, busque el botón equivalente: los textos pueden variar levemente entre versiones.
2Preparar el servidor (antes de todo)
Haga esto el día anterior y repítalo (solo el arranque) cada vez que encienda el equipo.
- Encienda PostgreSQL (debe estar corriendo el servicio).
- Abra una terminal en la carpeta del backend y ejecute
npm run start:dev. Espere el mensaje de que el servidor está escuchando y de que sirve el frontend. - Abra en el navegador del computador
http://localhost:3000/(no use la dirección de Live Server para la asamblea real). - En otra terminal inicie el túnel:
cloudflared tunnel --url http://localhost:3000
Copie la dirección que termina entrycloudflare.com. - Pruebe esa dirección desde un celular con datos móviles (sin wifi): debe abrir la página.
LEEME_V3_ASAMBLEA_REAL.md del paquete. No comparta contraseñas por chat ni en pantallazos.3Ingresar y roles
Ingrese con su usuario y contraseña. El sistema valida contra el servidor: si no puede conectarse, verá un mensaje en la pantalla de acceso.
| Rol | Qué puede hacer |
|---|---|
| Superadministrador | Todo: usuarios, configuración, servidor y copias de seguridad. |
| Administrador | Configura la copropiedad, crea y cierra asambleas, gestiona votaciones. |
| Operador | Registra asistencia, entrega QR y opera las votaciones el día de la asamblea. |
| Usuario | Consulta información y resultados según permisos. |
4Configurar la copropiedad
Se hace una sola vez y sirve para todas las asambleas futuras.
4.1 Niveles jerárquicos
Defina cómo se organiza el conjunto: por ejemplo Torre → Piso → Apartamento, o Manzana → Casa. Cada nivel tiene un prefijo.
4.2 Formato de unidad
El formato usa {NIVEL}{UNIDAD}: el prefijo del nivel más el número de la unidad.
| Formato | Nivel | Unidad | Resultado |
|---|---|---|---|
{NIVEL}{UNIDAD} | 1 | 01, 02, 03 | 101, 102, 103 |
T{NIVEL}-{UNIDAD} | 2 | 05 | T2-05 |
4.3 Generar y revisar unidades
- Genere las unidades con la herramienta de generación (101, 102… por nivel) o cárguelas desde Excel.
- Complete propietario, documento y coeficiente de cada unidad.
- Verifique que la suma de coeficientes sea 100%. Un error aquí altera quórum y votaciones por coeficiente.
- Marque las unidades en mora solo con certificación del administrador (ver Reglas legales).
5Fase 1 · Servidor y Asamblea antes del día
Aquí se conecta la página con el servidor y se crea la asamblea. Siga el orden de los bloques:
- Conectar al servidor. Debe aparecer “Servidor conectado”. Si falla, vaya a Solución de problemas.
- Enviar las unidades al servidor. Así quedan guardadas en PostgreSQL. Espere la confirmación.
- Crear la asamblea: nombre, fecha, tipo (ordinaria o extraordinaria) y orden del día.
- Dirección pública para los QR. Pegue la dirección https del túnel y guárdela. Los QR se generarán con esa dirección. Nunca imprima QR con localhost o con una IP local: no abren desde otros celulares.
- Copia de seguridad en el servidor. Haga una copia ahora y otra antes de abrir cada votación. Si cambia de navegador o de computador, restaure desde aquí.
- Iniciar la asamblea cuando comience la sesión.
panel-votacion.html) sirve para proyectar resultados; es solo de lectura y no permite administrar.http://localhost:3000/); si cambia, use la restauración de copia.6Fase 2 · Asistencia y QR día de la asamblea
- Registre la llegada de cada propietario en la mesa de registro, unidad por unidad.
- Si asiste un apoderado, registre su nombre y documento y verifique el poder escrito.
- Entregue o muestre el QR de la unidad. Hay un QR activo por unidad en cada asamblea; sirve para todas las votaciones de esa asamblea.
- Confirme el quórum en pantalla antes de comenzar. Con más de la mitad de los coeficientes presentes se puede sesionar (ver Reglas legales).
- Si alguien pierde el QR, genere uno nuevo de la unidad: el anterior deja de servir.
7Fase 3 · Votaciones día de la asamblea
7.1 Tipos de votación
| Modalidad | Cuándo usarla | Cómo cuenta |
|---|---|---|
| Nominal | Elegir personas (presidente, consejo, comité, revisor) o cuando se requiere saber quién votó qué. | Un voto por unidad. |
| Por coeficiente | Presupuesto, cuotas, reformas y decisiones que dependen del peso de cada unidad. | Suma el coeficiente de cada unidad que vota. |
| A mano alzada | Temas simples o cuando falla el QR. | Se cuenta en sala; use el conteo por coeficiente si la decisión lo exige. |
7.2 Paso a paso de una votación
- Cree la votación: enunciado claro, opciones (Sí/No o candidatos) y modalidad.
- Para elección de personas, los candidatos se toman de los asistentes.
- Verifique el enunciado con el presidente de la asamblea.
- Abra la votación. Los propietarios escanean el QR y votan desde el celular.
- Observe la participación en el monitor. Cuando terminen o venza el tiempo, cierre la votación.
- Lea el resultado en voz alta y confirme con el presidente.
7.2b Cronómetro
- De cada votación: el tiempo se fija en «Tiempo de votación (minutos)». Al quedar 30 segundos, el reloj parpadea y suena un aviso; al terminar suena un tono final y la votación se cierra sola. «Abrir reloj en pantalla» lo proyecta en otra ventana.
- De intervenciones: el botón ⏱️ Cronómetro de intervención (arriba en la Fase 3) abre una ventana aparte. Elija 1, 2, 3 o 5 minutos, o escriba minutos y segundos; escoja a cuántos segundos avisar (10 a 60), con cambio de color a ámbar y sonido; al terminar se pone rojo y suena. Atajos: Espacio inicia/pausa, R reinicia, F pantalla completa, C muestra u oculta los controles. Puede marcar «Cerrar la ventana al terminar».
7.3 Reglas de seguridad de las votaciones
- Solo una votación abierta a la vez. Si intenta abrir otra, el sistema se lo impide y le dice cuál sigue abierta. El servidor también lo rechaza.
- Mientras haya una votación abierta, arriba de la Fase 3 aparece un aviso verde con el nombre, el tiempo restante y los botones Ir a la votación y Cerrar ahora. No importa en qué punto esté: siempre podrá cerrarla.
- Al vencer el tiempo, la votación se cierra sola. Una votación cerrada no acepta más votos, aunque el propietario tenga la pantalla del celular abierta.
- El celular no necesita volver a escanear el QR: con la pantalla abierta, cada votación nueva aparece sola.
7.4 Votaciones adicionales y puntos nuevos
- Votaciones adicionales (punto 16): cree tantas como necesite; cada una aparece con su estado (sin abrir, abierta, cerrada) y queda en el acta.
- Proposiciones y varios: registran la unidad, el solicitante y el detalle; pasan al acta.
- ➕ Agregar punto: abre un formulario donde elige si el punto tiene votación (modalidad y opciones) y si permite cargar archivos. Todo punto admite notas y constancias para el acta. El punto Cierre de la asamblea siempre queda de último.
- Para asambleas cortas, desmarque «Activo» o elimine los puntos que no se usan y agregue los propios.
8Fase 4 · Cierre y acta
- Verifique que todas las votaciones estén cerradas.
- Revise asistencia, quórum y resultados; el acta debe indicar tipo de reunión, convocatoria, orden del día, asistentes con unidad y coeficiente, y los votos emitidos (Ley 675, art. 47).
- Haga una copia de seguridad final en el servidor.
- Cierre la asamblea. Se desactivan los QR de esa asamblea.
- El presidente y el secretario firman el acta; el administrador debe publicarla en la sede dentro de los 20 días hábiles siguientes.
- Al cerrar, la asamblea queda guardada en 📚 Ver asambleas cerradas (Fase 1 → Servidor y Asamblea, punto 7, o en la pantalla de cierre) para consultarla en modo lectura.
- Para una nueva asamblea, cree una nueva: los QR se generan otra vez.
9Reglas legales clave
| Tema | Regla (Ley 675 de 2001) |
|---|---|
| Quórum | Más de la mitad de los coeficientes (art. 45). |
| Decisión ordinaria | Mitad más uno de los coeficientes (art. 45). |
| Decisiones calificadas | 70% de los coeficientes (art. 46). |
| Segunda convocatoria | Tercer día hábil siguiente, 8:00 p. m., con un número plural de propietarios (art. 41). |
| Reunión no presencial | Solo si todos participan y se puede probar; con fe del revisor fiscal (arts. 42–44). |
| Acta | Firmada por presidente y secretario; publicada en 20 días hábiles (art. 47). |
| Sanciones | Con debido proceso y proporcionalidad (arts. 59–62). |
Consulte el Diccionario jurídico para más detalle, sentencias de tutela en propiedad horizontal y normas relacionadas. Confirme siempre con su reglamento y con su abogado.
10Lista del día de la asamblea
Marque cada punto; el avance se guarda en este navegador.
La noche anterior
Una hora antes
Durante
Al terminar
11Solución de problemas
“Failed to fetch” o “No se pudo conectar al servidor”
- Confirme que el backend está corriendo (
npm run start:dev) y que PostgreSQL está encendido. - Abra el sistema desde
http://localhost:3000/. - Recargue con Ctrl+F5.
El QR abre en mi computador pero no en el celular
Probablemente el QR usa localhost o una IP local. Guarde la dirección pública del túnel en la Fase 1 y genere de nuevo los QR. Si el celular usa el wifi del edificio y no abre, la red puede aislar los dispositivos entre sí; pruebe con datos móviles o con otro punto de acceso.
Cambió la dirección del túnel
Cloudflare genera una dirección nueva cada vez que reinicia el túnel. Guarde la nueva en la Fase 1 y vuelva a mostrar los QR. Los QR impresos con la dirección anterior dejan de servir; por eso no debe reiniciar el túnel durante la asamblea.
Al abrir en otro navegador los datos aparecen vacíos
Cada navegador y cada dirección guardan sus propios datos. Use “Restaurar copia” de la Fase 1 para traer la copia del servidor. Si el sistema advierte un conflicto, no sobrescriba sin revisar cuál copia es la más reciente.
Un propietario dice que no puede votar
- Verifique que esté registrado como asistente y que su votación esté abierta.
- Recuerde que solo hay un voto por unidad y votación.
- Si el QR falla, use la votación a mano alzada y registre el resultado.
- Confirme que la unidad no esté marcada en mora.
El monitor no muestra resultados
Confirme que la votación está abierta y que hay votos. Espere unos segundos: el sistema sincroniza automáticamente. Si persiste, recargue el monitor.
Se cerró el túnel o se apagó el computador durante la asamblea
Los votos ya emitidos están en la base de datos. Reinicie PostgreSQL y el backend, abra http://localhost:3000/ e inicie de nuevo el túnel. Si la dirección cambió, continúe con mano alzada mientras se regeneran los QR.
GGuía de administración · Cómo usar esta guía
Esta guía explica, paso a paso, cómo operar AdminPH hoy, cuando el sistema corre en el computador de la administración (modo «localhost») y se abre al público mediante un túnel de Cloudflare. Está escrita para que cualquier persona, sin conocimientos de programación, pueda encender el sistema, realizar una asamblea, hacer copias de seguridad, recuperar datos y dejar la plataforma limpia.
¿Qué quiero hacer? Use esta tabla para ir directo al capítulo:
| Quiero… | Capítulo |
|---|---|
| Encender el sistema el día de la asamblea | 2 |
| Obtener y guardar la dirección pública (túnel) | 3 |
| Cambiar contraseñas, crear un operador, asignarlo a una asamblea | 4 |
| Preparar y realizar una asamblea | 5 |
| Enviar los QR por correo o WhatsApp | 6 |
| Ver lo mismo en un segundo computador | 7 |
| Hacer una copia de seguridad y recuperarla | 8 |
| Borrar asambleas de prueba y dejar todo limpio | 9 |
| Actualizar el sistema con un parche o instalarlo en otro PC | 10 |
| Algo falla (mensajes de error) | 11 |
| Listas de chequeo para imprimir | 12 |
G1Guía 1 · Qué es el sistema y qué piezas tiene
AdminPH funciona con cuatro piezas que deben estar encendidas al mismo tiempo en el computador principal:
| Pieza | Para qué sirve | Cómo se sabe que está encendida |
|---|---|---|
| PostgreSQL (base de datos) | Guarda unidades, asistencia, votos y actas. | Es un servicio de Windows que arranca solo con el computador. |
| Backend (servidor) | Recibe los votos, valida los QR y entrega la página. | Ventana negra «AdminPH – SERVIDOR». Debe decir que escucha en el puerto 3000. |
| Página (lo que se ve) | La pantalla de administración y la de votación en el celular. | Se abre en http://localhost:3000/ |
| Túnel de Cloudflare | Permite que los celulares entren desde internet. | Ventana negra «AdminPH – TUNEL» con una dirección que termina en trycloudflare.com. |
Dónde están los archivos
- Backend (servidor):
C:\Users\jccas\Desktop\ADMIN PH\backend\backend-adminph - Página (frontend):
C:\Users\jccas\Desktop\ADMIN PH\frontend\AdminPH - Archivo de claves y ajustes del servidor:
.env(dentro de la carpeta del backend). Es secreto: no se envía por chat ni correo. - Arranque con un clic:
INICIAR_ADMINPH.bat.
Programas que deben estar instalados
- PostgreSQL 18 con pgAdmin (base de datos y su administrador visual).
- Node.js (para ejecutar el servidor).
- cloudflared (el túnel de Cloudflare).
G2Guía 2 · Encender el sistema (INICIAR_ADMINPH.bat)
Se hace cada vez que se enciende el computador o se necesita el sistema. Si es el día de la asamblea, hágalo una hora antes.
- Verifique que PostgreSQL esté encendido. Normalmente lo está solo. Si no, abra «Servicios» de Windows (tecla Windows, escriba
services.msc), busque el servicio de PostgreSQL (se llama parecido apostgresql-x64-18) y pulse Iniciar. - Haga doble clic en INICIAR_ADMINPH.bat.
- Se abrirán dos ventanas negras: «AdminPH – SERVIDOR (no cerrar)» y, a los 15 segundos, «AdminPH – TUNEL (no cerrar)». No las cierre mientras dure la asamblea. Puede minimizarlas.
- También se abre el navegador en
http://localhost:3000/. Aparece la pantalla de ingreso. - En la ventana del TÚNEL busque una línea con una dirección como
https://algo-raro-palabras.trycloudflare.com. Esa es la dirección pública (Guía 3). - Ingrese con su usuario y contraseña.
http://localhost:3000/api/docs. Si carga una página de documentación, el servidor está sano.Apagar el sistema
- Termine la asamblea, haga la copia de seguridad final (Guía 8) y cierre la asamblea en la página.
- Cierre las dos ventanas negras (o pulse Ctrl+C en cada una).
- Ya puede apagar el computador. No se pierde nada: los datos quedan en PostgreSQL.
G3Guía 3 · El túnel de Cloudflare y la dirección pública
Los celulares no pueden entrar a «localhost» (eso es solo su computador). Por eso se usa el túnel: genera una dirección pública https://…trycloudflare.com que lleva a su computador.
- Copie la dirección que aparece en la ventana del TÚNEL (termina en
trycloudflare.com). - En la página: Fase 1 → 🔗 Servidor y Asamblea → punto 4 «Dirección pública para los QR». Péguela y pulse Guardar.
- Pruebe desde un celular con datos móviles (sin wifi): debe abrir la pantalla de la página.
- Solo después genere, envíe o imprima los QR.
G4Guía 4 · Usuarios, contraseñas y operadores
Quien entra a la página lo hace con usuarios guardados en la base de datos. De fábrica existen superadmin, admin, operador y propietario101, todos con una clave de fábrica que debe cambiarse antes de usar el sistema de verdad.
| Rol | Qué puede hacer |
|---|---|
| Superadministrador | Todo: configuración, servidor, copias de seguridad y todas las asambleas. |
| Administrador | Prepara y cierra asambleas, vota, envía QR a todas las unidades o solo a asistentes. |
| Operador | Opera el día de la asamblea: asistencia, QR de presentes, votaciones. Solo ve las asambleas a las que está asignado. Envía QR únicamente a unidades presentes. |
| Usuario | Consulta información y resultados. |
Cómo ejecutar instrucciones SQL (se usará varias veces)
- Abra pgAdmin (le pedirá la clave de PostgreSQL).
- En el panel izquierdo: Servers → PostgreSQL 18 → Databases → clic derecho sobre la base de AdminPH (se llama
adminph) → Query Tool. - Pegue el texto SQL en la ventana grande y pulse el botón ▶ (Ejecutar). Abajo aparece «Query returned successfully».
- Si sale un error, no se alarme: copie el mensaje completo y consulte el Guía 11. Después de un error, abra una ventana nueva de Query Tool.
Cambiar la contraseña de un usuario
Cambie superadmin por el usuario que quiera y NuevaClave#2026 por la clave nueva (mínimo 10 caracteres, con letras, números y símbolos).
UPDATE users
SET password_hash = crypt('NuevaClave#2026', gen_salt('bf'))
WHERE username = 'superadmin';
Repita con admin, operador y propietario101 (este último puede desactivarse, ver más abajo). Anote las claves nuevas en un lugar seguro, nunca en el chat ni en la página.
Crear un operador nuevo
Cambie el usuario, la clave, el nombre y el correo, y ejecute las dos instrucciones juntas:
INSERT INTO users (organization_id, username, password_hash, full_name, email, active)
SELECT organization_id, 'operador2', crypt('ClaveOperador#1', gen_salt('bf')),
'Maria Perez (operadora)', 'maria@ejemplo.com', true
FROM users WHERE username = 'operador';
INSERT INTO user_roles (user_id, role_id)
SELECT u.id, r.id FROM users u, roles r
WHERE u.username = 'operador2' AND r.code = 'operador';
Asignar un operador a una asamblea (obligatorio)
Un operador solo puede trabajar en las asambleas a las que se le asigna. Si no, ve el mensaje «Operador no asignado a esta asamblea». Hágalo después de crear cada asamblea nueva (la última creada):
INSERT INTO assembly_users (assembly_id, user_id, assigned_role) SELECT a.id, u.id, 'operador' FROM assemblies a, users u WHERE u.username = 'operador2' AND a.id = (SELECT id FROM assemblies ORDER BY created_at DESC LIMIT 1) ON CONFLICT DO NOTHING;
Desactivar un usuario
UPDATE users SET active = false WHERE username = 'propietario101';
G5Guía 5 · Preparar y realizar una asamblea
Resumen del recorrido completo. El detalle de cada pantalla está en el Manual de usuario (manual.html) y las normas en el Diccionario PH.
Días antes
- Cambie las contraseñas de fábrica (Guía 4).
- Revise unidades, propietarios, correos, teléfonos y coeficientes. La suma de coeficientes debe ser 100 %.
- Encienda el sistema (Guía 2) y entre como administrador.
- Fase 1 → 🔗 Servidor y Asamblea: (1) conecte al servidor; (2) envíe las unidades al servidor y espere la confirmación; (3) cree la asamblea (nombre, fecha, tipo, orden del día); (4) guarde la dirección pública (Guía 3); (5) haga una copia de seguridad.
- Si hay operador, asígnelo a la asamblea (Guía 4).
- Prueba general: marque una unidad presente, escanee su QR con un celular con datos móviles y vote una votación de prueba. Después limpie (Guía 9) y vuelva a crear la asamblea real.
Día de la asamblea
- Una hora antes: encienda el sistema, verifique el túnel, proyector y mesa de registro.
- Fase 1: pulse Iniciar la asamblea cuando comience la sesión.
- Fase 2 – Asistencia y QR: registre la llegada de cada unidad (con apoderado si aplica). Entregue o envíe el QR (Guía 6). Verifique el quórum antes de comenzar.
- Fase 3 – Votaciones: siga el orden del día. Para cada votación: lea el enunciado, ábrala, espere los votos, ciérrela y anuncie el resultado. Solo puede haber una votación abierta a la vez. El botón ⏱️ abre el cronómetro de intervenciones.
- Copia de seguridad antes de cada votación importante (Guía 8).
- Fase 4 – Cierre y acta: verifique que todas las votaciones estén cerradas, haga la copia final, cierre la asamblea, genere el acta. Se firma por presidente y secretario y se publica dentro de los 20 días hábiles siguientes.
G6Guía 6 · Enviar los QR por correo y por WhatsApp
Fase 2 → 📨 Enviar QR. Cada propietario recibe su propio QR, usando el correo y el teléfono de la tabla de unidades.
| Rol | A quiénes puede enviar |
|---|---|
| Operador | Solo a las unidades marcadas como presentes. |
| Administrador / Superadmin | A solo los asistentes o a todas las unidades (selector «¿A quiénes?»). |
Configurar el correo (una sola vez)
El correo sale desde una cuenta de Gmail que usted autoriza con una contraseña de aplicación (no es la clave normal de Gmail).
- En su cuenta de Google active la Verificación en dos pasos (myaccount.google.com → Seguridad).
- Entre a
myaccount.google.com/apppasswords, escriba un nombre (por ejemplo «AdminPH») y pulse Crear. Copie la contraseña de 16 letras. - Abra el archivo
.envdel backend con el Bloc de notas y deje estas líneas (con sus datos):
MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USER=su_cuenta@gmail.com MAIL_PASSWORD="las16letrasjuntas" MAIL_FROM=su_cuenta@gmail.com MAIL_FROM_NAME=Administración Conjunto X
- Guarde el archivo y reinicie el servidor (cierre la ventana SERVIDOR y vuelva a abrir el .bat). Sin reiniciar, no toma los cambios.
- Pruebe enviándose un QR a usted mismo.
@esap.edu.co) y muchas cuentas de Office 365 bloquean este tipo de envío. Además, no es correcto usar una cuenta de otra entidad. Use Gmail con contraseña de aplicación o un correo del dominio propio. Gmail permite unos 500 envíos al día.Enviar por correo
- Verifique que el servidor esté conectado, la asamblea elegida y la dirección pública guardada (si falta algo, la pantalla lo avisa).
- Elija «Solo asistentes» o «Todas las unidades» (administrador).
- Marque los destinatarios (botón «Marcar todos con correo») y pulse ✉️ Enviar correo a los marcados. Se envía en tandas de 5.
- Al terminar verá cuántos se enviaron y cuáles tuvieron problema, con el motivo. Cada unidad queda marcada con la hora del envío.
Enviar por WhatsApp
- En el cuadro «Indicativo WhatsApp» deje solo
57(Colombia). No escriba teléfonos ahí. - Pulse 💬 en la fila de una unidad, o «WhatsApp: siguiente pendiente» para ir en orden.
- Se abre WhatsApp con el mensaje y el enlace listos. Si aparece «Continuar al chat», púlselo, y luego toque Enviar.
G7Guía 7 · Ver lo mismo en un segundo computador
Puede abrir la página en otro computador usando la dirección del túnel (la que termina en trycloudflare.com) o, si está en la misma red, http://IP-del-computador:3000. Pero recuerde: cada navegador guarda su propio trabajo del día (asistencia, orden del día, votaciones). Un computador nuevo aparece «en blanco».
Traer los datos al segundo computador
- Abra la dirección del túnel en el navegador del segundo computador e ingrese con su usuario.
- Vaya a Fase 1 → 🔗 Servidor y Asamblea. Debe decir «Conectado como…». Elija la misma asamblea.
- Pulse ⤵ Restaurar la copia del servidor. Se cargan unidades, asistencia y orden del día.
- Vaya a Fase 2 o Fase 3 y verá lo mismo que en el computador principal.
panel-votacion.html (en la misma dirección) en el segundo computador o en el proyector. Es de solo lectura y sí se actualiza en tiempo real.G8Guía 8 · Copias de seguridad y recuperación
Hay dos tipos de copia y conviene tener ambos:
| Copia | Qué guarda | Cómo se hace |
|---|---|---|
| Dentro de la página (copia del servidor) | El trabajo del día: asistencia, orden del día, votaciones. | Fase 1 → Servidor y Asamblea → «💾 Guardar copia ahora». Además se guarda sola mientras usted trabaja. |
| De la base de datos (PostgreSQL) | TODO: unidades, usuarios, asambleas, votos, QR, actas. | pgAdmin o PowerShell (abajo). |
Cuándo hacerlas
- Copia de la base de datos: antes de limpiar, la noche anterior a la asamblea y al terminar.
- Copia dentro de la página: antes de cada votación importante y al cierre.
- Guarde una copia fuera del computador (memoria USB o nube privada).
Hacer la copia de la base de datos – Opción A: con pgAdmin (más fácil)
- Abra pgAdmin y conéctese.
- Clic derecho sobre la base
adminph→ Backup… - En «Filename» pulse la carpeta, elija el Escritorio y escriba un nombre con la fecha, por ejemplo
respaldo_2026-10-01. - Formato: Custom. Pulse Backup. Debe decir «Successfully completed».
Opción B: con PowerShell
Windows no encuentra pg_dump si se escribe solo el nombre; hay que usar la ruta completa. Con PostgreSQL 18:
& "C:\Program Files\PostgreSQL\18\bin\pg_dump.exe" -U postgres -d adminph -f "$HOME\Desktop\respaldo_2026-10-01.sql"
Le pedirá la clave de PostgreSQL. El archivo queda en el Escritorio. (Si la versión instalada no es la 18, mire cuál carpeta existe con dir "C:\Program Files\PostgreSQL" y cambie el número.)
Recuperar una copia (volver atrás)
Si la copia fue hecha con pgAdmin (Custom):
- En pgAdmin: clic derecho en Databases → Create → Database…, nómbrela
adminph_recuperaday guarde. - Clic derecho sobre
adminph_recuperada→ Restore… → elija el archivo de la copia → Restore. - Cuando termine, cambie el nombre de la base en el archivo
.env(líneaDATABASE_URL, al final de la dirección) aadminph_recuperaday reinicie el servidor. Así queda la anterior intacta por si acaso.
Si la copia fue hecha con PowerShell (archivo .sql):
& "C:\Program Files\PostgreSQL\18\bin\psql.exe" -U postgres -c "CREATE DATABASE adminph_recuperada;" & "C:\Program Files\PostgreSQL\18\bin\psql.exe" -U postgres -d adminph_recuperada -f "$HOME\Desktop\respaldo_2026-10-01.sql"
Después apunte el .env a adminph_recuperada como en el caso anterior y reinicie el servidor.
Recuperar la «copia del servidor» dentro de la página
Fase 1 → Servidor y Asamblea → ⤵ Restaurar la copia del servidor (la más reciente) o ↩ Restaurar la copia anterior (la que había antes). Úselo si cambió de navegador, de computador o se limpió el navegador.
ADMIN PH completa (incluye el .env) en una USB. Con la carpeta, la copia de la base de datos y los programas instalados, el sistema se puede reconstruir en otro computador.G9Guía 9 · Borrar asambleas y dejar la plataforma limpia
Sirve para eliminar asambleas de prueba y empezar de cero antes de la asamblea real.
Paso 1 – Limpiar el servidor
Abra una ventana nueva de Query Tool (Guía 4), pegue todo este bloque junto y ejecútelo (▶):
ROLLBACK; BEGIN; TRUNCATE assemblies, attendance, qr_tokens CASCADE; DELETE FROM app_state_snapshots; DELETE FROM audit_logs; DELETE FROM units WHERE property_id <> '00000000-0000-0000-0000-000000000010'; DELETE FROM properties WHERE id <> '00000000-0000-0000-0000-000000000010'; COMMIT;
La primera línea puede mostrar un aviso inofensivo («no hay transacción en progreso»).
| Se borra | Se conserva |
|---|---|
| Todas las asambleas, asistencia, QR, votos, actas, copias de seguridad del servidor, auditoría, y los conjuntos y unidades de prueba. | Los usuarios (superadmin, admin, operador…) y el conjunto demo del sistema. |
BEGIN; TRUNCATE assemblies, attendance, qr_tokens CASCADE; DELETE FROM app_state_snapshots; DELETE FROM audit_logs; COMMIT; (sin las dos líneas de DELETE FROM units y DELETE FROM properties).Paso 2 – Reiniciar el servidor
Cierre la ventana SERVIDOR y abra otra vez el .bat (o ejecute npm run start:dev).
Paso 3 – Limpiar el navegador (en cada computador usado)
- Abra la página y pulse F12 → pestaña Console.
- Escriba
localStorage.clear()y pulse Enter. - Recargue con Ctrl+F5 e ingrese de nuevo.
Paso 4 – Empezar la asamblea real
- Fase 1: conecte, cargue las unidades reales, envíelas al servidor y cree la asamblea.
- Vuelva a asignar al operador a la asamblea (Guía 4).
- Guarde la dirección pública (Guía 3).
Si sale el error «violates RESTRICT… attendance_unit_id_fkey»
Significa que se intentó borrar unidades que todavía tienen asistencia. Ejecute el bloque completo del Paso 1 en una ventana nueva (borra primero la asistencia y luego las unidades).
G10Guía 10 · Actualizar el sistema y usarlo en otros computadores
Instalar una actualización (parche)
Las mejoras llegan como un archivo .zip con una carpeta frontend y/o backend, más un archivo LEEME.
- Haga una copia de la carpeta ADMIN PH y de la base de datos (Guía 8).
- Descomprima el zip en el Escritorio.
- Copie los archivos respetando las carpetas: lo de
frontend\AdminPH\…va dentro deADMIN PH\frontend\AdminPH\…; lo debackend\src\…va dentro deADMIN PH\backend\backend-adminph\src\…. Responda «Reemplazar» cuando pregunte. - Si el LEEME dice que hay claves nuevas, agréguelas al
.env. - Cierre y vuelva a abrir la ventana SERVIDOR (o el .bat).
- En el navegador pulse Ctrl+F5 (recarga sin memoria vieja).
- Si el LEEME dice «ejecute npm install», abra PowerShell en la carpeta del backend y escriba
npm install(necesita internet).
Si algo sale mal, restaure la copia de la carpeta y vuelva a empezar.
Otros computadores que solo entran a la página
No hay que instalar nada. La página la entrega el computador principal. Basta abrir la dirección del túnel (o http://IP:3000 en la misma red) y pulsar Ctrl+F5 después de cada actualización.
Instalar el sistema completo en otro computador (que sea el servidor)
- Instale PostgreSQL 18 + pgAdmin, Node.js y cloudflared.
- Copie la carpeta
ADMIN PHcompleta (con el.env). - En PowerShell, dentro de
ADMIN PH\backend\backend-adminph, ejecutenpm install. - Cree la base de datos y restaure la última copia (Guía 8). Si la clave de PostgreSQL es distinta, ajuste
DATABASE_URLen el.env. - Abra
INICIAR_ADMINPH.batcon el Bloc de notas y verifique que la ruta de la carpeta sea la de ese computador. - Haga doble clic en el .bat y siga el Guía 2.
G11Guía 11 · Problemas frecuentes y mensajes de error
| Qué ve | Causa probable | Qué hacer |
|---|---|---|
| «Failed to fetch» / no conecta al servidor | El servidor o PostgreSQL están apagados. | Encienda PostgreSQL (services.msc), abra el .bat, entre por http://localhost:3000/ y pulse Ctrl+F5. |
Error EADDRINUSE / «puerto 3000 en uso» | Hay otro servidor ya abierto. | Cierre la ventana negra anterior. Si persiste: PowerShell netstat -ano | findstr :3000, tome el número final (PID) y taskkill /PID número /F. |
| El QR abre en el computador pero no en el celular | El QR usa localhost o una IP. | Guarde la dirección pública (Guía 3) y vuelva a mostrar/enviar los QR. Pruebe con datos móviles. |
| Los QR dejaron de abrir | Cambió la dirección del túnel. | Copie la dirección nueva, guárdela en la Fase 1 y reenvíe los QR (los anteriores no sirven). Entre tanto, vote a mano alzada. |
| Otro navegador/PC aparece vacío | Cada navegador guarda lo suyo. | Fase 1 → «Restaurar la copia del servidor» (Guía 7). |
| «Operador no asignado a esta asamblea» | Falta asignar al operador. | Ejecute el SQL de asignación (Guía 4). |
| Botón de correo deshabilitado | Correo sin configurar, sin dirección pública o sin servidor. | Revise los avisos amarillos de la pantalla y el .env (Guía 6). Reinicie el servidor. |
535 Authentication unsuccessful | Gmail/Office rechazó usuario o clave. | Use contraseña de aplicación de Gmail, sin espacios y entre comillas. No use cuentas institucionales. |
| WhatsApp dice «404 / página no existe» | Número mal armado (indicativo con muchos dígitos). | Deje el indicativo en 57 y revise que el teléfono tenga 10 dígitos. |
| Otra votación sigue abierta | Solo se permite una a la vez. | Use el aviso verde «Cerrar ahora» y abra la siguiente. |
Cambié algo del .env y no pasa nada | El servidor no se reinició. | Cierre la ventana SERVIDOR y vuelva a abrir el .bat. |
| Se apagó el computador en plena asamblea | Corte de luz o suspensión. | Encienda, abra el .bat, restaure la copia si hace falta. Los votos ya emitidos están guardados. La dirección del túnel será nueva: reenvíe QR o vote a mano alzada. |
G12Guía 12 · Listas de chequeo
La noche anterior
Una hora antes
Durante
Al terminar
G13Guía 13 · Seguridad y qué cambiará al subir el sistema a internet
- Contraseñas: cámbielas, use claves largas y no las comparta por chat, correo ni capturas de pantalla.
- El archivo .env contiene claves: no lo envíe ni lo suba a ningún lado.
- Dirección del túnel: cualquiera que la tenga ve la pantalla de ingreso, pero solo entra quien tenga usuario y clave.
- Datos personales: correos, teléfonos y documentos de los propietarios están protegidos por la Ley 1581 de 2012. Úselos solo para la asamblea.
- Equipo: mantenga Windows actualizado y no deje el computador sin vigilancia con la sesión abierta.
Qué cambiará con un hosting
| Hoy (localhost) | Con hosting en internet |
|---|---|
| Hay que encender el computador, el servidor y el túnel. | El sistema está siempre encendido, con dirección fija propia (por ejemplo app.profesionalesdevida.com). |
| La dirección del túnel cambia. | La dirección no cambia; los QR no se vencen. |
| Copias con pgAdmin / PowerShell en el PC. | Copias automáticas del proveedor. |
| El operador depende del computador principal. | Cada usuario entra desde su equipo con datos compartidos (mejora a desarrollar). |
Para soporte técnico del sistema: Juan Carlos Castro · 310 778 7733 · info@profesionalesdevida.com
G14Guía 14 · Novedades de la versión 3.5
Botón «Coeficiente de participación»
Muestra, tomando a los asistentes como el 100 %, el coeficiente que le corresponde a cada unidad presente (coeficiente ÷ suma de presentes × 100). Está en tres sitios: Fase 2 → 📐 Coef. de participación, el botón dentro del Panel de Quórum y el botón 📐 Coef. de participación en el Modo Asamblea (se abre sobre la pantalla, sin salir de la votación). Permite descargar a Excel/CSV e imprimir. No modifica los coeficientes originales.
Copias de seguridad con versiones (ya no hay «conflicto»)
- Fase 1 → Servidor y Asamblea → 5. Copia de seguridad.
- 💾 Guardar copia ahora: escriba un nombre (ej. «Antes de la votación 3»). Queda como una versión.
- 🕘 Ver versiones y restaurar: elija el conjunto y la versión (fecha y hora) y pulse Restaurar. Funciona también en un navegador o computador nuevo y vacío. Antes de reemplazar, el sistema guarda lo que había como una versión más.
- ⬇️ Descargar copia (archivo) y ⬆️ Cargar copia desde archivo: respaldo en un archivo .json que usted guarda en una USB o su correo; sirve aunque falle el servidor.
Arranque estable del servidor (INICIAR_ADMINPH.bat nuevo)
El nuevo .bat compila el sistema una vez y lo ejecuta en modo producción (el modo anterior «dev» se reinicia con cada cambio de archivo y es más lento), reinicia solo el servidor y el túnel si se caen, evita que Windows suspenda el equipo y usa el protocolo http2 del túnel (más estable en redes que bloquean UDP). Copie los tres archivos .bat juntos a la misma carpeta y use siempre INICIAR_ADMINPH.bat.
DELETE FROM app_state_snapshots; ejecute DELETE FROM app_state_history; para borrar también las versiones guardadas.G15Guía 15 · Publicar AdminPH en internet (Supabase + servidor)
Supabase aporta la base de datos PostgreSQL en la nube. AdminPH además necesita un servidor Node.js (no puede correr dentro de Supabase): se recomienda Render (o Railway/Fly/un VPS). Resultado: una dirección fija como https://app.profesionalesdevida.com, siempre encendida, sin túnel ni computador.
Paso 1 — Base de datos en Supabase
- Cree cuenta en supabase.com → New project. Región cercana (por ejemplo São Paulo). Anote la contraseña de la base de datos (solo para usted; no la comparta por chat ni correo).
- Menú SQL Editor → pegue y ejecute (Run) el contenido de
database/01_ESQUEMA_PRODUCCION.sql. - Abra
database/02_USUARIO_INICIAL.sqlen el Bloc de notas, cambie los tres textos marcados «CAMBIAR» (empresa, su nombre y su clave nueva), péguelo en el SQL Editor y ejecútelo una sola vez. - Botón Connect → pestaña Session pooler → copie la cadena (empieza por
postgresql://postgres.…) y reemplace[YOUR-PASSWORD]por la contraseña. Esa es suDATABASE_URL.
Paso 2 — Subir el código a GitHub (repositorio PRIVADO)
- Cree cuenta en github.com y un repositorio privado llamado
adminph. - Suba la carpeta
ADMIN PHconbackend/backend-adminphyfrontend/AdminPH(sinnode_modulesni.env), más la carpetadespliegue. Copiedespliegue/dockerignore.txta la raíz con el nombre.dockerignore.
Paso 3 — Servidor en Render
- render.com → New → Blueprint → conecte su GitHub y elija el repositorio (usa
despliegue/render.yaml). - Cuando lo pida, escriba las variables:
DATABASE_URL(Paso 1),PUBLIC_APP_URLyCORS_ORIGINS(la dirección final, ver Paso 4).JWT_SECRETyQR_SIGNING_SECRETse generan solas. - Espere el despliegue y abra
https://SU-SERVICIO.onrender.com/api/docs: si carga, el servidor está sano. Entre a la raíz e inicie sesión comosuperadmincon la clave que escribió en el paso 1.
Paso 4 — Dirección propia (sin mover su dominio a Cloudflare)
- En Render → su servicio → Settings → Custom Domains → agregue
app.profesionalesdevida.com. - En el panel donde administra el DNS de profesionalesdevida.com cree un registro CNAME
app→ el valor que Render indique. Render emite el certificado HTTPS automáticamente. - Cuando cargue, ponga esa dirección en
PUBLIC_APP_URLyCORS_ORIGINSde Render y guarde (se reinicia solo).
Paso 5 — Primer uso
- Entre con
superadmin, cree sus usuarios (administrador, operadores) y no deje claves de prueba. - Cargue las unidades con el Excel (Fase 1), cree la asamblea, asigne operadores, inicie la asamblea y envíe los QR. Como la dirección ya es fija, los QR no se vencen.
- Mantenga una copia: Supabase (planes de pago) hace copias automáticas, y además use el botón Descargar copia (archivo) después de cada asamblea.
G16Guía 16 · Novedades de la versión 3.6: votación manual y carga de unidades
Votación manual de respaldo (si falla el QR)
- Con los asistentes ya marcados, entre a Fase 3 → Modo Asamblea y pulse 📥 Votación manual (Excel).
- Marque las votaciones que necesita (orden del día, elecciones, votaciones adicionales) y pulse Descargar Excel. Obtiene una hoja por votación.
- Cada hoja lista, en orden alfabético, una fila por unidad presente (un apoderado con varias unidades ocupa una sola fila con la suma de sus coeficientes y el nombre de los copropietarios que representa). Tiene una casilla amarilla MARCAR X por cada opción.
- Al escribir X, aparece el coeficiente de esa fila en la columna verde. Abajo el Excel calcula el total por opción, el % sobre los asistentes (=100), el % sobre el total del conjunto, el mínimo para aprobar y si alcanza (SÍ/NO), el total votado y lo que quedó sin votar.
- Puede imprimirla y votar en papel, o llenarla en un computador. Después, en la misma ventana, cargue el Excel diligenciado: AdminPH muestra el resultado y, con Registrar, lo deja en la votación (por coeficiente) para el acta.
Carga rápida de unidades desde Excel
- Fase 1 → Configuración (arriba): tarjeta ⚡ Carga rápida de unidades desde Excel. También aparece en el módulo de Carga Excel.
- Descargar plantilla y llénela:
UNIDAD · DOCUMENTO · PROPIETARIO · CORREO · TELEFONO · COEFICIENTE · COEF_PARQUEADEROy, opcional,ETAPA. Ya no hace falta crear etapas, conjuntos ni niveles a mano: la unidad se llama como usted la escriba («Casa 1», «Lote 5»). - Varios copropietarios en una unidad: repita el nombre de la unidad en filas seguidas, una fila por persona, cada una con su correo y teléfono. El coeficiente se escribe en la primera fila.
- Suba el archivo: verá una vista previa con el total de unidades, la suma de coeficientes (debe dar 100), unidades sin correo o teléfono y correos dudosos. Pulse Crear unidades. Si ya hay unidades puede elegir «Agregar y actualizar» o «Reemplazar todo».
- Luego, Fase 1 → Servidor y Asamblea → Enviar unidades al servidor.
G17Guía 17 · Novedades de la versión 3.7: apoderados con un solo QR
Un apoderado que representa varias unidades (por ejemplo Casa 1, Casa 10, Lote 1 y Apartamento 6) recibe un solo QR. Al votar, su voto se registra por cada unidad con el coeficiente de cada una, es decir, vale la suma de los coeficientes. Las demás unidades ya no tienen QR propio (si alguien intenta votar con ese QR, el sistema lo rechaza).
Registrar un apoderado
- Fase 2 → 🤝 Apoderados. Escriba nombre, documento y, si quiere enviarle el QR, correo y teléfono.
- Marque en la lista todas las unidades que representa (hay buscador; ve el copropietario y el coeficiente de cada una y el total que va sumando).
- Deje marcada la casilla «presentes» para registrar de una vez la asistencia por poder de todas sus unidades, y pulse Registrar poder.
- La panorámica muestra, por apoderado, todas sus unidades, el nombre del copropietario que representa cada una, el coeficiente de cada una, el total, la asistencia y en qué unidad está su QR. Desde allí puede marcar o quitar la asistencia de todo el grupo, editar o quitar el poder.
- Envíe su QR desde 📨 Enviar QR: aparece una sola fila («Lote 1 + 2 unidades — Ana (apoderado)») con el correo y teléfono del apoderado.
Poderes precargados desde el Excel
La plantilla de carga de unidades tiene 4 columnas opcionales: APODERADO_DOCUMENTO, APODERADO_NOMBRE, APODERADO_CORREO, APODERADO_TELEFONO. Escriba los mismos datos del apoderado en cada una de sus unidades. Después de cargar el Excel, en Fase 2 → Apoderados pulse Crear apoderados desde el Excel: se arman los grupos sin marcar asistencia; el día de la asamblea basta pulsar Marcar todas presentes.
INICIAR_ADMINPH.bat (compila e inicia). La tabla nueva se crea sola. El reglamento de cada conjunto puede limitar cuántos poderes puede llevar una persona: verifíquelo antes de registrar.G18Guía 18 · Novedades de la versión 3.8: apoderado único, Excel por punto y evidencia de asistencia
Apoderado una sola vez
En el selector «Seleccionar candidato desde asistentes» el apoderado aparece una sola vez, con su nombre, las unidades que representa y la suma de sus coeficientes. El contador de votos QR indica «N votantes — M unidades» cuando un apoderado vota por varias.
Votación manual de todos los puntos
La lista de Votación manual (Excel) sigue el orden del día: presidente, secretario, comisión verificadora, consejo, comité de convivencia, revisor fiscal, aprobaciones, votaciones adicionales y los puntos creados con «Agregar punto». Los puntos que aún no tienen candidatos aparecen como pendientes: agregue los candidatos en la Fase 3 y el Excel quedará disponible. En Fase 3 → Orden del día cada punto con votación tiene su propio botón 📥 Excel.
Evidencia general de asistencia
Fase 2 → 🤝 Apoderados → 📋 Evidencia general de asistencia: unidades presentes en orden (por etapa/módulo y unidad) y, debajo, los apoderados con sus unidades. Se puede ver, imprimir o descargar en Excel como soporte del acta.
CAMBIAR_NOMBRE_SUPERADMIN.sql incluido en el paquete.G19Guía 19 · Novedades de la versión 3.9: Excel de votación mejorado y panel en vivo
Excel de votación manual
- El archivo de un solo punto lleva el nombre de ese punto (por ejemplo
VOTACION_Designacion_comision_verificadora_del_acta_…xlsx); el que baja varios puntos juntos se llamaVOTACION_MANUAL_GENERAL_…. - La fila 1 son los títulos con filtro y queda inmovilizada junto con las tres primeras columnas. Las convenciones, el resumen, las firmas y el código de votación están debajo de la lista.
- Las columnas MARCAR X están seguidas y luego vienen las columnas de coeficiente. La hoja está protegida sin contraseña: solo se pueden escribir las casillas amarillas, y solo la letra X.
Cargar el Excel diligenciado
Se puede cargar desde 📤 Cargar en el punto del orden del día o desde Votación manual (Excel); el efecto es el mismo. Si la votación estaba abierta, el sistema la cierra (pide confirmación) y deja registrados los votos, la estadística y el gráfico, igual que al cerrar una votación normal. El botón 📊 Ver resultado en el punto lleva directo a la pantalla del punto. La ventana tiene ✖ Cerrar arriba y abajo.
Panel de votación en vivo
«← Volver a AdminPH» y «Salir» llevan siempre a la Fase 3. Las unidades representadas por un apoderado ya no muestran QR: indican «Vota con el QR de su apoderado».
G20Guía 20 · Novedades de la versión 4.0: menú lateral, Ayuda y recursos, versiones
Menú lateral
Las fases están ahora en un menú desplegable a la izquierda; al elegir una fase se despliegan sus módulos. Al entrar se llega a Inicio, con tarjetas de herramientas y acciones rápidas. «Servidor y asamblea» es el primer botón de la Fase 1.
Ayuda y recursos
Admin Usuarios, Manual de Usuario y Diccionario PH salieron de la Fase 1 y están agrupados en Ayuda y recursos, visible para todos los usuarios. El diccionario incluye Decreto 768 de 2025 (proceso único de policía, no regula la tutela), acción de tutela y términos de las cartillas de MinVivienda y CONPUCOL.
Área administrativa
Reuniones virtuales, Gestor documental, Reportes y estadísticas y Agenda aparecen marcados «En desarrollo»; todavía no funcionan.
Versiones guardadas
En «Ver versiones y restaurar» cada versión tiene ahora Eliminar (solo superadmin y admin). La versión vigente no se puede eliminar.
Panel de votación en vivo
Se actualiza solo cada 4 segundos y tiene Actualizar todo. Archivar solo oculta la sesión en el panel; no borra la votación de la Fase 3. Si una unidad figura ausente en la Fase 2, el sistema corrige el servidor y deja de aparecer como presente.
Clic derecho
Los botones del menú permiten «Abrir en pestaña nueva» o «en ventana nueva» con clic derecho. En el orden del día, las acciones quedan alineadas en columnas.
G21Guía 21 · Novedades de la versión 4.1: app en el teléfono y simulador de cuotas
AdminPH como aplicación (PWA)
Con la página publicada en HTTPS, abra AdminPH en el navegador del teléfono y elija «Instalar aplicación» (Chrome: menú ⋮; iPhone: Safari → Compartir → «Añadir a pantalla de inicio»). Se abre a pantalla completa con su ícono. Los datos de votación y asistencia siempre se leen del servidor: la app instalada nunca muestra datos viejos.
Simulador de cuotas de administración (anexo pedagógico)
En Ayuda y recursos → Simulador de cuotas. Escriba el valor a repartir, la cantidad de unidades (o cargue un Excel) y elija: por coeficiente (cuota = coeficiente × valor mensual), nominal (valor ÷ unidades) o comparar ambas. Puede calcular el coeficiente por área, redondear al millar, comparar con la cuota anterior, descargar el resultado en Excel (con fórmulas) e imprimirlo. Incluye la explicación paso a paso y las referencias de la Ley 675. Es un ejercicio de aprendizaje: la cuota real la aprueba la asamblea.
G22Guía 22 · Novedades de la versión 4.2: agenda, reuniones virtuales, anexos del acta y visor de archivos
Agenda
Área administrativa → Agenda. Muestra el mes activo con flechas arriba y abajo para pasar al mes anterior o siguiente (y «Hoy»). Toque una casilla vacía para programar una asamblea, reunión de consejo o contractual, envío de evidencias u otro evento; puede repetirse cada semana o cada mes. La fecha de la asamblea de la Fase 1 aparece sola. Los próximos eventos se ven también en Inicio.
Reuniones virtuales
Botones Reunirse ahora (crea una sala y un enlace para compartir por WhatsApp o correo), Programar reunión y Unirse con ID. Muestra la próxima reunión (o la que está en curso), la agenda de hoy y el calendario completo. La videollamada la presta un servicio externo (por defecto Jitsi Meet, sin cuenta); también puede pegar el enlace de Meet, Zoom o Teams. AdminPH no transmite video. «Chats y canales» está en desarrollo; en «Grabaciones y archivos» se guarda el enlace de cada grabación.
Anexos del acta (Fase 4)
En la pantalla del acta hay un botón por anexo para incluirlo o no en el PDF: listado de asistentes, totales y quórum, constancia de QR, votación manual en Excel (archivos descargados y cargados), panel de votación en vivo, simulador de cuotas y documentos adjuntos. Por seguridad la constancia de QR no imprime los códigos, porque son credenciales de voto.
Archivos de la Fase 3
Al pulsar el nombre o «Abrir», el archivo se muestra dentro de AdminPH: PDF, imágenes, texto, Excel (.xlsx), Word (.docx) y PowerPoint (.pptx, solo texto). Los formatos antiguos (.doc, .xls, .ppt) no se pueden mostrar: se ofrece «Descargar original».
Otros ajustes
- Menú lateral: un segundo clic sobre la fase activa pliega o despliega sus módulos.
- Coeficiente de participación: la tabla se ve completa, sin barra de desplazamiento.
- Panel de votación en vivo: el estado presente/ausente sale de la lista de asistencia de la Fase 2 y corrige el servidor.
- Simulador de cuotas: calculadora de tres cajas (arriba y abajo) y botón «Reiniciar todo a cero».