wiki:SimpleAttach

Version 2 (modified by davea, 10 years ago) (diff)

--

Simplified Attach

Current attach process

The process of attaching to a project, for a first-time volunteer, involves several steps:

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

This is a lot of steps, and we lose a fraction of volunteers at each step.

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

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

Proposed attach process

This document describes a new scheme that simplifies both scenarios.

Project web sites have 2 buttons:

  • "Join (download BOINC)"
  • "Join (already running BOINC)"

New volunteer case:

  1. Visit project web site, click on "Join (download BOINC)". Download happens, browser remains on project web site (see below). Possibly (depending on OS/browser) goes to a page describing how to run the installer after download is done.
  2. When download is done, click on installer.
  3. Click on Defaults in installer
  4. Manager runs and brings up Attach wizard at the "enter email/password" page; no need to select project etc. This page also has name/info of project. Enter email/password.

Existing volunteer case:

  1. Visit project web site, click on "Join (already running BOINC)".
  2. Taken to page saying "open BOINC Manager" and select Add Project.
  3. When they do that, it brings up Attach wizard at "enter email/password" page.

Implementation

What projects must do

Project must add the following to config.xml:

  • <project_desc>: a few-sentence description of the project
  • <project_inst>: the host institution
  • <vbox_required/> : if present, this project requires VirtualBox

In the home page, put:

  • a "Join (download BOINC)" button linked to the URL returned by join_download_url() PHP function in util.inc.
  • a "Join (already running BOINC)" button linked to the URL returned by join_no_download_url() PHP function in util.inc.

If this project requires VBox, replace "BOINC" by "BOINC+VirtualBox" in the above.

The join_x_url() functions

The join_x_url() functions extract from config.xml:

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

and pass these 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

join_download_url() also passes a "download_required" flag.

The concierte.php script

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

If "download_required" is set, 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.

If "download_required" is set, 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.

If "download_required" is not set, it does something to avoid showing a web page (need to figure this out).

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.

It does the same check when

Comments

There are actually four scenarios, corresponding to:

  1. Whether the user has installed BOINC on the computer.
  2. Whether the user has an account on this project.

This design is geared to the cases where 2 is false. We should handle the other cases as well.