Menu

Coding Guide

Stephan Zavrel

Thank you for your interest in participating with the open source recommender project easyrec.

This section will give you an overview about easyrec's software architecture and the interfaces where you can connect to build customized recommendation algorithms.

First, set up your build & development environment.

easyrec uses the maven build system. If you are unfamiliar with maven check out the official maven page on how to setup maven. Once installed, open a shell, navigate to the easyrec root folder and type

mvn -DskipTests clean install

to build easyrec. (Sorry, unit tests are very badly maintained)

After building easyrec, deploy the easyrec-web.war file to your application server (see Installation Guide) and access easyrec under the url:

http://localhost:8080/easyrec-web/

We are hosting the latest build as the demonstration instance under:

http://demo.easyrec.org:8080

Software Architecture

The easyrec project currently consists of eight sub-modules:

  • easyrec - Content
    This module holds item association generators that are delivered with the webapp and preinstalled as generators. Currently the 'AssocRuleMiner' is the only preinstalled generator, which also serves as offline generator.
  • easyrec - Core
    This module is the core package of easyrec. It contains model objects, classes for database access and basic services like the 'ActionService', the 'ItemAssocService', the 'RecommenderService' and the 'RecommendationHistoryService'. All interfaces and classes in this module provide generic methods, thus domain information like action or item types can be parameterized individually.
  • easyrec - Domain
    For the isolation of domain specific content, this package is introduced, providing services and database access classes for a generic domain, as well as for specific domains like the music domain. Additional interfaces for the access of Third-Party data and a utility class for the aggregation of actions to ratings are included.
  • easyrec - Plugin API
    This module provides the basis for plugin development. It provides interfaces a plugin provider needs to implement.
  • easyrec - Plugin Container
    This module provides the framework for plugin execution.
  • easyrec - Plugins
    This module is a parent module itself, and bundles several plugins for easyrec. For a list of Plugins see PlugIns section of the Tuning Guide.
  • easyrec - Utils
    This module provides utility classes used within all other modules of the easyrec.
  • easyrec - Web
    This module is concerned with the propagation of various Web service methods of the recommender system, hence providing model objects, data access classes and services for various domains. Additionally an 'IDMappingService' allows for the mapping of external 'String' ids to internal 'Integer' ids. Furthermore the 'AuthenticationService' manages the access of Web service methods for several tenants.

Related

Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.