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.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.
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, thehorario-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.| Service | Port | Responsibility | Database |
|---|---|---|---|
usuarios-service | 8001 | JWT authentication, teacher CRUD, rate limiting | MySQL |
materias-service | 8002 | Subject catalog (async FastAPI + asyncpg) | PostgreSQL |
aulas-service | 8003 | Classroom inventory and capacity | MySQL |
horario-service | 8004 | Schedule generation, period management, CRUD | PostgreSQL |
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
ADMINandDOCENTEroles, 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 validation —
horario-serviceverifies 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.