The University of Calgary, one of Canada’s top research-intensive universities focused on contributing to society by finding solutions through research to everyday most persistent challenges
Product Development, Legacy Modernization
Education, Healthcare
ReactJS, Redux, React-router, Redux-saga, Flow-types, Formik, Axios, D3, Material-UI, Styled-components, React-DnD


OLab (OpenLabyrinth) is an open-source web-based education research platform that supports the creation and publication of virtual scenarios. Much of the earlier focus of Olab was on Virtual Patient (VP) cases – online representations of realistic clinical cases – that play an essential role in medical education. Designed to replicate clinical scenarios, they allow for the safe and risk-free training of medical students in cognitive thinking, clinical reasoning and skills-based action that are critical in real-life patient care and would be dangerous to practice during a real-life emergency. Our client, a University of Calgary professor, came to us with the idea of creating Version 4 of the OLab platform – an online activity modeling system that allows users to build interactive game-informed educational activities such as virtual patients, simulations, games, mazes, and algorithms. The system was expected to help create highly challenging and interactive virtual scenarios to offer a more engaging and immersive learning experience. One of the main objectives was to retain basic useful functions of the popular concept mapping tool that was first introduced in OLab3, while also making the user interface for scenario development simpler and more accessible.

We took on the following challenges:
Introduce big changes into the software architecture, while retaining some of the core data structures to allow teams to continue to use and expand their existing content.
Improve the existing functionality and port it over to cutting-edge technologies.
Move away from a standard Model-View-Controller (MVC) architecture and migrate the system architecture to an object-relational mapping (ORM) approach.
Provide a simple and easy-navigable user interface.
Develop and implement new features to extend the Designer functionality.
Extend a relatively new concept, Scoped Objects, to make the reuse of existing objects within cases more rational and extensible.
Implement Basic and Advanced Node Editor to allow map authors to quickly manage Nodes while working through the Map.


The simplified concept mapping tool allows users to simply join the dots to create their pathways.
Transition to microservices architecture provides greater platform flexibility and scalability.
Docker containers and an ORM approach to database schema management to make maintenance much easier for organizations.
The extended concept of Scoped Objects makes it possible to easily reuse objects more broadly across multiple Maps, or even Scenarios or Servers. The Scoped Object concept was extended to a number of items in the OLab4 arsenal: Files & Media, Questions, Constants (aka Elements in OLab3) and Counters.
A drag-and-drop panel that allows users to set objects to Node using short-codes and a mini admin panel that provides the ability to fill object data.
Scoped Objects Picker helps to find and insert the right object (variable) into the Node as a shortcode.
The Map Editor feature that helps to visualize and manage Maps: a tree of Nodes with Snap to Grid, Map Zoom, Map View modes, and other helpful functions.
Node Grid Editor and Counter Grid Editor that enable to quickly edit Nodes and Counters respectively in bulk.
Questions Editor that allows managing 10+ types of Questions (MCQ, Pick-choice, Single/multiline text, Drag & drop, SCT, SJT, Rich Text, etc).
The Map Templates feature helps save and create a Map from a template.
The improved ‘Create Template from Map’ feature allows saving the current map as a named template at any point in the map creation process.
The styled-components approach enables to draw the whole list of elements and allows flexibility and reusability.
UI Builder to work with drag-and-drop elements and graphs.
React component implementation to create directed graph editor without implementing any of the SVG drawing or event handling logic.
UI/UX redesign.


The ability to share objects across multiple maps helped to dramatically accelerate the design of some cases.
The redesigned UI/UX helped largely improve the ease of use of the app.
The application that was originally designed to create virtual patients now has grown far beyond these roots and supports a wider variety of educational activities.
All of these activities can be tracked and analyzed, which opens up a great many research opportunities.
Designed to support the delivery of teaching, the system serves somewhat as a simulator for students helping teach and level up their reasoning and decision-making skills and prepare them for real-world challenges.

Latest projects

Contact us

    We will process your personal information in accordance with our Privacy Policy.
    Send message

    We are a software development company that creates and transforms business solutions, products, and enterprises to drive growth today and into the future