Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Luisanchez0/modulo_Horario/llms.txt

Use this file to discover all available pages before exploring further.

Módulo Horario is a full-stack academic scheduling platform that automates the creation of conflict-free timetables for schools. It is built on four independent FastAPI microservices that handle authentication, subject catalogs, classroom inventories, and schedule generation, all coordinated by a React 19 frontend with an interactive calendar view.

What it does

The system takes care of the repetitive, constraint-heavy work of building a school schedule. Given a set of teachers, subjects, classrooms, and availability windows, the horario-service algorithm produces a complete weekly timetable that respects shift assignments and teacher availability — and exports it as a PDF when you’re done.

The four microservices

Each service owns a single domain and exposes its own REST API. They communicate over HTTP using an internal API key to keep inter-service calls authenticated.
ServicePortResponsibilityDatabase
usuarios-service8001JWT authentication, teacher CRUD, rate limitingMySQL
materias-service8002Subject catalog (async FastAPI + asyncpg)PostgreSQL
aulas-service8003Classroom inventory and capacityMySQL
horario-service8004Schedule generation, period management, CRUDPostgreSQL

Technology stack

Backend — All four services are built with FastAPI and use SQLAlchemy for ORM-based data access. materias-service uses the async driver asyncpg for PostgreSQL. Password hashing uses bcrypt; tokens use HS256 JWT. Rate limiting on auth endpoints is handled by slowapi. Frontend — The UI is a React 19 single-page application built with Vite. Schedule views use FullCalendar (resource-timegrid). PDF export is powered by jsPDF and html2canvas. Infrastructure — Services are orchestrated with Docker Compose. The stack runs two database engines: MySQL 8 for usuarios-service and aulas-service; PostgreSQL 16 for materias-service and horario-service.

Key capabilities

  • JWT authentication with ADMIN and DOCENTE roles, protected by rate limiting
  • Automatic schedule generation that respects teacher shifts and availability constraints
  • Interactive calendar with week, classroom, and teacher views via FullCalendar
  • PDF export of any generated schedule
  • Inter-service data validationhorario-service verifies teachers, subjects, and classrooms exist in their owning services before writing a schedule entry

Quick start

Get the system running locally with Docker in minutes.

Architecture

How the four services are structured and how they talk to each other.

Schedule management

Learn how automatic schedule generation works.

API reference

Explore the REST API for all four services.

Build docs developers (and LLMs) love