Software Development

Whether in industry or academia, I have always engaged in developing software to make life a better place.

Virtual Labs

As part of the Virtual Labs project sponsored by Ministry of Human Resource Development, Government of India, I developed (~2010–2017) the Software Engineering and Advanced Network Technolgies Virtual Labs. As the lead developer, I led a team of four people working on different aspects of the projects. In addition, I also donned various roles including designer, content writer, and tester.

Software Engineering Virtual Lab

The Software Engineering Virtual Lab covers popular topics on the subject catering to the university syllabi and provides a workspace to the students to have hands-on practice. This lab teaches ER modeling, various UML diagrams, cyclomatic complexity, test suite design and other topics. Various software including Graphviz and PlantUML have been used at the back end. The workspace has been designed in such a way so that the students can understand the basic concepts and building blocks, rather than simply drawing some diagrams.

Challenges

The development of this lab offered multiple challenges among which the most notables are:

Advanced Network Technologies Virtual Lab

The Advanced Network Technologies Virtual Lab deals with advanced topics in computer networks. This lab helps the students understand the basic concepts of each topic through remote network simulations using two simulatos – NS-2 and NS-3.

Challenges

Compared to Software Engineering, this virtual lab was relatively easier to develop in the sense that it uses same (similar) workspace for all the experiments. However, the challenge was somewhere else:

Ns2web

Ns2web is an Web-based interface for performing remote simulation and analysis with NS-2. This standalone Web app allows users to write their own simulation script. Alternatively, it provides a guided scenario generator where a user can design the desired network topology and configure various parameters. Moreover, plots generated from post-simulation analysis can be exported into multiple formats (EPS, PDF and PNG) for inclusion in research articles. A scaled-down version of ns2web powers the ANT Virtual Lab.

Django Mailman Search

Mailman is a popular email list manager. The Django mailman search project aims at making the email archives searchable through an easy-to-use web interface. Haystack is used for searching with Whoosh as the backend. Two management commands are provided to load data from the archives and clear them all from the database. The project, however, assumes that one has access to the archive files.

The ONE Knowledge Base is an application based on this project. The ONE KB allows users to search the archives of the old emails of the community's mailing list. Until this, any online facility to search those archives was unavailable.

Challenges

Some of the source code can be found in GitHub.

Software Engineering Lite [No longer supported]

More than 10% traffic of the Software Engineering Virtual Lab originate from mobile devices among which most are Android-based. Motivated by this, I developed Software Engineering Lite, an unofficial port of the Software Engineering Virtual Lab for Android devices. This app presents majority of the contents from the original virtual lab including the theory, self-evaluation, case study and references. The app is supported for Android 2.1.x and above.

Android app on Google Play

Software Engineering Lite is an individual effort. It does not bear any endorsement by the Virtual Labs project, or Ministry of Human Resource Development, Government of India, or any other related party. The app is released under GNU GPLv3 license, and the source code is available in GitHub.