The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Stefano Bianchi from Softeco Sismat, an ICT Italian company that participates in the TELL ME project, an European Commission-funded research initiative to improve training in small and medium-sized manufacturing environments. This case study illustrates a Dojo-based user interface for a Technology Enhanced Learning system
Q: How did you first learn about Dojo?
A: We were looking for a solid JavaScript framework to develop a prototype for a complex, desktop-like web user interface (UI) to support learning activities for blue collar workers at the workplace. We evaluated several different renown frameworks and we found references to Dojo in several JavaScript framework evaluation tables – we then decided to give it a chance considering its features and the positive feedback.
Q: Why did you choose Dojo?
A: At a very first glance, Dojo seemed like a robust JavaScript framework for client-based desktop-like applications, shipped with several interesting built-in features (plenty of ready to use components and widgets, such as e.g. the Store-based Tree widget and the rich chart & graphing library). Also, the documentation (and tutorials, in particular!) was rather rich and complete, providing an incremental guide for differentiated (novice, intermediate and expert) users. The Asynchronous Module Definition (AMD) and Object Oriented (OO) approach was also a plus. As for our previous expertise in Rich Internet Application (RIA) development, what really convinced us to adopt Dojo was the possibility to replicate on client-side the same desktop-like functionality that we previously deployed with a Java-based RIA frameworks on server-side. As the project we are participating in also addresses mobile devices, the Dojo Mobile toolkit represented a valuable asset for future development.
Q: Were you previously using another toolkit?
A: In previous research projects, we extensively used several JavaScript libraries and frameworks – Prototype, Scriptaculous, jQuery, ExtJS to name a few. Working with Dojo represented for our Research & Innovation division a good opportunity to extend our expertise in JavaScript frameworks.
Q: What does your application or service do?
A: The prototype we developed for the front-end user interface of the TELL ME (Technology-Enhanced Learning Livinglab for Manufacturing Environments) system includes several different widgets (“chunks” of HTML5/JavaScript/CSS code that can be used independently or assembled in a portal/desktop-like layout) that provide different learning-oriented functionality. The main aim is to allow a blue collar worker to express a learning need (e.g. “what do I need to learn/be trained/recap about?”) by e.g. selecting a set of predefined tags from several complementary domain taxonomies (i.e. trees of concepts describing activities, tools etc. in a given workplace) and to receive back a learning path (i.e. a list of learning-oriented activities) including different learning contents to be consumed in order to acquire or improve specific working skills. Each type of learning content (documents, videos, pictures, lessons etc.) should be then consumed/launched in a specific widget, with the possibility to also provide social feedback such as ratings and comments.
Q: How does your application use Dojo?
A: The whole application has been developed from scratch with Dojo. Each widget included in the UI can be used independently or assembled according to specific requirements by means of native Dijit and DojoX components such as BorderContainer (for the whole layout) and ContentPane (for inclusion of single widgets). The widget for the selection of taxonomy concepts is based on Dijit’s Tree component powered by JsonStore, following one of the many examples provided in the excellent tutorials. The widgets extensively use the native dojo/topic mechanism for publish/subscribe support in order to exchange data – a few lines of code brings the whole UI alive. Here and there, several useful components were used for specific typical UI functionality, such as Dijit’s Button, input fields, FilteringSelect, Dialog, etc.. Dojo’s has and sniff feature were also used to help contextualize the UI according to the detected features of the device. Finally, the whole UI is designed to interact with a battery of REST web services and Dojo’s native functionality (xhr, script) for Ajax request were extensively used, including support for JsonP.
Q: Overall what is your user experience with Dojo?
A: Dojo generally confirmed the initial expectations: the good impression it gave at a first glance was confirmed by the technical results achieved by the prototype, which included in its first release all the expected functionality, allowing us to focus also on usability and customization (see layouts, CSS and responsive design – e.g. the original Tree-based component was fully customized with minor efforts).
Being a complex framework, Dojo required an initial period of training, but the learning curve was not as steep as initially expected: the examples provided in the tutorials helped a lot in setting up conceptual mock-ups that were then iteratively improved as specific technical knowledge was acquired. Several concepts – AMD, to mention one – are not strictly Dojo-related, but must be nevertheless be proficiently known to ensure a smooth development experience.
Q: What’s your favorite thing about Dojo?
A: The Dojo architecture is truly inspiring when approaching OO JavaScript, and the rich set of examples provided help understanding how to make JavaScript code modular and reusable throughout the application – the whole approach is clear, clean and scalable. Reference documentation and tutorials are also a valuable resource.
Q: What are your future plans with Dojo?
A: One of the possible future plan is to move the prototype developed so far on mobile devices, i.e. to re-implement the front-user interface with Dojo Mobile, which should allow the consumption of learning contents (documents, pictures, videos, lessons etc.) on different mobile devices without developing dedicated apps.
The templating mechanism still has to be completely understood and evaluated, and surely represent a direction to follow for further developments.
The prototype will also be extended to provide all the expected additional functionality, including e.g. the complete logging of all learning experiences by mean of a dedicated Dojo-based logic connecting to a Learning Record Store (LRS) as specified by the ADL specifications for the Experience API.
Furthermore, as the TELL ME project addresses also the use of advanced Human-Computer Interfaces (HCI), the Dojo-based UI will be ported as the HTML layer for an Augmented Reality (AR) application developed on the Unity 3D engine.
Finally, we are definitively eager to start playing with Dojo 2.0 as soon as it is released!
About TELL ME
TELL ME (Technology-Enhanced Learning Livinglab for Manufacturing Environments) is a research project co-funded by the European Commission to improve training in small and medium-sized manufacturing environments by using the latest technologies and insights. The aim is to bring innovative learning methods to manufacturers so they can better supply the needs of their markets, which include larger industries. TELL ME is a three-year project that started in November 2012 with a partnership of 14 leading organisations in academic research, technology and industry from Italy, the UK, Finland, Sweden, France, Germany, Spain and Portugal. It is a significant €8.3m R&D project, funded by the Consortium Partners and a €5.9m research grant from the European Commission under its FP7 Framework Programme.
Thanks!
Thanks Stefano for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.