Saltar al contenido

Expediente 05 · Experiencia

GYM VANCOUVER

Una plataforma escolar que conecta administración, docentes, estudiantes y familias sobre una misma fuente de verdad.

  • SvelteKit
  • TypeScript
  • Prisma
  • PostgreSQL
  • Tailwind CSS
  • AVIF

El reto

Un colegio no tiene un usuario genérico: administración configura el año, docentes publican y evalúan, estudiantes siguen su trabajo y familias necesitan información oportuna. La reconstrucción debía conectar esos recorridos sin convertir la interfaz en un laberinto empresarial.

Portada pública de la plataforma escolar Gym Vancouver
Portada pública real capturada desde la aplicación local; no muestra registros de estudiantes.

El enfoque

Reconstruí el sistema como una aplicación full-stack en SvelteKit con autorización en servidor y un modelo Prisma tipado sobre PostgreSQL. La navegación por rol mantiene cada superficie enfocada, mientras procesamiento de imágenes, reportes y generación documental viven detrás de límites explícitos del servidor.

Decisiones clave

  1. Usar una identidad con múltiples roles en lugar de duplicar personas entre portales separados.
  2. Aplicar límites por colegio y autorización en servidor para cada lectura y escritura.
  3. Tratar historial académico, imágenes y PDF según sus distintas necesidades de conservación y procesamiento.

Arquitectura técnica

Arquitectura full stack diseñada y construida de punta a punta por mí.

  1. 01 Experiencias por rol SvelteKit · TypeScript

    Navegación enfocada para administración, docentes, estudiantes y familias.

  2. 02 Frontera de servidor SvelteKit server

    Autenticación, autorización y acciones limitadas por colegio.

  3. 03 Modelo académico Prisma · PostgreSQL

    Personas, grupos, períodos, notas, asistencia y cartera.

  4. 04 Medios y reportes AVIF · PDF

    Imágenes optimizadas, boletines y documentos escolares.

Módulos

De qué está hecho el producto, tal como lo dividen sus propias pantallas.

  • 01 Estudiantes y grupos

    Matrícula, grupos y la familia detrás de cada estudiante.

  • 02 Académico

    Asignaturas, calificaciones y el calendario académico.

  • 03 Asistencia

    Asistencia diaria por grupo, con reportes.

  • 04 Boletines

    Boletines generados en PDF desde los mismos registros.

  • 05 Cartera y pagos

    Saldos, pagos y lo que debe cada familia.

  • 06 Circulares y publicaciones

    Circulares y publicaciones del colegio para las familias.

  • 07 Archivos

    Imágenes normalizadas a AVIF y documentos en blob storage.

Antes → después

  • Antes

    Portales separados e identidades duplicadas.

    Después

    Una identidad capaz de asumir varios roles.

  • Antes

    Familias enterándose tarde del trabajo escolar.

    Después

    Actividades, asistencia y notas en un mismo lugar.

  • Antes

    Autorización implícita en la interfaz.

    Después

    Cada lectura y escritura validada en el servidor.

Tecnologías

  • SvelteKit
  • TypeScript
  • Prisma
  • PostgreSQL
  • Tailwind CSS
  • AVIF
  • PDF

El resto de la caja

  • Zod
  • Paraglide
  • sharp
  • React PDF
  • Resend
  • Azure Blob
  • argon2
  • Lucide
  • Playwright
  • Vercel

Marcas de Simple Icons; los conceptos sin marca están dibujados en casa.

Bitácora

ago 2026 → sept 2026 · 2 meses activos

80 commits
1 repositorio
2 meses activos
ago 2026 Mes más intenso: sept 2026 · 46 commits sept 2026
  • app app · 80 commits ago 2026 → sept 2026

En el árbol

  • 32 rutas
  • 30 modelos de datos
  • 12 migraciones
  • 29 archivos de prueba
  • 448 archivos versionados

Leído del historial Git local el 6 oct 2026. Solo agregados.

El resultado

La reconstrucción funcional ya demuestra los cuatro recorridos con datos ficticios sembrados en módulos académicos, asistencia, comunicación y cartera. La versión actual incluye 31 rutas de producto y un conjunto documentado de capturas para revisar la experiencia sin tocar registros productivos.

Código privado — este archivo comparte el razonamiento, no el fuente.