{"action":"created","comment":{"url":"https://api.github.com/repos/swcarpentry/amy/pulls/comments/69005335","id":69005335,"diff_hunk":"@@ -0,0 +1,211 @@\n+## Notation\n+\n+- [use cases] are in square brackets\n+- {web pages} are in curly braces\n+- <database objects> are in angle brackets\n+\n+## Individual application for training.\n+\n+* [user registers self][a]: user match by email address or GitHub ID.\n+  - User fills in {single user application form} on AMY with name, email address, GitHub ID, etc.\n+  - AMY matches to pre-existing <Person> using email or GitHub ID.\n+  - <Training Application> created, connected to pre-existing <Person>, marked \"Pending\", and added to <Training Application List>.\n+\n+* [user registers self][b]: no user match.\n+  - User fills in form on AMY with name, email address, GitHub ID, etc.\n+  - AMY does *not* match email or GitHub ID.\n+  - <Training Application> created, marked \"Pending\", and added to <Training Application List> *without* <Person> object.\n+\n+## Administrator approves individual for training.\n+\n+* [admin approves training][a]: user record already in database.\n+  - Admin views <Training Application List>.\n+  - Admin selects <Training Application> marked \"Pending\" that has been matched with <Person>.\n+  - Admin approves <Training Application>.\n+  - AMY clears <Training Application>'s \"Pending\" flag.\n+\n+* [admin approves training][b]: no user record in database.\n+  - Admin views <Training Application List>.\n+  - Admin selects <Training Application>.\n+  - Admin approves <Training Application>.\n+  - AMY clears <Training Application>'s \"Pending\" flag.\n+  - AMY creates <Person> record and associates with <Training Application>.\n+\n+## Administrator registers individual for training.\n+\n+* [admin registers user][a]: user is already in database.\n+  - Administrator looks up email address or GitHub ID.\n+  - Administrator => [user registers self][a].\n+\n+* [admin registers user][b]: user is *not* already in database.\n+  - Administrator creates <Person>.\n+  - Administrator => [admin registers user][a].\n+\n+## Reviewing training queue.\n+\n+* [admin reviews training queue]: to see who's waiting and how long.\n+  - Admin goes to {training queue display}.\n+  - Admin selects filtering and sorting criteria (if any).\n+  - Admin pages through display showing both <Training Application>s.\n+\n+## Setting up training course.\n+\n+* [admin creates training event]: and assigns people to it.\n+  - Admin creates new <Event>.\n+  - Admin goes to {training queue display}.\n+  - Admin selects <Event>.\n+  - Admin selects some <Training Application>s.\n+  - AMY creates <Task>s to add all the selected <Person>s to the <Event>.\n+  - AMY connects the <Training Application>s to the <Event>.\n+  - AMY moves <Training Application>s to <Assigned Application List>.\n+  - AMY provides single-click \"send to all\" email link to admin to inform trainees.\n+  - AMY creates <Training Progress> record for each <Person>.\n+\n+## Administering training course applications.\n+\n+* [admin removes people from training event][a]: and discards applications\n+  - Admin goes to {assigned training application display}.\n+  - Admin selects <Training Application>s.\n+  - Admin removes them from training event.\n+  - AMY deletes associated <Task>s.\n+  - AMY deletes <Training Application>s.\n+\n+* [admin removes people from training event][b]: but keeps applications\n+  - Admin goes to {assigned training application display}.\n+  - Admin selects <Training Application>s.\n+  - Admin removes them from training event.\n+  - AMY deletes associated <Task>s.\n+  - AMY moves <Training Application>s back to <Training Application List>.\n+\n+## Reviewing training progress.\n+\n+* [admin views training progress]: to see who's done what.\n+  - Admin views {training progress page}.\n+  - Admin selects filtering and sorting criteria (if any).\n+\n+## Tracking submission of written work.\n+\n+* [trainee reports submission of written work]: such as pull request or comment on lesson.\n+  - Trainee views their own {training progress}.\n+  - Trainee enters URL of written work.\n+  - AMY updates <Training Task> associated with <Person> and <Event>.\n+  - AMY adds <Training Progress> to <Training Progress Review List>.\n+\n+* [admin reports submission of written work]: on behalf of trainee.\n+  - Admin looks up <Training Progress> associated with trainee.\n+  - Admin enters URL of written work in <Training Task>.\n+\n+* [admin reports submission of written work]: on behalf of trainee.\n+  - Admin looks up <Training Progress> associated with trainee.\n+  - Admin enters URL of written work in <Training Task>.\n+  - AMY adds <Training Progress> to <Training Progress Review List>.\n+\n+* [admin reports completion of written work]: on behalf of trainee.\n+  - Admin looks up <Training Progress> associated with trainee.\n+  - Admin enters URL of written work in <Training Task>.\n+  - Admin marks <Training Task> as complete.\n+\n+## Tracking participation in interactive work.\n+\n+* [admin reports successful completion of interactive work]: such as discussion session or lesson demo.\n+  - Admin views {training progress} for trainee.\n+  - Admin selects <Training Task>.\n+  - Admin:\n+    - Enters date of interactive event.\n+    - Adds comments (if any).\n+  - Admin indicates whether <Training Task> is now complete.","path":"docs/instructor-training-workflow.txt","position":116,"original_position":116,"commit_id":"31992c7e242f6059d04ca3200a98d370500c6626","original_commit_id":"31992c7e242f6059d04ca3200a98d370500c6626","user":{"login":"chrismedrela","id":1645996,"avatar_url":"https://avatars.githubusercontent.com/u/1645996?v=3","gravatar_id":"","url":"https://api.github.com/users/chrismedrela","html_url":"https://github.com/chrismedrela","followers_url":"https://api.github.com/users/chrismedrela/followers","following_url":"https://api.github.com/users/chrismedrela/following{/other_user}","gists_url":"https://api.github.com/users/chrismedrela/gists{/gist_id}","starred_url":"https://api.github.com/users/chrismedrela/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrismedrela/subscriptions","organizations_url":"https://api.github.com/users/chrismedrela/orgs","repos_url":"https://api.github.com/users/chrismedrela/repos","events_url":"https://api.github.com/users/chrismedrela/events{/privacy}","received_events_url":"https://api.github.com/users/chrismedrela/received_events","type":"User","site_admin":false},"body":"This requires Mentors and Examiners to go to the {training progress} view *for each trainee*. If I leaded a session, I'd like to have a view of all trainees, select trainees that attended my session, and then click \"bulk pass\". ","created_at":"2016-06-29T18:48:52Z","updated_at":"2016-06-29T18:48:52Z","html_url":"https://github.com/swcarpentry/amy/pull/848#discussion_r69005335","pull_request_url":"https://api.github.com/repos/swcarpentry/amy/pulls/848","_links":{"self":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/comments/69005335"},"html":{"href":"https://github.com/swcarpentry/amy/pull/848#discussion_r69005335"},"pull_request":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/848"}}},"pull_request":{"url":"https://api.github.com/repos/swcarpentry/amy/pulls/848","id":75387032,"html_url":"https://github.com/swcarpentry/amy/pull/848","diff_url":"https://github.com/swcarpentry/amy/pull/848.diff","patch_url":"https://github.com/swcarpentry/amy/pull/848.patch","issue_url":"https://api.github.com/repos/swcarpentry/amy/issues/848","number":848,"state":"open","locked":false,"title":"Describing instructor training workflow","user":{"login":"gvwilson","id":911566,"avatar_url":"https://avatars.githubusercontent.com/u/911566?v=3","gravatar_id":"","url":"https://api.github.com/users/gvwilson","html_url":"https://github.com/gvwilson","followers_url":"https://api.github.com/users/gvwilson/followers","following_url":"https://api.github.com/users/gvwilson/following{/other_user}","gists_url":"https://api.github.com/users/gvwilson/gists{/gist_id}","starred_url":"https://api.github.com/users/gvwilson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gvwilson/subscriptions","organizations_url":"https://api.github.com/users/gvwilson/orgs","repos_url":"https://api.github.com/users/gvwilson/repos","events_url":"https://api.github.com/users/gvwilson/events{/privacy}","received_events_url":"https://api.github.com/users/gvwilson/received_events","type":"User","site_admin":false},"body":"Point-form use cases of instructor training workflow.","created_at":"2016-06-27T21:57:39Z","updated_at":"2016-06-29T18:48:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"835a8c733fb3eba242ae86ae7f566165a646997e","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/swcarpentry/amy/pulls/848/commits","review_comments_url":"https://api.github.com/repos/swcarpentry/amy/pulls/848/comments","review_comment_url":"https://api.github.com/repos/swcarpentry/amy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/swcarpentry/amy/issues/848/comments","statuses_url":"https://api.github.com/repos/swcarpentry/amy/statuses/31992c7e242f6059d04ca3200a98d370500c6626","head":{"label":"gvwilson:workflow","ref":"workflow","sha":"31992c7e242f6059d04ca3200a98d370500c6626","user":{"login":"gvwilson","id":911566,"avatar_url":"https://avatars.githubusercontent.com/u/911566?v=3","gravatar_id":"","url":"https://api.github.com/users/gvwilson","html_url":"https://github.com/gvwilson","followers_url":"https://api.github.com/users/gvwilson/followers","following_url":"https://api.github.com/users/gvwilson/following{/other_user}","gists_url":"https://api.github.com/users/gvwilson/gists{/gist_id}","starred_url":"https://api.github.com/users/gvwilson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gvwilson/subscriptions","organizations_url":"https://api.github.com/users/gvwilson/orgs","repos_url":"https://api.github.com/users/gvwilson/repos","events_url":"https://api.github.com/users/gvwilson/events{/privacy}","received_events_url":"https://api.github.com/users/gvwilson/received_events","type":"User","site_admin":false},"repo":{"id":30499788,"name":"amy","full_name":"gvwilson/amy","owner":{"login":"gvwilson","id":911566,"avatar_url":"https://avatars.githubusercontent.com/u/911566?v=3","gravatar_id":"","url":"https://api.github.com/users/gvwilson","html_url":"https://github.com/gvwilson","followers_url":"https://api.github.com/users/gvwilson/followers","following_url":"https://api.github.com/users/gvwilson/following{/other_user}","gists_url":"https://api.github.com/users/gvwilson/gists{/gist_id}","starred_url":"https://api.github.com/users/gvwilson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gvwilson/subscriptions","organizations_url":"https://api.github.com/users/gvwilson/orgs","repos_url":"https://api.github.com/users/gvwilson/repos","events_url":"https://api.github.com/users/gvwilson/events{/privacy}","received_events_url":"https://api.github.com/users/gvwilson/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/gvwilson/amy","description":"A web-based workshop administration application built using Django.","fork":true,"url":"https://api.github.com/repos/gvwilson/amy","forks_url":"https://api.github.com/repos/gvwilson/amy/forks","keys_url":"https://api.github.com/repos/gvwilson/amy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gvwilson/amy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gvwilson/amy/teams","hooks_url":"https://api.github.com/repos/gvwilson/amy/hooks","issue_events_url":"https://api.github.com/repos/gvwilson/amy/issues/events{/number}","events_url":"https://api.github.com/repos/gvwilson/amy/events","assignees_url":"https://api.github.com/repos/gvwilson/amy/assignees{/user}","branches_url":"https://api.github.com/repos/gvwilson/amy/branches{/branch}","tags_url":"https://api.github.com/repos/gvwilson/amy/tags","blobs_url":"https://api.github.com/repos/gvwilson/amy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gvwilson/amy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gvwilson/amy/git/refs{/sha}","trees_url":"https://api.github.com/repos/gvwilson/amy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gvwilson/amy/statuses/{sha}","languages_url":"https://api.github.com/repos/gvwilson/amy/languages","stargazers_url":"https://api.github.com/repos/gvwilson/amy/stargazers","contributors_url":"https://api.github.com/repos/gvwilson/amy/contributors","subscribers_url":"https://api.github.com/repos/gvwilson/amy/subscribers","subscription_url":"https://api.github.com/repos/gvwilson/amy/subscription","commits_url":"https://api.github.com/repos/gvwilson/amy/commits{/sha}","git_commits_url":"https://api.github.com/repos/gvwilson/amy/git/commits{/sha}","comments_url":"https://api.github.com/repos/gvwilson/amy/comments{/number}","issue_comment_url":"https://api.github.com/repos/gvwilson/amy/issues/comments{/number}","contents_url":"https://api.github.com/repos/gvwilson/amy/contents/{+path}","compare_url":"https://api.github.com/repos/gvwilson/amy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gvwilson/amy/merges","archive_url":"https://api.github.com/repos/gvwilson/amy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gvwilson/amy/downloads","issues_url":"https://api.github.com/repos/gvwilson/amy/issues{/number}","pulls_url":"https://api.github.com/repos/gvwilson/amy/pulls{/number}","milestones_url":"https://api.github.com/repos/gvwilson/amy/milestones{/number}","notifications_url":"https://api.github.com/repos/gvwilson/amy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gvwilson/amy/labels{/name}","releases_url":"https://api.github.com/repos/gvwilson/amy/releases{/id}","deployments_url":"https://api.github.com/repos/gvwilson/amy/deployments","created_at":"2015-02-08T17:55:11Z","updated_at":"2016-06-27T21:56:36Z","pushed_at":"2016-06-29T14:44:56Z","git_url":"git://github.com/gvwilson/amy.git","ssh_url":"git@github.com:gvwilson/amy.git","clone_url":"https://github.com/gvwilson/amy.git","svn_url":"https://github.com/gvwilson/amy","homepage":null,"size":11416,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"swcarpentry:develop","ref":"develop","sha":"86e7e58ea4fc7f312d406bed4eb6f336ed2adaa0","user":{"login":"swcarpentry","id":2238358,"avatar_url":"https://avatars.githubusercontent.com/u/2238358?v=3","gravatar_id":"","url":"https://api.github.com/users/swcarpentry","html_url":"https://github.com/swcarpentry","followers_url":"https://api.github.com/users/swcarpentry/followers","following_url":"https://api.github.com/users/swcarpentry/following{/other_user}","gists_url":"https://api.github.com/users/swcarpentry/gists{/gist_id}","starred_url":"https://api.github.com/users/swcarpentry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/swcarpentry/subscriptions","organizations_url":"https://api.github.com/users/swcarpentry/orgs","repos_url":"https://api.github.com/users/swcarpentry/repos","events_url":"https://api.github.com/users/swcarpentry/events{/privacy}","received_events_url":"https://api.github.com/users/swcarpentry/received_events","type":"Organization","site_admin":false},"repo":{"id":27387287,"name":"amy","full_name":"swcarpentry/amy","owner":{"login":"swcarpentry","id":2238358,"avatar_url":"https://avatars.githubusercontent.com/u/2238358?v=3","gravatar_id":"","url":"https://api.github.com/users/swcarpentry","html_url":"https://github.com/swcarpentry","followers_url":"https://api.github.com/users/swcarpentry/followers","following_url":"https://api.github.com/users/swcarpentry/following{/other_user}","gists_url":"https://api.github.com/users/swcarpentry/gists{/gist_id}","starred_url":"https://api.github.com/users/swcarpentry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/swcarpentry/subscriptions","organizations_url":"https://api.github.com/users/swcarpentry/orgs","repos_url":"https://api.github.com/users/swcarpentry/repos","events_url":"https://api.github.com/users/swcarpentry/events{/privacy}","received_events_url":"https://api.github.com/users/swcarpentry/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/swcarpentry/amy","description":"A web-based workshop administration application built using Django.","fork":false,"url":"https://api.github.com/repos/swcarpentry/amy","forks_url":"https://api.github.com/repos/swcarpentry/amy/forks","keys_url":"https://api.github.com/repos/swcarpentry/amy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/swcarpentry/amy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/swcarpentry/amy/teams","hooks_url":"https://api.github.com/repos/swcarpentry/amy/hooks","issue_events_url":"https://api.github.com/repos/swcarpentry/amy/issues/events{/number}","events_url":"https://api.github.com/repos/swcarpentry/amy/events","assignees_url":"https://api.github.com/repos/swcarpentry/amy/assignees{/user}","branches_url":"https://api.github.com/repos/swcarpentry/amy/branches{/branch}","tags_url":"https://api.github.com/repos/swcarpentry/amy/tags","blobs_url":"https://api.github.com/repos/swcarpentry/amy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/swcarpentry/amy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/swcarpentry/amy/git/refs{/sha}","trees_url":"https://api.github.com/repos/swcarpentry/amy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/swcarpentry/amy/statuses/{sha}","languages_url":"https://api.github.com/repos/swcarpentry/amy/languages","stargazers_url":"https://api.github.com/repos/swcarpentry/amy/stargazers","contributors_url":"https://api.github.com/repos/swcarpentry/amy/contributors","subscribers_url":"https://api.github.com/repos/swcarpentry/amy/subscribers","subscription_url":"https://api.github.com/repos/swcarpentry/amy/subscription","commits_url":"https://api.github.com/repos/swcarpentry/amy/commits{/sha}","git_commits_url":"https://api.github.com/repos/swcarpentry/amy/git/commits{/sha}","comments_url":"https://api.github.com/repos/swcarpentry/amy/comments{/number}","issue_comment_url":"https://api.github.com/repos/swcarpentry/amy/issues/comments{/number}","contents_url":"https://api.github.com/repos/swcarpentry/amy/contents/{+path}","compare_url":"https://api.github.com/repos/swcarpentry/amy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/swcarpentry/amy/merges","archive_url":"https://api.github.com/repos/swcarpentry/amy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/swcarpentry/amy/downloads","issues_url":"https://api.github.com/repos/swcarpentry/amy/issues{/number}","pulls_url":"https://api.github.com/repos/swcarpentry/amy/pulls{/number}","milestones_url":"https://api.github.com/repos/swcarpentry/amy/milestones{/number}","notifications_url":"https://api.github.com/repos/swcarpentry/amy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/swcarpentry/amy/labels{/name}","releases_url":"https://api.github.com/repos/swcarpentry/amy/releases{/id}","deployments_url":"https://api.github.com/repos/swcarpentry/amy/deployments","created_at":"2014-12-01T16:07:14Z","updated_at":"2016-06-23T20:54:27Z","pushed_at":"2016-06-29T18:43:14Z","git_url":"git://github.com/swcarpentry/amy.git","ssh_url":"git@github.com:swcarpentry/amy.git","clone_url":"https://github.com/swcarpentry/amy.git","svn_url":"https://github.com/swcarpentry/amy","homepage":null,"size":13348,"stargazers_count":31,"watchers_count":31,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":39,"mirror_url":null,"open_issues_count":54,"forks":39,"open_issues":54,"watchers":31,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/848"},"html":{"href":"https://github.com/swcarpentry/amy/pull/848"},"issue":{"href":"https://api.github.com/repos/swcarpentry/amy/issues/848"},"comments":{"href":"https://api.github.com/repos/swcarpentry/amy/issues/848/comments"},"review_comments":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/848/comments"},"review_comment":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/swcarpentry/amy/pulls/848/commits"},"statuses":{"href":"https://api.github.com/repos/swcarpentry/amy/statuses/31992c7e242f6059d04ca3200a98d370500c6626"}}}}
{"actor":{"display_login":"chrismedrela"}}