= Simplified Project Website Account Creation in BOINC = == Introduction == BOINC supports multiple ways to create accounts for any given project. Creating accounts on a BOINC project via the project website hasn’t received as much attention in previous years as it probably should have. This revised process is an attempt to better capture volunteers that are visiting a project website via press releases and other forms of advertisement. At present the current system asks the volunteer for account creation information and then shuffles them off to web page to download the BOINC client software. Once the software has been downloaded the volunteer has to walk through the project attach wizard and once again the volunteer must answer questions about account credentials. We received a lot of feedback about the BOINC sign-up process over the years, and most of the feedback has been it isn’t as simple as SETI@Home used to be. Now that enough of the pieces are available in the client-side architecture we hope to put this issue to rest once and for all. The basic idea here is that if a potential volunteer loads the projects homepage and is not currently logged into the website they are presented with a download link. When the download link is clicked a set of cookies are stored in the browser before re-directing the volunteer to the BOINC download page. Once the BOINC client package is installed it’ll look for setup cookies from all the projects in the all_projects_list.xml file which is included with the client package. If the cookies are found it’ll attach to the most recent cookie set. == Changes to the Project Website == When a volunteer first visits a project's homepage with a supported browser they are presented with a 'download now' link instead of the current 'create account' link. Clicking on the 'download now' link will cause a cookie to be stored on the machine; this cookie will contain the authenticator to use and the current time of the server. The resulting page should provide basic instructions to launch the BOINC installer on the supported browser. After 5-10 seconds the webpage should redirect to the BOINC website to download the BOINC installer and pass in the authenticator and return URL which will be used to return the volunteer to the project where they may decide to provide more information (name, country, team, etc) to the project. NOTE: Unless the volunteer decides to provide additional information to the project, the account will be anonymous. How should we handle projects that require a terms of use? == Changes to the BOINC manager == At present the BOINC manager requires either a project_init.xml file or an acct_mgr_url.xml file to engage the cookie detection code and automatic add project process. We should modify the manager to check for cookies from all the available URLs in the all projects list. It should behave like this: {{{ if NumberofAttachedProjects == 0 then if exists(project_init.xml) or exists(acct_mgr_url.xml) then ... do the same stuff as we do now ... else foreach (project in all_projects_list.xml) if exists(project.cookie) then add project cookie to CookiesFound array endif endfor sort CookiesFound array by CreationTime if CookiesFound.Count > 0 then if CookiesFound[0].IsProject then launch attach to project wizard in automatic mode endif if CookiesFound[0].IsAccountManager then launch attach to account manager wizard in automatic mode endif endif endif endif }}} NOTE: Unless there is an error, the only thing the volunteer might be prompted for is proxy server information. == Implementation Details == === Project Cookie Contents === Authenticator/!CreationTime === Account Manager Cookie Contents === Login/!PasswordHash/ReturnURL/!CreationTime == Conclusion == In theory this should allow us to capture incoming volunteer traffic from mainstream media regardless of their level of computer expertise. == Outstanding Issues == === What do we do about alpha and beta projects? === Normally alpha and beta projects to not make the all_projects_list.xml file. However, it would be useful to be able to capture new BOINC clients via news articles about alpha and beta projects.