Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Institution Packet

The Institution Packet defines the complete structure and data for an institution within the DITA system. It serves as the root configuration for an institution's scheduling and resource management, including its calendar, facilities, learners, instructors, supervisors, resources, subjects, courses, and organizational units.

Components

The Institution Packet is composed of several aggregates, each responsible for a specific domain of the institution's data:

  • Calendar: Defines the institution's scheduling calendar, including recurring time periods, availability statuses, holidays, and scheduling capacity divisions.
  • Facilities: Physical spaces such as classrooms, labs, and conference halls.
  • Learners: Individuals enrolled in courses.
  • Instructors: Individuals responsible for teaching courses.
  • Supervisors: Individuals who manage facilities or other resources.
  • Resources: Educational materials such as books and equipment.
  • Subjects: Standard educational topics such as "Physics 101".
  • Courses: Scheduled offerings of subjects.
  • Units: Organizational units such as departments or schools.

Example

Below is an example of an Institution Packet configuration in YAML format.

apiVersion: apps/v1
kind: InstitutionPacket

name: Brisbane Central Primary School

address:

cal:
  avails:
    - type: Weekly
      start: 2026-01-28T00:00:00+10:00
      end: 2026-12-12T23:59:59+10:00
      time_cells:
        - type: Daily
          start:
            day: Mon
            time: 00:00:00
          end:
            day: Fri
            time: 23:59:59
          time_cells:
            # Period 1: 08:30 - 09:20
            - type: Basic
              start: 08:30:00
              end: 09:20:00
              rules: []
              status: Available
              div_cap: 1

            # Period 2: 09:20 - 10:10
            - type: Basic
              start: 09:20:00
              end: 10:10:00
              rules: []
              status: Available
              div_cap: 1

            # Break 1 (Morning Tea): 10:10 - 10:40 (Excluded)

            # Period 3: 10:40 - 11:30
            - type: Basic
              start: 10:40:00
              end: 11:30:00
              rules: []
              status: Available
              div_cap: 1

            # Consolidation: 12:20 - 13:00
            - type: Basic
              start: 12:20:00
              end: 13:00:00
              rules: []
              status: Available
              div_cap: 1

            # Break 2 (Lunch): 13:00 - 13:30 (Excluded)

            # Period 5: 13:30 - 14:20
            - type: Basic
              start: 13:30:00
              end: 14:20:00
              rules: []
              status: Available
              div_cap: 1

            # Period 6: 14:20 - 15:10
            - type: Basic
              start: 14:20:00
              end: 15:10:00
              rules: []
              status: Available
              div_cap: 1

        - type: Basic
          start:
            day: Fri
            time: 09:20:00
          end:
            day: Fri
            time: 10:10:00
          rules: []
          status: Undesired
          div_cap: 1

    - type: Holiday
      start: 2026-01-28T00:00:00+10:00
      end: 2026-12-12T23:59:59+10:00
      country: "au-qld"
      status: Unavailable

facilities:
learners:
instructors:
supervisors:
resources:
subjects:
courses:

units:
  - name: Primary Years
    address:
    cal:
      avails:
    facilities:
    learners:
    instructors:
    supervisors:
    resources:
    subjects:
    courses:

The calendar field contains the institution's calendar. The calendar contains an avails collection whose entries define the institution's available and unavailable periods, scheduling preferences, holidays, and capacity divisions. The structure and semantics of the calendar are defined separately in the Calendar documentation.

A Basic time cell can use div_cap to define how its time range can be allocated for scheduling. A value of 1 represents a single scheduling capacity for the entire interval, while values greater than 1 allow the interval to provide multiple capacity divisions. A value of 0 makes the interval flexible, allowing a scheduled activity to use any portion of the defined time range.

Units can also define their own calendar when scheduling information needs to be specified at the unit level.