wiki:Proposal/ProjectSimpleAccountCreation

Version 4 (modified by romw, 13 years ago) (diff)

--

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 to remember the projects URL and then shuffles them off to the BOINC website to download the client software. Once the software has been downloaded the volunteer has to walk through the project attach wizard and then volunteer must remember the project URL and 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.