-
Notifications
You must be signed in to change notification settings - Fork 449
PerAppCredit
By default, BOINC maintains the credit granted to teams, users, and hosts, both total and average. You can optionally maintain credit for teams and users on a per-application basis. This information is stored in DB tables credit_user and credit_team. Note: doing this will increase DB size and server load.
To maintain per-app credit, put
<credit_by_app/>
in your config.xml file.
Per-app credit is displayed and exported in terms of sub-projects. A sub-project is a named set of apps. Define your sup-projects in html/project/project.inc in the form
$sub_projects = array(
array("name" => "Remote Test", "short_name" => "RT", "appids" => array(16)),
array("name" => "Uppercase", "short_name" => "UC", "appids" => array(1, 25)),
);
name is what's shown on web pages. short_name is optional, and is used to form badge names (see below).
To display per-app credit on your web site (in the user and team pages) you must supply functions
project_user_credit($user)
project_team_credit($team)
in your html/project/project.inc. These functions must generate table rows describing the credit granted to each app for the given user or team.
The example file boinc/html/project.sample/project.inc contains an example of how to do this. Remove the if(0) and change the sub-project specs to suit your project.
The db_dump program writes per-app credit in two files user_work.gz and team_work.gz in your html/stats directory.
Average credit is automatically decayed when credit is granted. However, if a user or team stops getting credit, this won't happen; you need to run a script decay_credit_by_app.php to decay the credit of inactive users and teams. Add something like this to your config.xml:
<task>
<output>decay_per_app_credit.out</output>
<cmd>run_in_ops decay_credit_by_app.php</cmd>
<period>1 day</period>
</task>
The script html/ops/badge_assign_custom.php grants badges based on subproject credit totals. See its comments for instructions.