Virtual Labs

A fully functional online virtual labs environment

Virtual Labs is a fully functional, self contained online training environment that allows students and instructors to connect to a virtual lab environment using only their web browser.

Technologies Used

The Virtual Labs environment uses a number of technologies including PHP, MySQL, JavaScript, CSS as well as an LDAP database to manage users. It uses Apache Web Server, Apache Tomcat and Apache Guacamole as part of it’s back end.

Rapid Response

The initial release of Virtual Labs was developed in a little over 2 weeks in response to a demand for a remote lab environment for technical courses at the start of COVID-19. Since then, it has been developed into a full scale web application designed to support a variety of lab environments across multiple physical locations.

Admin Panel

Virtual Labs contains a robust admin panel that allows administrators to quickly create and manage courses across a variety of lab environment including servers, LXD containers and physical lab machines.

Instructor Panel

In addition to the admin panel, Virtual Labs also has a panel for instructors integrated directly with Apache Guacamole that allows instructors to push lab files to students and view and take control of student environments.

Apache Guacamole

Virtual Labs uses Apache Guacamole as it’s primary back end, which on it’s own is an excellent tool for connecting to remote hosts using only a web browser. Virtual Labs expands on Guacamole by combining it with a MySQL and LDAP database, as a well as a full-stack plugin that utilizes Apache Web Server.

Course Registration

One of the core functionalities of Virtual Labs is the ease of registration for courses. Both students and instructors use the same registration link that is unique to each course, and the system allows for both new and returning users, as well as multiple concurrent registrations for the same user.

Admin Panel

Virtual Labs has a robust, integrated admin panel that allows administrators to easily add courses in seconds, and manage them for the duration of the course. For courses that use LXD containers, admins can quickly and easily stop, start, restart and redeploy containers based on the needs of the course. The admin panel also has an integrated statistics page that shows a snapshot of all courses in the system and their status.

Instructor Panel

In addition to the admin panel, Virtual Labs also has an instructor panel that is directly integrated into the Guacamole menu that allows instructors to push and pull files from student lab machines, view and take control of student connections and even restart their remote machine if it freezes up.