# Contexto del proyecto

Fecha de documentación: 2026-10-08.

## Solicitud y alcance implementado

El usuario solicitó una aplicación escolar en SvelteKit, TypeScript, Tailwind CSS y MySQL mediante Drizzle/mysql2. La navegación debía basarse en tarjetas contextuales, sin menú lateral: sedes, módulos de sede y detalle de grado con asignaturas, docentes y matrículas. También pidió breadcrumbs.

Se aprobó primero una estructura de archivos y después se solicitó implementarla. La implementación incluye las siete rutas propuestas, componentes reutilizables, consultas reales de lectura, selector de año, búsqueda local de estudiantes, estados vacíos y páginas de error.

## Entorno y ubicación

El trabajo comenzó en `C:\xampp\htdocs\AI\occidente-tulua\reports`, que contenía reportes existentes. El proyecto nuevo se creó en la subcarpeta `gestion-escolar`; los reportes existentes no se editaron.

Ubicación de destino solicitada posteriormente por el usuario:

`C:\xampp\htdocs\AI\portal-svelte`

El proyecto debe quedar directamente en esa carpeta, sin una subcarpeta adicional `gestion-escolar`. Se conserva el nombre interno del paquete npm `gestion-escolar`.

## Hechos comprobados durante la implementación

- `educa25_docente` corresponde a una base de datos local. La conexión con el usuario indicado por el usuario respondió.
- Se inspeccionaron metadatos de MySQL y se identificaron las tablas `sedes`, `datoscurso`, `asignaturas`, `docentes`, `matriculados` y `estado`.
- Existen diferentes códigos de año, entre ellos `2026-2026`, `2026-1`, `2026-` y `2026`. La aplicación pide seleccionarlos explícitamente.
- El código utiliza SELECT; no se ejecutaron migraciones ni cambios en los datos escolares.
- En la revisión inicial se observaron ocho sedes. Este dato describe esa revisión, no un conteo fijo que deba codificarse en la aplicación.

## Decisiones tomadas

Se utilizó SvelteKit 3 después de que la instalación inicial reportara avisos de seguridad en dependencias anteriores. La configuración reside en `vite.config.ts`; no hay `svelte.config.js`. Los imports internos usan `#lib`. Las variables privadas se declaran en `src/env.ts`.

La interfaz usa tarjetas y paneles con estilos Tailwind, sin recursos externos de imágenes o tipografías. Los datos se cargan en el servidor mediante los archivos de rutas; no se añadió una API REST.

## Límites de esta etapa

Es una aplicación de consulta local. No incluye autenticación, roles, edición de matrículas, CRUD, carga de archivos ni despliegue público. La adscripción de docentes es actual, no un historial anual. El mapeo Drizzle es parcial y no debe usarse para generar migraciones.

No se ha establecido cuál de los códigos de año debe considerarse el año operativo del colegio. La selección queda en manos del usuario.

## Documentos relacionados

- [Arquitectura y datos](ARQUITECTURA.md)
- [Validaciones y continuidad](VALIDACION_Y_CONTINUIDAD.md)
- [Instalación y ejecución](../README.md)
