PT Anywhere

Published on 2016-6-3

Packet Tracer is a network simulation tool created by Cisco. As part of the FORGE project, I developed a web version/frontend for it.

However, despite of the simplicity of the user interface, the architecture which lies behind is not simple at all. In this article, I will briefly explain the different parts of the architecture.

A PTAnywhere installation looks like the following image shows.

PTAnywhere installation diagram

There is a web server where the PTAnywhere API is deployed. Additionally, it might also serve the web application with the HTML widgets which use the API. The PTAnywhere API uses a Redis database to handle students' sessions. It also relies on one or more PT managers to handle Packet Tracer instances. Each manager can handle several concurrent instances. Optionally, the API can also record interaction details in a Tin Can API compatible Learning Record Store (LRS).

In the next section, I briefly explain how to install PTAnywhere. However, if you are interested in a specific part of the architecture you can go directly to its explanation clicking in any of the following links:

  1. Web frontend (widget).

    Technologies used: jQuery, vis.js & Jasmine.

  2. HTTP API.

    Technologies used: JAX-RS (Jersey), Swagger & Redis.

  3. Internal Packet Tracer API.

    Technologies used: Flask, Celery & Docker.

  4. Learning Analytics.

    Technologies used: Tin Can API (Learning Locker), Chart.js & vis.js.