Facultad de Ciencias — Universidad Nacional de Ingeniería · Lima, Perú
Plataforma web independiente, open-source y de costo $0 creada por y para la comunidad académica de la FC.
La Facultad de Ciencias tiene más de 65 años formando matemáticos, físicos, químicos e informáticos. Pero la información que un estudiante necesita en el día a día — mallas curriculares, prerrequisitos, creditaje, trámites, correos oficiales, reglamentos de evaluación — siempre ha estado dispersa entre:
- PDFs enterrados en el sitio de la DIRCE que cambian de URL cada semestre.
- Resoluciones decanales impresas que nadie digitaliza.
- Grupos de WhatsApp donde la información caduca o se distorsiona.
- Canales no oficiales que repiten datos sin verificar.
Este proyecto centraliza, estructura y verifica toda esa información en una interfaz rápida, accesible desde cualquier celular, sin login, sin servidores que pagar y sin frameworks que mantener.
No es una página decorativa. Es una herramienta de consulta diaria que le ahorra al cachimbo semanas de desorientación y al alumno de ciclos avanzados horas buscando formularios o prerrequisitos.
Páginas dedicadas para las 5 carreras con mallas curriculares interactivas, módulos de certificación (Ley N° 30220), directorio de contacto verificado y descarga directa de PDFs oficiales.
| Escuela | Plan | Créditos | Ciclos | Dataset |
|---|---|---|---|---|
| Ciencia de la Computación | 2018 | 202 CR | 10 | data/mallas/computacion.json |
| Física | 2018 | ~208 CR | 10 | data/mallas/fisica.json |
| Matemática | 2018 | ~208 CR | 10 | data/mallas/matematica.json |
| Química | 2018 + N3 2024 | ~208 CR | 10 | data/mallas/quimica.json |
| Ingeniería Física | 2018 | ~208 CR | 10 | data/mallas/ingenieria-fisica.json |
Las mallas se renderizan dinámicamente desde JSON (js/mallas.js). Acordeones <details> nativos, iconos SVG vectoriales, resúmenes con formato 5 asignaturas · 21 CR y botones de descarga de los 17 PDFs oficiales (~83 MB).
| Página | Qué resuelve |
|---|---|
primer-ciclo.html |
Las 5 asignaturas troncales (BMA01, BMA02, BFI01, BQU01, BIC01), 21 CR, horas semanales, bibliografía, las 3 etapas cronológicas del primer semestre y errores comunes del cachimbo. |
tramites.html |
Paneles navegables para matrícula INTRALU, rectificación de notas, ficha socioeconómica, carné SUNEDU, sustitutorios, constancias, grados y títulos. |
campus.html |
Pabellones R1 y R2, biblioteca (17,800+ volúmenes, catálogo UNI-KOHA), laboratorios, comedores y servicios. |
consejos.html |
Estrategias de estudio, consejos de egresados y movilidad académica (OCRI, becas). |
cientificos.html |
Investigadores y egresados destacados de la FC en universidades internacionales. |
| Página | Qué resuelve |
|---|---|
faq.html |
FAQ categorizada en acordeones con buscador en vivo que filtra en tiempo real. |
grupos.html |
Directorio de 8+ agrupaciones estudiantiles (ACECOM, AEA, GEFT, GreIC, etc.). |
recursos.html |
Hub de herramientas de software y repositorios de estudio. |
Calculadora de Promedio Ponderado Acumulado (PPA), simulador de tercio/quinto superior y accesos directos a sistemas UNI (DIRCE, ORCE, INTRALU, Aula Virtual).
Buscador interactivo de solucionarios y exámenes. Consume data/recursos/solucionarios.json (31+ recursos catalogados con la nomenclatura estandarizada en NOMENCLATURA.md).
fc-uni/
├── css/
│ └── styles.css ← Design System completo: tokens HSL, modo claro/oscuro,
│ Inter + Cormorant Garamond, rejilla fluida (2,200+ líneas)
├── js/
│ ├── components.js ← Web Components: <fc-header> y <fc-footer> centralizados
│ ├── main.js ← Tema claro/oscuro, menú móvil, IntersectionObserver
│ ├── mallas.js ← Motor de mallas curriculares desde JSON vía fetch()
│ └── comunidad.js ← Renderizado dinámico de grupos y científicos
│
├── data/
│ ├── mallas/ ← 5 JSON (450+ asignaturas: código, créditos, HT/HP, prereqs)
│ ├── documentos/ ← 17 PDFs oficiales organizados por escuela
│ ├── recursos/ ← solucionarios.json (31+ exámenes catalogados)
│ └── comunidad/ ← grupos.json, cientificos.json
│
├── escuelas/ ← Páginas de las 5 carreras + hub + template
├── guia/ ← 5 guías estudiantiles + hub + template
├── comunidad/ ← FAQ, grupos, recursos
├── assets/ ← Imágenes del campus, logos, favicons
├── templates/ ← Plantillas HTML reutilizables
│
├── index.html ← Landing page institucional
├── portal.html ← Calculadora PPA + accesos a sistemas UNI
├── acerca.html ← Manifiesto del proyecto
├── biblioteca.html ← Buscador de solucionarios
├── descentralizacion.html ← Principios de resiliencia y hosting $0
│
├── GOBERNANZA.md ← Protocolo de relevo generacional decenal
├── NOMENCLATURA.md ← Estándar: CODIGO_EVAL_PERIODO_ESTADO.pdf
└── .gitignore
| Decisión | Motivo |
|---|---|
| HTML/CSS/JS vanilla, cero frameworks | React o Next.js requieren npm install, un build y un mantenedor que entienda el toolchain. Cuando se gradúe, el proyecto muere. HTML puro se edita con Bloc de Notas. |
Web Components (<fc-header>, <fc-footer>) |
Header y footer definidos en 1 archivo (components.js). Las 23 páginas heredan automáticamente. Cambiar un enlace = editar 1 archivo, no 23. |
| Datos en JSON plano | Las mallas viven en data/mallas/[escuela].json. Para agregar una carrera nueva: crear un JSON y declarar un <div data-escuela="nombre">. Sin tocar JavaScript. |
| Hosting estático gratuito | GitHub Pages, Cloudflare Pages o Netlify. $0/mes. Sin backend, sin BD, sin parches de seguridad. |
| CSS custom properties (HSL) | Un solo styles.css con --accent, --bg, --text. El toggle cambia [data-theme="dark"] y localStorage lo persiste. |
- Crear
data/mallas/nueva-escuela.jsoncon el schema:{ "escuela": "Nombre", "codigo_escuela": "XX", "plan": "2025", "creditos_totales": 210, "ciclos": [ { "ciclo": 1, "cursos": [ { "codigo": "BMA01", "nombre": "Cálculo Diferencial", "creditos": 5, "ht": 3, "hp": 3, "prereq": [] } ] } ] } - Crear
escuelas/nueva-escuela.htmlbasándose entemplates/escuela_template.html. - Agregar el enlace en
js/components.js.
Editar data/recursos/solucionarios.json siguiendo NOMENCLATURA.md:
BMA01_PC1_2025-1_SOL.pdf → Cálculo Diferencial, PC1, 2025-1, Solucionario
Editar data/comunidad/grupos.json o cientificos.json. El renderizador (comunidad.js) genera las tarjetas automáticamente.
Editar únicamente js/components.js. Las 23 páginas lo heredan.
| Problema | Archivo | Detalle |
|---|---|---|
| Buscador de trámites sin funcionalidad | guia/tramites.html |
El <input type="search"> está renderizado pero no tiene controlador JS para filtrar paneles. |
| Navegación por pestañas incompleta | guia/tramites.html |
Las pestañas de trámites no activan/desactivan paneles por clic. |
| Media query redundante | css/styles.css L128-155 |
@media (prefers-color-scheme: dark) redefine variables que ya gestiona [data-theme="dark"]. |
Carpeta assets/icons/ vacía |
assets/icons/ |
Reservada para SVGs pero los iconos están inline. |
- Calculadora de PPS y PPA: Lógica de cálculo real con peso por créditos y sistema F/G UNI.
- Buscador Global de Cursos (Omnibox): Buscar cualquier asignatura por código (
BMA01,CC212) o nombre en los 5 JSON simultáneamente. - Visor de Grafo de Seriación (DAG): Visualización con D3.js o Mermaid.js de cadenas completas de prerrequisitos.
- Simulador de Horarios: Armar grillas sin cruces antes de inscripción en INTRALU.
- Service Worker (PWA): Caché offline para consultar mallas y guías sin conexión en el campus.
- Solucionarios Comunitarios: Sistema para subir enunciados y soluciones vía GitHub Discussions o PRs automáticos.
- Filtro avanzado en Biblioteca: Selector por semestre, tipo de evaluación (PC, EP, EF, SUB) y escuela.
- Página de Posgrados: Maestrías y doctorados en Física, Matemática, Química y Computación.
- Sección Alumni: Red de contacto con egresados para mentoría y becas OCRI.
- i18n (español/inglés): Para las secciones de escuelas y mallas, útil para acreditación ABET.
- Sube solucionarios: Edita
data/recursos/solucionarios.jsoncon el formato deNOMENCLATURA.md. Abre un PR. - Corrige datos: ¿Prerrequisito mal? ¿Cambió el director? ¿Un correo no funciona? Abre un Issue con la fuente oficial.
- Actualiza la FAQ: Agrega preguntas que todo cachimbo hace y no están en
comunidad/faq.html.
- Actualiza contacto en
data/comunidad/grupos.json. - Agrega tu logotipo en
assets/images/grupos/.
- Implementa el buscador de trámites en
guia/tramites.html. - Conecta la calculadora de PPA en
portal.html. - Construye el visor de grafos de prerrequisitos.
- Revisa los Issues abiertos.
git clone https://github.com/TU-USUARIO/fc-uni.git
git checkout -b feat/calculadora-ppa
# Haz tus cambios
git commit -m "feat(portal): implementar cálculo PPA"
git push origin feat/calculadora-ppa
# Abre un PR contra mainConvención de commits: tipo(alcance): descripción
| Prefijo | Uso |
|---|---|
feat |
Nueva funcionalidad |
fix |
Corrección de dato o bug |
docs |
Solo documentación |
refactor |
Reestructuración sin cambiar funcionalidad |
| Documento | Propósito |
|---|---|
GOBERNANZA.md |
Protocolo de relevo generacional decenal. Cómo se transfiere el mantenimiento para que sobreviva a la graduación de sus creadores. |
NOMENCLATURA.md |
Estándar obligatorio para archivos académicos: CODIGO_EVAL_PERIODO_ESTADO.pdf. |
documentos/contexto-proyecto.md |
Mapeo técnico de los 23 HTML, 4 scripts JS, datasets JSON y dependencias. |
documentos/auditoria-pdfs-y-arquitectura.md |
Auditoría de los 17 PDFs oficiales y plan de desacoplamiento datos-interfaz. |
| Dato | Valor |
|---|---|
| Correo de Escuelas (área 2) | escuelas_fc2@uni.edu.pe |
| Correo de Escuelas (área 1) | escuelas_fc1@uni.edu.pe |
| Mesa de Partes FC | mesadepartes_fc@uni.edu.pe |
| Decano (2023–) | Dr. Heriberto A. Sánchez Córdova |
| Acreditación ABET | Ingeniería Física |
| Biblioteca FC | 17,800+ volúmenes · Catálogo UNI-KOHA |
| Instituto de Investigación | IIFUNI · 20+ grupos activos |
Distribuido bajo la Licencia MIT. Software libre creado para la comunidad universitaria de la Facultad de Ciencias de la UNI.
El contenido curricular (planes de estudio, mallas, resoluciones) es propiedad intelectual de la Universidad Nacional de Ingeniería y se reproduce con fines informativos y educativos.
«Los estudiantes se gradúan, la ciencia y la comunidad permanecen.»
Facultad de Ciencias — Universidad Nacional de Ingeniería
Creado por @MiniLux0 · Lima, Perú
