Accessing the Source

Our source code is currently stored on GitHub. To view it, follow the links provided below.

Access to the individual submodules from earlier development are available through the following links.

About the Source

To integrate with existing software, a resource selector and the content creation software, this project employs Microsoft's .NET Framework. We use C# as our primary language. The user interface makes use of ASP.NET.

Organization

HomeRoom was composed of 5 seperate modules during the original development. The user interface, RDF handling classes, the controller module, resource locator and the solution files were seperated to track their progress individually. Since the project has neared completion, the submodules have been merged and are now tracked solely in what was the uppermost repo.

To obtain the project, clone the solution files repository:

$ git clone git://github.com/gamma9mu/HomeRoom.git

Requirements

HomeRoom requires the following software to operate.

Structure

High Level Project Diagram

The picture above illustrates the major components of HomeRoom and how they fit into the larger system for creating learning modules. The user interacts with the web interface. Any time the user requests a learning module, the request is passed to the controller module (not pictured above). The controller is responsible for routing the requests among the other modules. The request's first stop is the crawler module. This module uses existing search mechanisms to locate learning variables and attempts to gather information about these variables. Finally, this information is routed to the metadata tagging module which creates an RDF file representing these learning variables and their metadata.

The RDF files that are produced by HomeRoom are intended to be used by external modules. These external modules filter the learning variables based upon the user learning style (e.g. visual, tactile). Once the learning variables are selected, a builder assembles the variables into a learning module that is sent back to HomeRoom to be made available to the user.

Example Crawler Hierarchy

An example hierarchy of crawler classes is presented here.

Bing Class Diagram

This diagram illustrates the classes that provide searching through Microsoft's Bing search engine. The Bing class instantiates and returns an appropriate crawler class through each of its public methods. Because of the similarities in their behavior, the find method on each of the Bing crawler classes is provided by a superclass and the lower classes fill in the specific behavior by implementing an abstract, protected method (not shown here). The NoopCrawler is used when a search provider cannot supply a specific type of crawler. In this case, Bing returns a NoopCrawler from its createAudioCrawler method because Bing does not provide audio specific searches. Also not shown in the diagram, Bing implements the ISearchProvider interface and the NoopCrawler and Bing*Crawler classes implement the ICrawler interface.