Skip to main content
The Schedules module lets you build the institution’s timetable by combining professors, classrooms, and time ranges into named schedule entries. Each entry specifies whether the session is theoretical or practical, who teaches it, and where it takes place. Schedule data is stored in a local SQLite database (horarios.db) so it persists between application sessions.

Data model

Each schedule entry contains the following fields:
public class FilaHorario
{
    public string Clave { get; set; }        // Schedule ID (e.g. H001)
    public string Tipo { get; set; }         // Type: Teórica, Práctica
    public string RangoHorario { get; set; } // Time range (e.g. 08:00 - 10:00)
    public string IDProfesor { get; set; }   // Professor ID reference
    public string IDAula { get; set; }       // Classroom ID reference
}
FieldDescription
ClaveUnique identifier for the schedule entry (e.g. H001, H002).
TipoSession type — either Teórica or Práctica. See Schedule types below.
RangoHorarioTime range in 24-hour format (e.g. 08:00 - 10:00, 11:00 - 13:00).
IDProfesorThe Clave of the professor assigned to this session, as defined in the Professors module.
IDAulaThe ID of the classroom assigned to this session, as defined in the Classrooms module.

Schedule types

Teórica

A lecture-based session held in a standard classroom or lecture hall. Use this type for sessions focused on concepts, discussion, and theory.

Práctica

A hands-on session held in a laboratory or workshop. Use this type for sessions focused on experimentation, coding, or lab exercises.

Time ranges

Time ranges follow the format HH:MM - HH:MM using the 24-hour clock. Enter the start time and end time separated by a space-dash-space (-). For example:
  • 08:00 - 10:00 — an early morning two-hour block
  • 11:00 - 13:00 — a mid-morning two-hour block
  • 14:00 - 16:00 — an afternoon block
The application does not currently enforce conflict detection for overlapping time ranges in the same classroom or for the same professor. Verify manually that a professor or room is not already assigned to another schedule entry in the same time slot.

Linking professors and classrooms

The IDProfesor and IDAula fields are foreign-key references to records in other modules:
  • IDProfesor must match the Clave of an existing professor in the Professors module.
  • IDAula must match the ID of an existing classroom in the Classrooms module.
Before adding schedules, make sure all professors and classrooms are already entered. This avoids entering IDs that do not correspond to any existing record.

SQLite persistence

Schedule data is stored in horarios.db, a SQLite database file bundled with the application. The file is copied to the output directory with the PreserveNewest policy, meaning your data is retained across builds during development. The application uses the following NuGet packages to interact with the database:
PackageVersion
SQLitePCLRaw.core3.0.2
System.Data.SQLite.EF62.0.3
Do not delete or manually edit horarios.db while the application is running. Doing so may corrupt the schedule data or cause the application to crash.

Adding a schedule

1

Open the Schedules module

Navigate to the Horarios section from the main menu.
2

Click Agregar

Click Agregar in the toolbar. The Agregar Horario window opens.
3

Fill in the fields

Enter a unique Clave, select the Tipo (Teórica or Práctica), enter the RangoHorario, and provide the IDProfesor and IDAula references.
4

Save the record

Confirm the form. The new schedule entry appears in the data table and is written to horarios.db.

Editing a schedule

1

Select a row

Click the schedule entry you want to update in the data table.
2

Click Editar

Click Editar in the toolbar. The Agregar Horario window opens pre-filled with the selected entry’s data.
3

Make your changes

Update any fields — for example, reassign the classroom or adjust the time range.
4

Save

Confirm the form to apply the changes.
If no schedule entry is selected when you click Editar, the application displays the message: Selecciona un horario para editar. Select a row first and then try again.

Deleting a schedule

1

Select a row

Click the schedule entry you want to remove.
2

Click Eliminar

Click Eliminar in the toolbar.
3

Confirm the deletion

A dialog asks: ¿Eliminar este horario? Click to confirm or No to cancel.
Deleting a schedule entry is permanent and removes the record from horarios.db. This action cannot be undone.

Sample records

ClaveTipoRangoHorarioIDProfesorIDAula
H001Teórica08:00 - 10:00P105A1
H002Práctica11:00 - 13:00P202L5

Build docs developers (and LLMs) love