Orden de configuración
Antes de que el sistema funcione correctamente para estudiantes, docentes y kiosco, un administrador debe completar tres módulos en este orden:
/horarios). Este manual cubre hasta el paso 3. Consulta el Manual de Horarios para el paso 4.
| Módulo | URL | Colección Firestore | Acceso |
|---|---|---|---|
| Configuración del plantel | /config-escuela |
config/institucion |
Admin |
| Gestión de Docentes | /gestion-docentes |
docentes |
Admin Jefe |
| Gestión de Usuarios | /gestion-usuarios |
usuarios |
Admin |
Acceso al sistema
El acceso al sistema se realiza en 3 pasos: primero se confirma la institución, luego se selecciona el rol y finalmente se autentica según el tipo de usuario.
Flujo según el rol seleccionado
| Rol | Paso 3 | Destino |
|---|---|---|
| Portería | Email + contraseña del usuario de portería | /entrada-estudiantes |
| Estudiante | Cédula → PIN numérico | /portal-alumno |
| Representante | Email → OTP de 6 dígitos | /portal-representante |
| Docente | Email + contraseña Firebase | /portal-docente |
| Admin / Jefatura | Email + contraseña Firebase | /admin-dashboard |
/gestion-usuarios → editar usuario → "Enviar link para cambiar contraseña". Firebase envía el enlace al correo del usuario.
Identidad del plantel
Este módulo guarda los datos que aparecen en carnets, constancias y encabezados de todo el sistema. Es el primer paso antes de imprimir cualquier documento.
Grado: 4to · A
Bachillerato
Campos obligatorios
| Campo | Descripción | ¿Dónde aparece? |
|---|---|---|
| Nombre completo * | Nombre oficial del plantel | Carnet, constancias, encabezados |
| Año escolar * | Ej: 2025-2026 | Carnet (anverso), boletines |
| Siglas | Abreviatura institucional | Subencabezado del carnet |
| Código MPPE | Código oficial del plantel | Reporte MPPE, constancias |
| Director(a) | Nombre y título (Prof./Lic./Dr.) | Reverso del carnet, constancias |
| Logo | PNG/JPG · Cuadrado · Mín. 200×200 px · Máx. 2 MB · Fondo transparente ideal | Carnet, encabezados |
- Formato: PNG (recomendado por fondo transparente) o JPG
- Forma: Cuadrada o circular — se recorta en cuadro
- Dimensión mínima: 200 × 200 píxeles
- Dimensión recomendada: 400 × 400 píxeles o mayor
- Peso máximo: 2 MB
- Fondo: Transparente (PNG) para mejor integración en carnets y encabezados
El sistema almacena el logo como Base64 en Firestore. Una imagen de 400×400 px en PNG ocupa aproximadamente 50–150 KB — dentro del límite del documento de Firestore (1 MB).
Ubicación
config/institucion con los campos lat, lng y radioMetros (predeterminado: 500m).
Configuración académica
Estos parámetros afectan el comportamiento del módulo de notas y boletines.
| Campo | Opciones | Efecto |
|---|---|---|
| Escala Primaria | Literal / Numérica / Descriptiva | Formato de notas en boletines de primaria |
| Escala Bachillerato | Numérica / Literal | Formato de notas en bachillerato |
| Lapsos por año | 2 semestres / 3 lapsos / 4 bimestres | Número de períodos en sábana y boletines |
| Nota mínima | 1–20 (típico: 10) | Umbral de aprobación en portal docente y Lab |
config/institucion. Al presionar "Guardar", el sistema hace un set() completo sobre ese documento, sobrescribiendo todos los campos de una vez.
Acceso del personal de portería
El acceso al módulo de portería ya no usa una clave PIN compartida. Cada operador de portería tiene su propio usuario con correo electrónico y contraseña, gestionado desde Configuración Institucional → Gestión de Usuarios.
- 1Ir a
/config-escuela→ sección Gestión de Usuarios. - 2Crear un nuevo usuario con rol Portería, asignando correo y contraseña.
- 3Entregar las credenciales al operador. Ese usuario queda restringido a la pantalla
/entrada-estudiantes.
Tabla de docentes
La tabla de docentes lista todos los perfiles registrados en la colección docentes. Cada fila muestra el perfil del docente y su relación con los horarios.
| Nombre | Cédula | Especialidad | Materias | Estado | Acciones |
|---|---|---|---|---|---|
| Prof. María López | 12345678 | Matemáticas | 3 materias | Activo | Horario Editar |
| Prof. Carlos Ruiz | 9876543 | Física | 2 materias | Inactivo | Horario Editar |
docentes con horarios usando la cédula como llave. Un docente sin horario puede existir en el sistema pero no tendrá franjas en el constructor de horarios.
Registrar docente
Al hacer clic en + Nuevo docente, se abre un modal con el formulario de creación. El ID del documento en Firestore es la cédula del docente.
Campos del formulario
| Campo | Obligatorio | Descripción |
|---|---|---|
| Cédula | Sí | ID del documento en Firestore. No se puede cambiar después. |
| Nombre completo | Sí | Aparece en horarios, portal y reportes. |
| No | Referencia. No es el email de acceso (ese va en Usuarios). | |
| Teléfono | No | Solo referencia institucional. |
| Especialidad | No | Texto libre. Aparece en la tabla de docentes. |
| Estado | Sí | Activo / Inactivo. Los inactivos no aparecen en el constructor de horarios. |
| Materias | No | Array de nombres. Se usa como referencia en el constructor de horarios. |
docentes, horarios y asistencias. Una vez creado el registro, cambiar la cédula requiere eliminar y recrear el perfil, y actualizar todos los horarios asociados.
Lista de materias
Las materias disponibles en los chips se cargan de la colección asignaturas (campo activo: true). Si una materia no aparece en la lista, debe ser creada primero en esa colección desde Firestore o desde el módulo de asignaturas.
Editar y desactivar docente
Editar perfil
Clic en Editar en la fila del docente. Se abre el mismo modal con los datos precargados. La cédula aparece en modo solo-lectura y no es editable.
Ver horario
Clic en Horario abre un panel lateral con todas las franjas del docente organizadas por día. Desde ahí hay un enlace directo al constructor de horarios.
Desactivar / Reactivar
El botón alterna el campo activo entre true y false. Un docente inactivo:
- No aparece en la lista del constructor de horarios
- No puede escanear QR ni registrar asistencia
- Sus horarios anteriores quedan en Firestore pero sin efecto
- Su cuenta de usuario en Firebase Auth permanece activa (desactivar por separado en Usuarios)
Roles del sistema
EnClase tiene tres roles. Cada rol tiene acceso a módulos distintos. El rol se almacena en el campo role del documento en la colección usuarios.
Acceso total. Puede crear y gestionar usuarios, configurar la institución y ver todos los módulos del sistema.
Gestión académica completa: estudiantes, horarios, docentes, reportes. No puede gestionar usuarios ni configurar la institución.
Solo accede al portal docente: su horario, asistencia de clase en vivo, registro de notas y EnClaseAI.
Tabla de usuarios
| Nombre | Rol | Cédula vinculada | Estado | Acciones | |
|---|---|---|---|---|---|
| Natalia Celis | director@colegio.edu.ve | Admin | — | Activo | Editar |
| Prof. María López | maria@colegio.edu.ve | Docente | C.I. 12345678 | Activo | Editar |
Crear usuario
Crear un usuario crea una cuenta en Firebase Authentication y guarda un documento en la colección usuarios con el UID como ID.
docentes) y su cuenta de acceso (usuarios + Firebase Auth) son cosas distintas. Un docente puede existir en docentes sin tener cuenta de usuario, y viceversa. Siempre registre primero el perfil en Gestión de Docentes, luego cree la cuenta aquí.
-
1Ingrese el email con el que el docente iniciará sesión. Idealmente el email institucional.
-
2Ingrese una contraseña temporal. El docente podrá cambiarla usando el link de restablecimiento.
-
3Seleccione el rol. Si es Docente, aparecerá el selector de cédula para vincularlo.
-
4Si el rol es Docente, seleccione su cédula del dropdown (carga desde
docentesactivos). Esto vincula la cuenta con el horario y el portal. -
5El sistema crea la cuenta en Firebase Auth sin desloguear al administrador actual (usa una instancia secundaria de Firebase). Luego guarda el documento en
usuarios/{uid}.
Resetear contraseña
En el modal de edición, el botón Enviar link para cambiar contraseña usa sendPasswordResetEmail() de Firebase. El docente recibirá un email con un enlace válido por 1 hora.
Desactivar usuario
El botón en el modal de edición actualiza el campo activo: false en Firestore. Esto impide el acceso desde la lógica de la aplicación (auth-guard.js verifica este campo), pero la cuenta en Firebase Auth sigue existiendo técnicamente.
Matriz de permisos
La siguiente tabla muestra exactamente qué módulos puede acceder cada rol. Esta matriz está integrada en la interfaz de /gestion-usuarios como referencia rápida.
| Módulo | Admin | Jefe | Docente |
|---|---|---|---|
| Gestión Académica | |||
| Gestión de Estudiantes | ✓ | ✓ | — |
| Carnets estudiantiles | ✓ | ✓ | — |
| Reporte MPPE | ✓ | ✓ | — |
| Docentes y Horarios | |||
| Gestión de Docentes | ✓ | ✓ | — |
| Gestión de Horarios | ✓ | ✓ | — |
| Disponibilidad de Docentes | ✓ | ✓ | — |
| Constructor de Horarios | ✓ | ✓ | — |
| Control de Estudios | |||
| Sábana de Notas | ✓ | ✓ | — |
| Auditoría Asistencia Docente | ✓ | ✓ | — |
| Portal Docente | |||
| Ver horario propio | ✓ | ✓ | ✓ |
| Asistencia en vivo de clase | ✓ | ✓ | ✓ |
| Registro de Notas | ✓ | ✓ | ✓ |
| EnClaseAI | ✓ | ✓ | ✓ |
| Administración | |||
| Generador QR Aulas | ✓ | ✓ | — |
| Multimedia / Pagos | ✓ | ✓ | — |
| Configuración de la Institución | ✓ | — | — |
| Gestión de Usuarios | ✓ | — | — |
Flujo completo — alta de un docente nuevo
Este es el proceso paso a paso para incorporar un nuevo docente al sistema desde cero:
-
1Config-escuela está completa — nombre, año escolar y logo guardados. Requisito previo.
-
2Ir a
/gestion-docentes→ clic en + Nuevo docente. Completar: cédula, nombre completo, email, especialidad, estado = Activo. Seleccionar las materias que dictará (chips). Guardar. -
3Ir a
/gestion-usuarios→ clic en + Nuevo usuario. Email (institucional), contraseña temporal, rol = Docente. En el dropdown de cédula, seleccionar al docente recién creado. Guardar. -
4Enviar credenciales al docente: email + contraseña temporal. Opcional: usar el botón "Enviar link para cambiar contraseña" para que el docente elija la suya.
-
5Asignar horario en
/horariosusando la cédula del docente. El docente ya aparecerá disponible en el constructor de horarios. -
6Docente listo. Al iniciar sesión en
/loginserá redirigido a/portal-docentedonde verá su horario, podrá registrar asistencia con QR y cargar notas.
/portal-docente y confirme que ve su horario. Si el horario no aparece, verificar que la cédula en usuarios coincida exactamente con la cédula en horarios.
Importar Docentes desde Excel
Cuando hay muchos docentes que cargar de una vez, se puede usar la importación masiva desde Excel en lugar de registrarlos uno a uno. El botón "Importar Excel" está en la barra de controles de /gestion-docentes.
Flujo de importación — 3 pasos
- 1Subir el archivo — Arrastrar el .xlsx a la zona punteada del modal o hacer clic para seleccionarlo. La plantilla oficial debe tener la hoja
DOCENTES. - 2Vista previa — El sistema muestra cada fila con su estado: ✅ listo / ⚠️ con aviso / ❌ con error. Los ❌ no se importan (falta cédula o nombre). Los ⚠️ sí se importan (sin email o sin especialidad).
- 3Confirmar — Clic en "Importar (N)". El sistema importa fila a fila con barra de progreso. Si una cédula ya existe, la omite sin error.
| Columna | Tipo | Descripción |
|---|---|---|
cedula | OBLIGATORIO | Solo dígitos. Se usa como ID del documento en Firestore. |
nombre | OBLIGATORIO | Nombre completo del docente. |
email | OPCIONAL | Correo electrónico. Sin él se muestra ⚠️ pero se importa. |
telefono | OPCIONAL | Teléfono con código de área. |
especialidad | OPCIONAL | Área o materia principal. Sin ella se muestra ⚠️ pero se importa. |
Personal Administrativo — Tabla
El módulo de personal administrativo y de servicio está en /panel-rrhh, en la pestaña "Personal Administrativo". Aquí se gestionan todos los empleados que no son docentes: coordinadores, secretarias, personal obrero, vigilancia, conserjes, etc.
La tabla muestra: nombre, cédula, cargo, teléfono, número de asistencias del mes en curso y estado (Activo/Inactivo). Se puede filtrar por texto (nombre o cédula) o por cargo usando el selector.
Agregar y Editar Personal
- 1Ir a
/panel-rrhh→ pestaña Personal Administrativo. - 2Clic en "+ Agregar". Completar cédula, nombre completo, cargo (seleccionar del menú), teléfono y estado.
- 3Clic "Guardar". La persona aparece en la tabla y queda registrada en Firestore bajo
personal/{cedula}. Desde ese momento la portería la reconocerá al escanear.
Para editar, hacer clic en el ícono de lápiz en la fila. Para desactivar sin eliminar, usar el botón de toggle en la columna Estado.
Importar Personal desde Excel
Para cargar muchos empleados a la vez, usar el botón "Importar Excel" en la pestaña Personal. El flujo es idéntico al de docentes: 3 pasos con vista previa.
| Columna | Tipo | Descripción |
|---|---|---|
cedula | OBLIGATORIO | Solo dígitos. |
nombre | OBLIGATORIO | Nombre completo del empleado. |
cargo | OBLIGATORIO | Debe ser exactamente uno de los 9 cargos válidos (ver lista arriba). Si el cargo no coincide, la fila queda como ❌ y no se importa. |
telefono | OPCIONAL | Teléfono de contacto. |
Módulo Secretaría
Solo roles Jefe y Administrador pueden acceder a /secretaria.
Consultar asistencia de cualquier persona del plantel (estudiantes, docentes y personal) sin necesidad de ir a la portería.
Tab 1 — Consulta de persona
Buscar por cédula o nombre. El sistema muestra la persona con su cargo/tipo, si tiene entrada o salida registrada hoy, y su estado de solvencia (si es estudiante). La búsqueda recorre las tres colecciones automáticamente.
Tab 2 — Asistencia del día
Vista unificada de todos los registros de portería del día actual, combinando asistencias_estudiantes, asistencias_docentes y asistencias_personal en una sola tabla. Cada fila muestra tipo (EST / DOC / PER), nombre, hora y tipo de registro (ENTRADA / SALIDA).
Checklist de configuración inicial
Configuración del plantel
- Logo del plantel subido (PNG/JPG)
- Nombre completo y siglas completados
- Código de Plantel MPPE ingresado
- Nombre del Director(a) completado
- Año escolar activo configurado (ej: 2025-2026)
- Dirección, municipio y zona educativa completados
- Escala de calificación y nota mínima definidos
Por cada docente nuevo
- Perfil creado en
/gestion-docentes(cédula, nombre, especialidad) - Materias asignadas en los chips del formulario
- Estado = Activo
- Cuenta creada en
/gestion-usuarioscon rol = Docente - Cédula vinculada en el dropdown de usuarios
- Credenciales entregadas al docente (o link de reset enviado)
- Horario asignado en el módulo de horarios
- Docente verificó acceso a
/portal-docente
- Manual de Horarios — construcción de la carga académica semanal
- Manual de Asistencia — flujo QR docente y asistencia en vivo
- Manual de Estudiantes — registro, carnets y solvencia