Sistema de gestión académica universitaria para visualización de pensum, seguimiento de GPA y generación de horarios.
- Vista Árbol: Materias organizadas por semestre con diseño de tarjetas
- Vista Tabla: Lista compacta para ver todas las materias de un vistazo
- Vista Grafo: Visualización interactiva de prerrequisitos y dependencias
- Vista Estadísticas: Dashboard con gráficas de progreso y rendimiento
- Código de colores según estado:
- 🔵 Pendiente | 🟡 Inscrita | 🟢 Aprobada | 🔴 Reprobada | ⚫ Retirada
- Tipos de materia: Núcleo Carrera, Ciencias Básicas, Socio Humano, Énfasis, Complementarias, Electivas
- Visualización de prerrequisitos y correquisitos
- Drag & drop entre semestres (respetando prerrequisitos)
- Colores personalizados por materia
- Crea y gestiona varios planes de estudio
- Copia datos entre planes
- Alterna fácilmente entre diferentes escenarios académicos
- Simula inscripciones antes de hacerlas oficiales
- Visualiza qué materias puedes inscribir según prerrequisitos
- Prueba diferentes combinaciones sin afectar tu plan real
- Promedio Acumulado (GPA) en tiempo real
- Gráficas interactivas:
- Promedio por semestre (línea temporal)
- Distribución de estados (donut)
- Tipos de materias (donut)
- Tabla detallada por semestre
- Top 5 mejores y peores notas
- Modo oscuro compatible
- Agrega componentes de evaluación (parciales, tareas, proyectos)
- Asigna porcentajes a cada componente
- Cálculo automático de nota final
- Simula qué nota necesitas en evaluaciones pendientes
- Registra secciones disponibles por materia
- Marca franjas horarias bloqueadas (trabajo, almuerzo)
- Marca franjas preferidas (mañanas, tardes)
- Generación automática de todas las combinaciones sin conflictos
- Métricas por combinación: días libres, huecos, hora inicio/fin
- Ordenar por: días libres, menos huecos, entrada tarde, salida temprana
- Exportar: PNG (imagen), ICS (calendario)
- Historial completo de acciones
- Deshaz y rehaz cambios con atajos de teclado
- Funciona en todas las vistas
- URLs con hash para vistas del pensum (
#tree,#table,#graph,#stats) - Query params para el horario (
?sem=1) - Soporte para navegación con botones atrás/adelante del navegador
- Funciona offline: tus datos se guardan localmente
- Crea una cuenta para sincronizar entre dispositivos
- Refresh automático de tokens de sesión
- Keepalive programado para mantener activo el proyecto de Supabase
- Indicador de estado de conexión en tiempo real
- Aria-labels en elementos interactivos
- Tooltips explicativos en botones
- Indicador visual de conexión online/offline
- Confirmaciones en acciones destructivas
- Soporte completo para modo oscuro
- Ve a la página de Pensum
- Click en Importar
- Descarga la plantilla y llénala con tus materias
- Sube el archivo JSON
Formato del JSON:
{
"materias": [
{
"codigo": "MAT101",
"nombre": "Cálculo I",
"creditos": 4,
"semestre": 1,
"prerrequisitos": [],
"correquisitos": [],
"estado": "passed",
"color": "#5091AF",
"tipo": "basicas"
}
],
"calificaciones": [
{
"codigo_materia": "MAT101",
"nota": 4.2,
"componentes": [
{ "nombre": "Parcial 1", "porcentaje": 25, "nota": 4.0 },
{ "nombre": "Final", "porcentaje": 75, "nota": 4.3 }
]
}
]
}Tipos de materia válidos:
nucleo- Núcleo Carrerabasicas- Ciencias Básicassociohumano- Socio Humanoenfasis- Énfasiscomplementarias- Complementariaselectivas- Electivas
- Árbol (por defecto): Ver materias por semestre
- Tabla: Vista compacta tipo lista
- Grafo: Ver dependencias entre materias
- Estadísticas: Dashboard con métricas y gráficas
- Click en el dropdown de planes (arriba a la izquierda)
- Nuevo Plan: Crear un plan desde cero o copiando otro
- Editar: Cambiar nombre/descripción
- Administrar: Ver todos los planes, eliminar los que no uses
- Click en una materia inscrita o aprobada
- Cambia el estado y agrega la nota final
- O usa componentes para cálculo automático
- Ve a Horario
- Selecciona el semestre
- Registra las clases disponibles
- Marca franjas bloqueadas/preferidas
- Click en Generar
- Navega entre combinaciones
- Exporta como PNG o ICS
- Click en tu usuario (esquina superior derecha)
- Click en Sincronizar
- Tus datos se suben a la nube
- En Vercel, agrega
KEEPALIVE_SECRETcomo variable de entorno. - En GitHub, crea estos repository secrets:
KEEPALIVE_URL: URL pública de la app, por ejemplohttps://uni-app-eta.vercel.appKEEPALIVE_SECRET: el mismo valor configurado en Vercel
- El workflow
.github/workflows/keepalive.ymlllamará/api/keepalivecada 3 días.
- Arrastra materias entre semestres para reorganizar tu plan
- Usa Ctrl+Z / Ctrl+Y para deshacer/rehacer
- Simula inscripciones antes de hacer cambios reales
- Exporta tu pensum como backup antes de cambios grandes
- La app funciona offline - tus datos están seguros en tu navegador
- Usa franjas preferidas para priorizar ciertos horarios
- Cambia entre planes para explorar diferentes caminos académicos
| Categoría | Tecnología |
|---|---|
| Backend | Flask (Python) |
| Frontend | Tailwind CSS, Vanilla JavaScript |
| Gráficas | Canvas API nativo |
| Base de Datos | Supabase (PostgreSQL) |
| Autenticación | Supabase Auth |
| Hosting | Vercel |
Uni-App/
├── app/
│ ├── blueprints/ # Rutas Flask (API, pensum, schedule, etc.)
│ ├── models/ # Modelos Pydantic
│ ├── services/ # Servicios (database, etc.)
│ ├── static/
│ │ ├── css/ # Estilos
│ │ ├── js/ # JavaScript (storage, theme, etc.)
│ │ └── templates/ # Plantillas JSON de ejemplo
│ └── templates/ # Templates Jinja2
├── config.py # Configuración
├── requirements.txt # Dependencias Python
└── vercel.json # Configuración de deploy
¿Encontraste un bug o tienes una idea?
- Abre un Issue
- O haz un Pull Request
Este proyecto está licenciado bajo la GNU General Public License v3.0.
Hecho con ❤️ para estudiantes universitarios