🚀 Plataforma de programación académica

🚀 Plataforma de programación académica

- 5 mins

Contexto

Sistema backend desarrollado para la Facultad de Medicina - Universidad de Antioquia que digitaliza y centraliza la gestión de programación académica: planes de estudio, syllabus de cursos, y documentación curricular oficial.

Reemplaza procesos manuales de documentación académica por un sistema estructurado con flujo de aprobación de cambios, generación automática de documentos oficiales en PDF/Word, y control de versiones de planes curriculares.


Stack Técnico


Arquitectura y Patrones

Clean Architecture - Separación en Capas

Arquitectura de 5 capas con separación clara de responsabilidades:

Request → Router → Schema (validación) → Service → CRUD → Model → PostgreSQL

Capa Ubicación Responsabilidad
Presentación routers/ Endpoints HTTP REST
Validación schemas/ Pydantic models (type-safe)
Negocio services/ Lógica de negocio y reglas académicas
Acceso Datos crud/ Operaciones CRUD reutilizables
Persistencia models/ Modelos SQLModel/SQLAlchemy

Type Safety Completo

Uso exhaustivo de Python type hints en todas las capas, aprovechando Pydantic para validación automática de datos de entrada/salida.


Funcionalidades Principales

1. Gestión Jerárquica de Programas Académicos

Modelo de datos académico completo:

Programa Académico (Medicina, Enfermería, etc.) └── Plan de Estudio (versión curricular 2020, 2023, etc.) └── Curso └── Programa de Curso (Syllabus) ├── Información General ├── Información Específica ├── Metodología └── Profesores

Control de versiones de planes curriculares con historial completo.

2. Sistema de Syllabus Completo

Diseño de programas de curso (syllabus) con 4 componentes estructurados:

3. Workflow de Solicitudes de Cambio

Sistema de aprobación para modificaciones a syllabus existentes:

4. Generación de Documentación Oficial

PDFs dinámicos:

Documentos Word:

5. Control de Acceso por Roles

Sistema RBAC con 10 roles institucionales:

Autorización granular: usuarios solo ven/editan programas de su ámbito de responsabilidad.


Highlights Técnicos

Asincronía con FastAPI

API completamente asíncrona (async/await) para máximo rendimiento:

Validación Automática con Pydantic

Todos los requests/responses validados con Pydantic schemas:

Migraciones con Alembic

Control de versiones de base de datos:

Templates Server-Side con Jinja2

Renderizado híbrido (API + Web):

Docker con Traefik + HTTPS Automático

Infraestructura lista para producción:

Testing Automatizado

Suite de tests con pytest:


Desafíos Técnicos Resueltos

  1. Modelo Académico Complejo: Diseño de esquema relacional que modela correctamente la jerarquía Programa → Plan → Curso → Syllabus, manteniendo integridad referencial y permitiendo versiones múltiples

  2. Generación de PDFs con Calidad Profesional: Implementación de WeasyPrint para convertir HTML/CSS en PDFs con formato institucional, preservando tablas complejas, imágenes y estilos

  3. Cálculo Automático de Créditos Académicos: Lógica para calcular automáticamente créditos según normativa colombiana (horas teóricas, prácticas, trabajo independiente)

  4. Autorización Jerárquica: Sistema de permisos que combina roles con estructura organizacional (Facultad → Programa → Curso) para controlar acceso granular

  5. Workflow de Aprobaciones: Máquina de estados para gestionar el ciclo de vida de solicitudes de cambio con notificaciones automáticas según rol del aprobador


Impacto


Documentación Técnica


Código

🔒 Proyecto privado institucional - Universidad de Antioquia


Julián Montoya

Julián Montoya

Backend Developer especializado en Python, AWS y Machine Learning