Embedded Web Server Automation

Project Synopsis:

This project will build upon the open source embedded webserver Mongoose ( The Mongoose server has been ported to a variety of different platforms and supports many different features common to more advanced web platforms including SSL, WebSockets, etc. Mongoose provides an extremely flexible and light- weight server for inclusion into embedded platforms.

The goal of this project will be the creation of a tool that allows a developer to specify the desired configuration of an embedded system through an XML file. The tool will then generate the necessary code for interfacing to the Mongoose webserver, HTML pages for presenting a UI to the user, as well as any necessary routing and handling of a JSON-based REST API for the configuration. The end goal of the generated code would be that a developer using the output of the tool would only need to implement a simple API to be notified of configuration changes.

The second goal of this project includes the ability for custom functionality to be included in the REST API that isn't necessarily tied to the configuration. The code generation tool would be required to configure Mongoose to allow for custom methods such that arguments could be passed to the API through JSON parameters and the end developer could use this mechanism for RPC functionality into the embedded device. The team will be required to demonstrate this functionality through the manipulation of hardware on the embedded platform (i.e. toggling an LED, sending data over serial link, etc).

A few stretch goals are included with the project as well. The first stretch goal is to generate documentation about all the interfaces that are created including such details as all valid REST API's, parameters, and available configuration. The second stretch goal will be generated code that validates the parameters presented through the different APIs. The sponsor envisions this could take several forms including Javascript validation on the HTML pages, limiting valid inputs through the use of drop-downs, as well as server side validation for the submissions. Additional features suggested by the team or advisor are also welcomed and encouraged.

Development Process:

We will be following an iterative approach for our development process.


Team Members

Coach: Rick Weil

Andrew Lyne III


Jared Smith


Gabriel Marcano


James Kuglics


Cobra Github

Team Cobra RIT 2014-2015