= 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. == 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.