Fabian Daugs

20 Oktober 2022

Devlog: How we use the Bryntum Scheduler

The Challenge

Applysia develops software to plan and support the process of digital assessments. Our product consists of an backend interface (our so called Cockpit) to plan assessments (e.g. define the competence model) and an iOS App that will be used by the observers during an assessment to note their observations and rate the candidates with regards to the competence model. Further, we also provide an interface for the candidates (Candidate Portal), so that they can access and download documents and media files. All functionalities in the Candidate Portal are optional. 

Our customers want to map their individual processes and ensure that they never lose sight of important information. But before using Bryntum Scheduler, our customers could define which exercises should be carried out in an assessment, but not when and by whom. Therefore, this planning had to be done outside our software, mostly with tool such as Excel.

We wanted to enable our customers to do this scheduling with our software by implementing a feature that would allow an assessment to be planned in our software by using drag and drop. The feature had to allow to plan which candidate, in which exercise, is to be observed by which observers, when, and who of the observers is the lead in that specific exercise.

Using the Bryntum Scheduler to plan assessments

We now use the Bryntum Scheduler component in combination with the grid component, to fulfill this requirement. Before scheduling, users specify which exercises are to be conducted and how long each exercise takes. Then they specify which candidates are to be assessed and which observers are assigned for the assessment, and when it should begin. 

Based on this information, the software generates a list of events (exercises), that needs to be planned. Since each candidate has to go through each exercise once, each of these events corresponds to the combination of one candidate and one exercise. The duration of these events corresponds to the length of the exercise. These events can then be assigned via drag and drop, to the observer, that are displayed as columns. Then additional observers can be assigned to the event. While doing this, we validate every event, to ensure, that neither observer nor candidate has to attend multiple exercises at the same time. Over time we have also added the functionality to plan group exercises, so that one (or more) observers can be assigned to more than one candidate. 

Once the whole assessment is planned, each observer’s individual schedule is displayed in the app, and he/she can access the exercise for a given time, where the right candidate(s) is/are preselected. The process of distribution and managing a time schedule outside of the application is not longer necessary.

Implementation Details

We integrated the scheduler in our existing application using the Vue.js component. The observers are modeled as as resources. The remaining application-specific data is stored in the event model. We realized this by subclassing the EventModel:

class AssessmentEvent extends EventModel {
  static get fields() {
    return [
        name: 'eventColor', type: 'string', readOnly: true, persist: false,
        name: 'candidateName', type: 'string', readOnly: true, persist: false,
        name: 'exerciseName', type: 'string', readOnly: true, persist: false,
      { name: 'candidateId', type: 'string', readOnly: true },
      { name: 'exerciseId', type: 'string', readOnly: true },
      { name: 'leadObserverId', type: 'string', persist: true },

This also allows us to specify attributes, that are only relevant for displaying the ui and don’t need to be persisted, by setting persist: false and readOnly: true to prevent them from being altered.

The multi-assignment feature (multiple observers can observer a single candidate in an exercise) was implemented by modeling the assignments as separate resources using the AssignmentStore that is provided by Bryntum Scheduler. Similarly, we implement the multi-assignment for candidates.

The steps ahead

We’re very happy with our current functionality and get very good customer feedback for it. Also the user adoption ist very high, we plan to further extend it’s functionality. Some additional features planned for the future include:

  • Introduce the concept of observer teams, that always get assigned to the same exercises
  • Automatically show the generated timetable in the Candidate Portal for the candidates in addition to showing it in the App for the observers
  • Allow to define a preparation duration for an exercise, that is used by the candidates to prepare before the exercise starts.
  • Additionally allow “non-exercise times” such as breaks, lunch & dinner times to be assigned to both candidates as well as observers to further support the smooth planning of the assessment and thus increase the assessment experience for both observers and candidates