Kit de Creación: Sistema de Biblioteca C.P.E.M. Nº3 (Versión Scroll)

Kit de Creación: Sistema de Biblioteca

C.P.E.M. Nº3 - Tu guía completa paso a paso

Paso 1: La Base de Datos (Google Sheet)

Este es el cerebro de tu sistema. Sigue estos pasos para crearlo correctamente.

1.1 - Crear el Archivo y las Pestañas

  1. Ve a sheets.new para crear una nueva hoja de cálculo.
  2. Nómbrala **"Catálogo Biblioteca C.P.E.M. Nº3"**.
  3. Renombra la primera pestaña a **"Catálogo Maestro"**.
  4. Crea una segunda pestaña y llámala **"Listas"**.

1.2 - Configurar "Catálogo Maestro"

En la pestaña "Catálogo Maestro", crea las siguientes columnas en la primera fila:

Columna Descripción
ID_LibroCódigo único que le darás a cada libro (Ej: MAT-001).
TítuloTítulo completo.
AutorNombre del autor.
EditorialEditorial del libro.
Área/MateriaMateria principal (se convertirá en un menú desplegable).
Sistema_Viejo_AñoAño correspondiente al plan antiguo.
Sistema_Nuevo_AñoCiclo/Año correspondiente al plan nuevo.
EstadoSerá un menú: Disponible, Prestado, En Reserva.
Ubicación_FísicaOpcional: Estante, fila, etc.
Nombre_AlumnoSe llena al prestar.
Email_AlumnoSe llena al prestar.
ID_AlumnoSe llena al prestar.
Fecha_PréstamoSe llena al prestar.
Fecha_DevoluciónSe llena al prestar.
Condición_EntregaSe llena al prestar.
Condición_DevoluciónSe llena al devolver.
NotasCualquier otra información.

1.3 - Poblar la pestaña "Listas"

En la pestaña "Listas", copia y pega las áreas que me diste. Esto te permitirá crear menús desplegables y evitar errores.

Contenido para la pestaña "Listas"
Columna A (Áreas Plan Viejo) | Columna B (Áreas Plan Nuevo) | Columna C (Ciclos Plan Nuevo) -----------------------------|-------------------------------|----------------------------- MATEMÁTICA | GEOGRAFÍA | Unidad Pedagógica (1ro-2do) IDIOMA EXTRANJERO... | ECONOMÍA | Interciclo (3ro) CIENCIAS BIOLÓGICAS | CONSTRUCCIÓN DE CIUDADANÍAS | Orientado (4to y 5to) ...y así sucesivamente con todas las áreas que me proporcionaste.

Luego, usa el menú Datos > Validación de datos en las columnas "Área/Materia", "Sistema_Viejo_Año" y "Sistema_Nuevo_Año" para crear los menús desplegables apuntando a los datos de la pestaña "Listas".

Paso 2: Los Formularios de Google

Crea tres formularios desde forms.new. Para cada uno, ve a la pestaña "Respuestas", haz clic en el ícono de Sheets y vincúlalo a tu hoja de cálculo principal.

Formulario 1: Solicitud de Reserva

  • Nombre y Apellido
  • Correo Electrónico
  • DNI o Identificación de Alumno
  • Título del Libro que quieres reservar
  • Autor del libro (opcional)

Formulario 2: Registro de Préstamo (Uso Interno)

  • ID del Libro (del Catálogo Maestro)
  • Título del Libro (para la alerta)
  • Nombre y Apellido del Alumno
  • Correo Electrónico del Alumno
  • DNI o Identificación de Alumno
  • Fecha de Préstamo (tipo fecha)
  • Fecha de Devolución Prevista (tipo fecha)
  • Condición del Libro al entregar (opciones: Bueno, Regular, Con detalles)

Formulario 3: Registro de Devolución (Uso Interno)

  • ID del Libro (del Catálogo Maestro)
  • Condición del Libro al ser devuelto (opciones: Igual, Con nuevos detalles, Dañado)
  • Fecha de Devolución (tipo fecha)
  • Notas sobre la devolución (opcional)

Importante: Renombra las pestañas de respuestas que se crean automáticamente a "Solicitudes", "Préstamos" y "Devoluciones" para mayor claridad.

Paso 3: El Panel de Control (Gráficos y Alertas)

3.1 - Pestaña de Estadísticas y Gráficos

  1. Crea una nueva pestaña y llámala **"Estadísticas"**.
  2. En la hoja **"Préstamos"** (la de respuestas del formulario), añade una columna "Área del Libro". En la primera celda vacía (ej: J2), pega esta fórmula y arrástrala hacia abajo. (Asume que el ID del libro está en la columna B de "Préstamos").
    =IFERROR(VLOOKUP(B2, 'Catálogo Maestro'!A:E, 5, FALSE), "No encontrado")
  3. En la pestaña **"Estadísticas"**, celda A1, escribe "Áreas más solicitadas". En A2, pega:
    =QUERY(Préstamos!J:J, "SELECT J, COUNT(J) WHERE J IS NOT NULL GROUP BY J ORDER BY COUNT(J) DESC LIMIT 30 LABEL J 'Área', COUNT(J) 'Nº de Préstamos'")
  4. En la pestaña **"Estadísticas"**, celda D1, escribe "Libros más solicitados". En D2, pega (asume que el título está en la columna C de "Préstamos"):
    =QUERY(Préstamos!C:C, "SELECT C, COUNT(C) WHERE C IS NOT NULL GROUP BY C ORDER BY COUNT(C) DESC LIMIT 30 LABEL C 'Título del Libro', COUNT(C) 'Nº de Préstamos'")
  5. Selecciona los datos generados y usa el menú **Insertar > Gráfico** para visualizar la información.

3.2 - Alerta de Préstamos del Día

  1. En tu hoja de cálculo, ve a **Extensiones > Apps Script**.
  2. Borra todo el código que aparezca y pega el siguiente.
Código para Google Apps Script
function onOpen() { const HOJA_PRESTAMOS = 'Préstamos'; // ¡IMPORTANTE! Cambia esto si tu hoja de respuestas se llama diferente. const COLUMNA_FECHA = 'Fecha de Préstamo'; const COLUMNA_TITULO = 'Título del Libro'; // Asegúrate que el formulario de préstamo pida este dato. const COLUMNA_ALUMNO = 'Nombre y Apellido del Alumno'; const hoy = new Date(); hoy.setHours(0, 0, 0, 0); const hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(HOJA_PRESTAMOS); if (!hoja) return; const datos = hoja.getDataRange().getValues(); const encabezados = datos[0]; const idxFecha = encabezados.indexOf(COLUMNA_FECHA); const idxTitulo = encabezados.indexOf(COLUMNA_TITULO); const idxAlumno = encabezados.indexOf(COLUMNA_ALUMNO); if (idxFecha === -1 || idxTitulo === -1 || idxAlumno === -1) { SpreadsheetApp.getUi().alert('Error: No se encontraron las columnas necesarias en la hoja "' + HOJA_PRESTAMOS + '". Revisa los nombres.'); return; } const prestamosDeHoy = datos.slice(1).filter(fila => { if (!fila[idxFecha]) return false; const fechaPrestamo = new Date(fila[idxFecha]); fechaPrestamo.setHours(0, 0, 0, 0); return fechaPrestamo.getTime() === hoy.getTime(); }); if (prestamosDeHoy.length > 0) { let contenidoHtml = '<style>body{font-family:sans-serif; background-color:#fde8e8;} li{margin-bottom:8px;}</style><h2 style="color:#c53030;">🚨 Alerta: Préstamos de Hoy</h2><ul>'; prestamosDeHoy.forEach(fila => { const titulo = fila[idxTitulo] || 'Título no especificado'; const alumno = fila[idxAlumno] || 'Alumno no especificado'; contenidoHtml += `<li><b>${titulo}</b> prestado a <i>${alumno}</i></li>`; }); contenidoHtml += '</ul>'; const ui = HtmlService.createHtmlOutput(contenidoHtml).setWidth(450).setHeight(300); SpreadsheetApp.getUi().showModalDialog(ui, 'Préstamos Recientes'); } }
  1. Haz clic en el ícono de **Guardar** y autoriza los permisos si te lo pide.
  2. Recarga tu hoja de cálculo para probarlo.

Paso 4: Publicar el Catálogo para el Blog

Crearemos una vista limpia y pública del catálogo para que los alumnos la consulten.

  1. Crea una nueva pestaña en tu Sheet y llámala **"Catálogo para Alumnos"**.
  2. En la celda A1 de esta nueva pestaña, pega la siguiente fórmula:
    =QUERY('Catálogo Maestro'!A:I, "SELECT B, C, E, F, G, H WHERE B IS NOT NULL ORDER BY E, B", 1)

    Esta fórmula muestra Título, Autor, Área, Años y Estado, ordenado por Área y luego por Título.

  3. Con la pestaña "Catálogo para Alumnos" seleccionada, ve al menú **Archivo > Compartir > Publicar en la web**.
  4. En la ventana que aparece, asegúrate de que esté seleccionada la hoja "Catálogo para Alumnos" y el formato "Página web".
  5. Haz clic en **Publicar**.
  6. Copia el código `