Feedback comprises two ways of gathering user feedback data: directly via a user survey and indirectly via statistics by collecting user's session data.
At the end of a Saros session, the user is sometimes asked to participate in a User Survey. This happens when a user ends his/her first session and periodically after a certain number of sessions. This interval can be configured by the user. It is also possible to turn this request on and off.
The main class of the User Survey is the
FeedbackManager. It determines the user's preferences (whether participation option is turned on or off and the request interval) and shows a
FeedbackDialog. The FeedbackDialog is only displayed if a Saros session lasted at least 5 minutes. If the dialog is excepted, the survey is opened in an external browser window. If this fails, Eclipse's internal browser is used. If both methods fail, a message containing the survey's URL is shown.
You can find the survey here. [currently not present]
The Statistics framework gathers statistical data (e.g. session duration, number of participants, and the user's role as well as the used operating system and the installed versions of Java, Eclipse, and Saros) and sends it to our Apache Tomcat server. Like the user survey, the user has the option to turn the statistical data collection on or off.
For the purpose of gathering this data, collector classes which extend the abstract class
AbstractStatisticCollector are used. Examples of these collector classes are:
- gathers information about the number of participants in a Saros session and the time they were present in the session (accumulated)
- collects permission changes of the local user, e.g. how often they are changed and how long the user kept which permission (write/read-only access)
- gathers general session data like session time, session ID, and session count as well as platform information.
StatisticManager receives the gathered data of all collectors at the end of a session, combines it into a single file and sends it to our server (Saros-build).