Read Me
== ICE ATL portlet ==
An IceFaces 2 based ATL implementation supporting Locator algorighm
plugins via MessageBus.
Project has two portlets: atl-ineed-help and atl-tickets.
== Configuration ==
These settings in portal-ext.properties control email sending behavior:
nl.ou.openu.atl.development=true
nl.ou.openu.atl.emailRecipient=some@addre.ss
If development is set to true, all emails from ATL will be sent to emailRecipient
instead of user's email address.
= ATL I need help =
A simple portlet that renders user's active tickets within scope, a button
to post a new question and list of tutoring requests. All actions redirect
the user to the core ATL Tickets portlet with normal HTTP GET.
It renders a "I need help" button, redirecting the user to ATL tickets
portlet "New ticket" form.
= ATL Tickets =
Central Tickets management portlet, supporting group scope (community,
organization). It allows to view active tickets, create new tickets, list
all tickets within configured scope and check tutor response to invites.
= Permissions =
Anyone that can view the Tickets portlet can create new tickets and view their
own ticket data and tutor requests.
To allow people access to others' tickets, ALL_TICKETS permission must be
granted to the user.
Permission MANAGE_TICKETS allows user to view tutoring invites and see detailed
ATL algorithm logs. Is used to grant someone complete overview of things. Could
use the existing CONFIGURE permission?
== ATL Matching Algorithms ==
An ATL algorithm produces a list of most appropriate tutors based on input.
Input consists of actual question, information on learner and optionally the
topic.
The algorithm will do its magic over the entire set of available tutors and
generate a list of top N most appropriate tutors for given input.
= Algorithm settings =
As algorithms are implemented in various WAR packages and do not share a common
ClassLoader, each algorithm must manage its preferences in its own scope. PortletPrefs
can be used to store the configuration.
= Mutiple instances with different settings =
Configuration portlet can manage multiple configurations. On application startup, these
settings are loaded and for each configuration a separate instance of ATL algorithm class
is created, each with own preferences. Each instance has to provide a unique
algorithm name to ATLListener which will load the appropriate class and provide the
selected configuration information.
== Compound Algorithm ==
A "super" algorithm that takes results of other matching algorithms and calculates
a summary score for each provided tutor by applying weight to each individual algorithm
result.
This requires the algorithms to return a 2-D array: column 1 contains tutorId (long),
column 2 contains algorithmScore (float).
As each algorithm only returns top N most appropriate tutors as configured in ATL portlet
preferences, individual algorithms will return different tutor lists.