wiki:SimpleAttach

Version 13 (modified by davea, 6 years ago) (diff)

--

Simplified registration/download process

This document describes a new process by which volunteers download BOINC and attach to projects or account managers.

The current download/attach process has two problems:

  • There are too many clicks.
  • Much of the GUI is in the Manager.

The new process eliminates clicks and shifts most of the GUI to the web, which lets us use things like OpenAuth? and Recaptcha, and which provides a more unified experience.

Note: this process only works for "vetted" projects and AMs, i.e. those that appear on the BOINC web site. Making it work for arbitrary projects would decrease security.

New download/attach process

Front page

The project or AM front page has a Join button, linked to a "registration" page.

Registration page

If the user is already logged in on this project, the page redirects to the Download page. Otherwise, the page has two forms:

  • Create account (for users new to this project)
  • Log in (for existing users)

Submission of either form goes to the Download page.

Download page

This page says something like:

  • To participate in X, your computer must have BOINC (and VBox) installed.
  • If these are already installed, [click here]. This links to a page with instructions for adding project via the Manager.
  • Buttons to download BOINC and BOINC+VBox. These show the download size, platform name, and version, like the download page on the BOINC web site.

Manager

When the manager is first run, it is attached to the project or account manager, to the user's account. No user interaction with the Manager is needed.

User experience

In summary, the new-user process is:

  1. Visit project or account manager web site, click on Join".
  2. Enter email/passwd, click OK
  3. Click Download
  4. Click on installer, choose defaults

Improvements:

  1. User doesn't leave the project web site (e.g. doesn't land on BOINC web site)
  2. User doesn't see the list of all projects.

What projects must do

Down the XML version list from http://boinc.berkeley.edu/download_all.php?xml=1. Save it as html/user/versions.xml. Update this as new client versions are released.

In the home page: put a Join button linking to register.php

Add to config.xml:

<project_id>N</project_id>

The project's ID, as shown in

https://boinc.berkeley.edu/project_list.php

and optionally:

 <min_core_client_version>70803</min_core_client_version>
 <need_vbox/>

Implementation

When a user is shown the Download page, the server code creates a "login token" - a string of 8 random hex chars. It creates a record in the login_token table, containing the token, the user ID, and the create time.

The client installer is downloaded indirectly via a script on the BOINC web server (concierge.php). This is passed the project ID, the login token, and the installer filename. It downloads the file, appending to the filename the project ID and login token.

When the BOINC installer is launched, it writes the installer filename to a file "installer_filename.txt" in the BOINC data directory.

When the client startup it, it looks for this file. If found, does a "lookup account token" RPC to the project, obtaining the user name and a weak authenticator. It attaches to the project using this authenticator.

Unsupported platforms

What if the computer is of a type for which the project has no apps? The user should learn this immediately. E.g. viewed from an Android device, the front page could say something like:

This project is not able to use Android devices. Please visit this site from a Windows, Mac, or Linux computer.

Android case

This doesn't work for Android. Instead, show:

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