This project will build upon the open source embedded webserver Mongoose
(https://code.google.com/p/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.
We will be following an iterative approach for our development process.
Coach: Rick Weil
rxwvse@rit.edu
Andrew Lyne III
781-985-1446
andylyne2612@gmail.com
Jared Smith
315-237-8524
jared.rit@gmail.com
Gabriel Marcano
774-253-4916
gabemarcano@yahoo.com
James Kuglics
315-868-5955
jkuglics@gmail.com
Team Cobra RIT 2014-2015