Skip to content

chamoso/cotraret-ects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

COTRARET — Reconocimiento de créditos ECTS asistido por IA

Plataforma web para la gestión y tramitación de solicitudes de reconocimiento de créditos ECTS por actividades universitarias (culturales, deportivas, de representación, solidarias y formación transversal), desde la subida del expediente del estudiante hasta la firma electrónica del informe oficial, con inteligencia artificial que asiste pero no decide (human-in-the-loop).

Desarrollada como Proyecto de Innovación Docente para la Facultad de Ciencias de la Universidad de Salamanca (COTRARET — Comisión de Transferencia y Reconocimiento de Créditos). Su arquitectura multi-facultad permite adaptarla a otros centros sin escribir código.

⚠️ Datos de ejemplo. Este repositorio contiene únicamente datos ficticios (coordinadores, correos @example.edu, NIF 12345678A, etc.). No incluye datos personales reales, secretos ni expedientes.

¿Qué hace?

  1. El PTGAS (gestión) sube el expediente del alumno/a (ZIP o PDFs sueltos).
  2. Se aplica OCR a los documentos escaneados y se extraen los datos del solicitante y se clasifican los certificados por tipo de actividad, proponiendo los ECTS.
  3. El coordinador del grado revisa, comenta, valida y genera el informe oficial.
  4. El expediente vuelve al PTGAS, que lo envía a firma.
  5. Doble firma electrónica (PAdES, con AutoFirma): primero el Presidente de la COTRARET y después el Decano/a.

Cada transición queda registrada en una auditoría atribuible a una persona.

Roles

  • admin — administración global (super-admins configurables por entorno).
  • ptgas — gestión, acotado a su facultad.
  • coordinator — coordinador/a de grado, acotado a sus grados.
  • firmante — Presidente/a de la COTRARET (1.ª firma).
  • decano — Decano/a (2.ª firma).

Stack

  • Web: Next.js 16 (App Router) · React 19 · TypeScript · Tailwind CSS 4 · Zustand · TanStack Table · Auth.js v5 (JWT; Google e IdUSAL/SAML) · Prisma 6 · PostgreSQL.
  • IA (ai-service/, Python): FastAPI · Tesseract (OCR) · modelos de lenguaje en español (NER/QA) · clasificador por recuperación (embeddings + reglas de prioridad), diseñado para operar con pocos datos y de forma explicable.
  • Informe: PDF server-side con pdf-lib, reproduciendo la plantilla oficial.
  • Firma: AutoFirma (cliente @firma), formato PAdES.

Arquitectura, modelo de datos, subsistemas, API y seguridad en docs/DOCUMENTACION_TECNICA.md.

Puesta en marcha

Requisitos: Node.js 22+, PostgreSQL 14+, (opcional) Python 3.11+ para el servicio de IA, Tesseract y poppler.

# 1. Dependencias
npm install

# 2. Configuración
cp .env.example .env.local        # edita los valores (DB, secretos, correos…)

# 3. Base de datos
npx prisma migrate deploy         # aplica el esquema
npx prisma db seed                # datos de ejemplo (ficticios)

# 4. Desarrollo
npm run dev                       # http://localhost:3001

Servicio de IA (opcional; sin él la app usa un fallback determinista por reglas):

cd ai-service
pip install -r requirements.txt
uvicorn main:app --host 127.0.0.1 --port 8000

Con Docker para la base de datos: docker compose up -d.

Calidad

npm test          # tests unitarios (Vitest)
npm run lint      # ESLint
npx tsc --noEmit  # type-check

Seguridad

La plataforma trata datos personales y produce documentos oficiales. Incorpora control de acceso por rol y por facultad, cifrado de credenciales (AES-256-GCM), rate limiting, cabeceras de seguridad (CSP/HSTS…), anti-replay en SAML y auditoría. Antes de desplegar, lee SECURITY.md y define tus propios secretos por entorno. Comunica vulnerabilidades mediante los GitHub Security Advisories del repositorio.

Equipo y autoría

Proyecto de Innovación Docente ID2025/251 (convocatoria 2025/2026, Universidad de Salamanca), Facultad de Ciencias:

  • Pablo Chamoso Santos (coordinador)
  • Juan Manuel Rodríguez Díaz
  • Agustina Fernández Fernández
  • Fernando De La Prieta Pintado
  • Sara Rodríguez González
  • Lorena Sánchez Pravos

Los coordinadores, PTGAS y demás datos de personas que aparecen en los seeds y ejemplos son ficticios; los únicos nombres reales del repositorio son los del equipo del proyecto, como autoría.

Licencia

MIT

About

Reconocimiento de créditos ECTS asistido por IA. Proyecto de Innovación Docente ID2025/251, convocatoria 2025/2026, Universidad de Salamanca.

Resources

License

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors