Writing add-on software
BOINC's architecture is 'open'; documented interfaces making it possible to develop various types of applications and web sites that interact with BOINC's core components. Examples include: "; list_start(); list_item("Client GUIs", "Application that control a local or remote core client." ); list_item("Credit statistics web sites", "Web sites showing credit information (project totals, user/team/country leaderboards) based on daily XML feeds of statistics data from BOINC projects." ); list_item("Account managers", "Web sites that let BOINC users create and manage accounts on multiple projects." ); list_item("Server status web sites", "Web sites showing the server status of BOINC projects." ); list_item("Web RPCs", "These interfaces let a program or web site obtain information about users and hosts from projects." ); list_item("Local editing of preferences", "This mechanism lets you write a program local editing of preferences." ); list_end(); echo "
Check the index of add-on software before writing anything (it may already exist). The index has instructions for submitting new add-ons.
BOINC is free software, distributed under the Lesser GNU Public License (LGPL). We need volunteers to help with software testing and development. If you have one or more of the relevant technical skills (C++ system programming, PHP/MySQL web development, WxWidgets programming, autoconf/automake expertise, etc.) you may be able to help us maintain and enhance BOINC. The University of California holds the copyright on all BOINC source code; by contributing code to BOINC you implicitly assign the copyright to the University of California. In any case, you are welcome to browse the source code and give us feedback. You should understand how BOINC works (for both participants and projects) before getting into the source code.
To get started, find a small bug fix or enhancement to do (look at the BOINC bug database, the email lists, or message boards for ideas). Look at the source code and think about how you would implement it. Then communicate with the area owner, sketching what you want to do and how. Work the the area owner to carry out and check in the work.
The following medium-to-large development projects are available: