= Google Summer of Code 2013 project ideas = == Enhance the BOINC Android GUI == The current BOINC Android GUI is functional but not visually appealing, and it lacks some usability features. The project is to design and implement improvements to the GUI. Possibilities includes: * Add graphics to the GUI; for example, allow projects to supply slide-show images illustrating their science. * Implement mechanism that allow users to smoothly navigate from the GUI to web-based features on project sites, as is done on the desktop BOINC GUI. * Implement the "notices" mechanism that allows project to push news items to volunteers. == Automated testing of BOINC == We're in the process of deploying a Jenkins-based automated test system for BOINC. Help us add unit tests to the BOINC code, and to design end-to-end tests that exercise the entire system under a range of use cases and error conditions. == Job size matching == Some BOINC projects now have applications with versions for GPUs, CPUs, and mobile devices. The speed of these devices varies by roughly 3 orders of magnitude; a job that takes 10 minutes to complete on a GPU might take a week to complete on a mobile device. This disparity is undesirable - we'd like all jobs to take roughly the same amount of time. To do this, we need a way to generate an appropriate distribution of jobs sizes, based on a dynamic resource pool, and we need a scheduling mechanisms that distributes jobs appropriately. Design and implement these. == Accelerating batch completion == Volunteer computing resources are unreliable - computers fail, people uninstall BOINC, and so on. Roughly 5% of jobs fail or time out. This means that in a batch of 10,000 jobs, 500 or so will fail. We retry these (after a delay of a few days) and 25 or so will fail, and so on. Thus is can take quite a long time to finish the entire batch. This problem can be solved by using more reliable computers to handle retries and jobs at the end of a batch. Doing so, however, is tricky. Design and implement a mechanism for doing this.