Changes between Version 5 and Version 6 of SimpleAttach
- Timestamp:
- Jan 14, 2015, 4:00:15 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SimpleAttach
v5 v6 39 39 40 40 * In each case there are many steps, and we lose a fraction of volunteers at each step. 41 * If the computer is of a type for which the project has no apps, 42 the user doesn't learn this until BOINC has already been installed. 43 Ideally they should learn this immediately. 44 * If the project requires !VirtualBox, 45 the user should be required to download BOINC+VBox. 41 * For non-listed projects, users have to type or copy/paste a URL. Bad. 42 * If the project requires !VirtualBox, the user should be required to download BOINC+VBox. 46 43 * The scheme applies to non-Android computers. 47 44 For Android users the process is similar, … … 51 48 This document describes a new scheme that addresses these problems. 52 49 53 == Project front page == 54 55 The project front page has a "Join" button, linked to a page described below. 56 57 === Android case === 58 59 On the Join page: 60 if project has no Android apps, show a message like 61 62 '''This project doesn't currently support Android devices 63 A list of supported computer types is [here].''' 64 65 Otherwise show: 66 50 == Project web site == 51 52 === Front page === 53 54 The project front page has a "Join" button, linked to a "registration" page. 55 56 === Registration page === 57 58 The registration page shows two forms side by side: 59 * Create account (for users new to this project) 60 * Log in (for existing users) 61 Submission of either form goes to the Download page (below). 62 63 If the user is already logged in on this project, 64 the page redirects to Download page. 65 66 === Download page === 67 68 This page tells the user what software they need to install, 69 and lets them either download it or confirm that it's already installed. 70 71 ==== Android case ==== 72 73 Show: 67 74 * '''[Download BOINC]''' (link to Google or Amazon app store) 68 75 * '''Open BOINC, select Add Project, and choose (project name)''' 69 76 70 Note: we can probably improve this. 71 72 === Non-Android case === 73 74 Join page: 75 76 if the project has no app versions for the platform, show 77 78 '''This project doesn't currently X computers. 79 The supported computer types are: xxx" 80 81 Otherwise show a create account / login page: 82 83 * Create account: please enter your email address and a password. 84 * If you already have an account, please log in (links for forgot passwd etc.) 85 86 On completion, show a "download page": 77 Note: we can improve this, but it will take changes to the Android GUI. 78 79 ==== Non-Android case ==== 80 81 A project's config file can specify whether it needs VBox, 82 and whether it has a min client version. 83 The Download page says something like: 87 84 88 85 * To participate in X, your computer must have BOINC (and VBox) installed. 89 * [Download BOINC (and VBox)] (link to concierge.php). 90 This goes to a page explaining how to install after download. 91 * [BOINC (and VBox) are already installed]. 92 This goes to a page saying to open the Manager and select Add Project. 93 94 So for new volunteers, the process is: 86 * If these are already installed, [click here] 87 * [Download BOINC (and VBox)]. 88 89 The "click here" link goes to a page that: 90 91 * Sends some cookies (see below) 92 * Tells the user to open the Manager and choose Add Project. 93 94 The Download link does to a page that 95 * Sends some cookies (see below) 96 * Initiates a download 97 * Tells the user to double-click on the installer when download is done 98 99 === User experience === 100 101 In summary, the new-user process is: 95 102 96 103 1. Visit project web site, click on '''Join". 97 1. Enter email/passwd 104 1. Enter email/passwd, click OK 98 105 1. Click Download 99 106 1. Click on installer, choose defaults 100 1. Manager runs, brings up dialog showing project and account info, 101 asks for confirmation. 107 1. Manager runs, brings up confirmation/welcome dialog 108 109 Note the following improvements: 110 1. User doesn't leave the project web site (e.g. doesn't land on BOINC web site) 111 1. User doesn't see list of all projects 102 112 103 113 === What projects must do === 104 114 105 Add t he following to config.xml:115 Add to config.xml: 106 116 * <project_desc>: a few-sentence description of the project. 107 117 * <project_inst>: the host institution (optional). 108 118 119 Add to config.xml if needed: 120 * <min_core_client_version_announced> 121 * <need_vbox> 122 109 123 In the home page: 110 124 111 * put a button linking to join.php125 * put a button linking to register.php 112 126 113 127 == Implementation == 114 128 115 Join page: 116 get the platform from the user agent string, 117 then finds the supported platforms by enumerating 118 the app_version and platform tables. 129 Register page: use existing code for forms 119 130 120 131 Download page: extract from config.xml: … … 123 134 * the project description 124 135 * the project institution 125 126 See whether VBox is used by enumerating the app_version table. 127 128 These data are passed as URL args to a URL on the BOINC web server (concierge.php). 129 If the user is logged in on the project site, it also passes 136 * software requirements 137 138 These first 4 items are passed as URL args to a script on the BOINC web server (concierge.php). 139 Also passed: 130 140 * the user name 131 141 * the user authenticator 142 * whether a download is required 143 * whether VBox is needed 132 144 133 145 === The concierte.php script === … … 135 147 The concierge.php script looks at the master URL to see if the project is in BOINC's list. 136 148 137 It looks at the user agent string to find the computer's platform, 138 and gets the URL of the current BOINC installer for that platform. 139 (If vbox_required is present, it uses the BOINC+Vbox installer). 140 141 It then sends the following cookies (from the boinc.berkeley.edu domain): 149 It sends the following cookies (from the boinc.berkeley.edu domain): 142 150 143 151 '''attach_known''':: 1 if the project is known to BOINC … … 151 159 These cookies are sent with a 24-hour expiration time. 152 160 153 The script then redirects to the URL of the installer file. 161 If the "download" arg is set, 162 the script looks at the user agent string to find the computer's platform, 163 and gets the URL of the current BOINC installer for that platform. 164 (If VBox is needed, it uses the BOINC+Vbox installer). 165 It then redirects to the URL of the installer file. 154 166 On current browsers this doesn't change the web page 155 167 (which is still the project's main page); … … 159 171 === Manager === 160 172 161 When the manager starts up, it looks for the '''attach_master_url''' cookie from 173 When the manager starts up, or the Add Project command is given, 174 it looks for the '''attach_master_url''' cookie from 162 175 the boinc.berkeley.edu domain. 163 176 If this is present, it puts up the Attach Wizard, 164 at the email/password page. 177 at a confirmation page that shows 178 * the project name, description, and institution 179 * the user name 180 * whether the project is known to BOINC 165 181 166 182 == Anonymous registration == … … 168 184 The join process can be further simplified if we eliminate the 169 185 email address and password associated with accounts. 170 This might be selected by the project 171 (using a config flag) 172 or by the volunteer 173 (by a "anonymous account" checkbox in the registration page). 174 175 In each case, the links on the Download page would create an account 186 This might be selected by the project (using a config flag) 187 or by the volunteer (by an "anonymous" checkbox in the Register page). 188 189 In each case, the Register page would create an account 176 190 with random strings for email address and password. 177 191 … … 181 195 * Let anonymous accounts be made non-anonymous (i.e. given an 182 196 email address, name, and password). 197 198 == Unsupported platforms == 199 200 One issue not addressed by this proposal: 201 what if the computer is of a type for which the project has no apps? 202 The user should learn this immediately. 203 E.g. viewed from an Android device, 204 the front page could say something like: 205 206 '''This project is not able to use Android devices. 207 Please visit this site from a Windows, Mac, or Linux computer.'''