Remote Labs

UX/UI design  Education  Java Spring  Vue.js  Bootstrap  Software architecture
A remote platform where TU/e students can take part in science classes, simply from home

For Eindhoven University of Technology (TU/e), Wolfpack designed and developed an online software solution that allows students to remotely perform experiments from practical classes and afterwards centralizes their experiment results. Given the explosively growing number of students at the TU/e, the goal of Remote Labs is to limit the number of students that need to be physically present in the labs. The pilot for this project successfully ran in the third quartile of the 2019/2020 academic year. As a result of this successful pilot and following the Corona pandemic, the usage of Remote Labs accelerated with new courses in Q4 of the same academic year.

 
 

What is Remote Labs

A scalable multi-tenant web platform with a fair queueing algorithm

The online Remote Labs application gives students a user-friendly overview of their assignments and what setups and/or labs they can access. The back-end is built with Java Spring and a Vue.js front- end is optimized for all modern browsers. To improve the experience of these planned experiments, graphs show live actuator and sensor data along with a live camera feed. To book a timeslot, students can use a calendar view. When a student has a good understanding of the system and does not need a fixed time with full control of the setup, the student can also use the queue system. In this case a model is uploaded and the results are downloaded later.

Our approach

An extensive research phase, followed by an agile development process with intermediate user testing

The Remote Labs project required extensive research up front. To do this, a Sprint 0 was done by two of Wolfpack’s software architects. During this research we created a user requirements and software requirements document based on discussion with stakeholders. Additionally the queueing algorithm was devised. The architecture of the application was created, by splitting responsibilities between a lab server (e.g. for experiment related results) and a master server (e.g. for authentication purposes). The communication with a to be built host pc was defined in code following the Socket.io library.

After the research phase the software was developed in 6 sprints with a team of three developers, with each sprint consisting of two weeks. Each sprint was followed by a demo for future lecturers that will use the system.