wiki:SimpleAttach

Version 4 (modified by davea, 9 years ago) (diff)

--

Simplified registration/download process

This document proposes changes to the process by which volunteers download BOINC and attach to projects.

Current attach process

Suppose a first-time volunteer wants to participate in a BOINC project that uses the standard PHP code for its front page. The steps are:

  1. Visit the project web site (say, via a link in a news story).
  2. Click on "Download" on the project site, taking you to the BOINC download page.
  3. Click on "Download BOINC" or "Download BOINC + VBox".
  4. When the download is done, click on the installer.
  5. Click on "defaults" in the installer.
  6. The Manager runs and brings up the Attach wizard. Click on Add Project.
  7. Find the project in the project list (hopefully you still remember its name). Note: if the project is new and is not in the list, you need to go back to its web site, find the URL, and copy/paste it into the wizard. New volunteers are unlikely to figure this out.
  8. Click on New User.
  9. Enter email address and password.

For existing volunteers (i.e. already running BOINC on this computer) the steps are:

  1. Visit project web site; figure out what to do next (the standard front page doesn't say).
  2. Open the BOINC Manager.
  3. Open Attach wizard.
  4. Click on Add Project.
  5. Find project in list or enter URL.
  6. Click on Existing User.
  7. Enter password (email should be pre-populated from previous attach).

Problems with this design:

  • In each case there are many steps, and we lose a fraction of volunteers at each step.
  • If the computer is of a type for which the project has no apps, the user doesn't learn this until BOINC has already been installed. Ideally they should learn this immediately.
  • If the project requires VirtualBox, the user should be required to download BOINC+VBox.
  • The scheme applies to non-Android computers. For Android users the process is similar, except that BOINC must be downloaded from the Google or Amazon app store. The standard project front page says nothing about Android.

This document describes a new scheme that addresses these problems.

Project front page

The project front page has a "Join" button, linked to a page described below.

Android case

On the Join page: if project has no Android apps, show a message like

This project doesn't currently support Android devices A list of supported computer types is [here].

Otherwise show:

  • [Download BOINC] (link to Google or Amazon app store)
  • Open BOINC, select Add Project, and choose (project name)

Note: we can probably improve this.

Non-Android case

Join page:

if the project has no app versions for the platform, show

This project doesn't currently X computers. The supported computer types are: xxx"

Otherwise show a create account / login page:

  • Create account: please enter your email address and a password.
  • If you already have an account, please log in (links for forgot passwd etc.)

On completion, show a "download page":

  • To participate in X, your computer must have BOINC (and VBox) installed.
  • [Download BOINC (and VBox)] (link to concierge.php).

This goes to a page explaining how to install after download.

  • [BOINC (and VBox) are already installed].

This goes to a page saying to open the Manager and select Add Project.

So for new volunteers, the process is:

  1. Visit project web site, click on Join".
  2. Enter email/passwd
  3. Click Download
  4. Click on installer, choose defaults
  5. Manager runs, brings up dialog showing project and account info,

asks for confirmation.

What projects must do

Add the following to config.xml:

  • <project_desc>: a few-sentence description of the project.
  • <project_inst>: the host institution (optional).

In the home page:

  • put a button linking to join.php

Implementation

Join page: get the platform from the user agent string, then finds the supported platforms by enumerating the app_version and platform tables.

Download page: extract from config.xml:

  • the master URL
  • the project name
  • the project description
  • the project institution

See whether VBox is used by enumerating the app_version table.

These data are passed as URL args to a URL on the BOINC web server (concierge.php). If the user is logged in on the project site, it also passes

  • the user name
  • the user authenticator

The concierte.php script

The concierge.php script looks at the master URL to see if the project is in BOINC's list.

It looks at the user agent string to find the computer's platform, and gets the URL of the current BOINC installer for that platform. (If vbox_required is present, it uses the BOINC+Vbox installer).

It then sends the following cookies (from the boinc.berkeley.edu domain):

attach_known
1 if the project is known to BOINC
attach_master_url
the master URL
attach_project_name
the project name
attach_project_desc
the project description
attach_project_inst
the project institution
attach_user_name
the user name (if present)
attach_auth
the user authenticator (if present)

These cookies are sent with a 24-hour expiration time.

The script then redirects to the URL of the installer file. On current browsers this doesn't change the web page (which is still the project's main page); it starts a download of the BOINC installer, which is displayed in the status bar or elsewhere.

Manager

When the manager starts up, it looks for the attach_master_url cookie from the boinc.berkeley.edu domain. If this is present, it puts up the Attach Wizard, at the email/password page.