Melange User stories need to be grouped to spot common themes, so that we avoid writing ‘the same code’ many times over in different disguises. A first try at grouping the user stories is done here.

Stories Presenting Read-Only Pages

Story 28, ‘creating a page’ is one story which leads in to many others. Once a new page is created by the host, it is read only, at least for most readers. The created page can include a table. The author chooses what table, what fields from that table and what formatting.

  • Melange will need many read only pages which present the results of a ‘query’. Stories 8,9,28,35,36,40,41,43,54,55,56 could be implemented using one generic technique for creating pages.
  • Story 20 and 19 are about looking up information. A read-only table with an alphabetical list of ‘linknames’ with corresponding e-mail addresses could provide these.
  • The original ‘Story 28’ was written as being only for ‘hosts’. This ability to create custom pages for their organisation could be given to ‘org admins’ too, using the same code.

|ID|For|Summary| |:-|:--|:------| |Issue 8 (on Google Code)|Summit|Hosts need to be able to set basic Program home page content| |Issue 9 (on Google Code)|GSoC|Hosts need to be able to specify feed URLs for Program home pages| |Issue 28 (on Google Code)|Summit|Hosts should be able to create per-Program Documents| |Issue 35 (on Google Code)|Summit|“program name” links for Active Programs on User Roles page should point to per-Program home page| |Issue 36 (on Google Code)|GSoC|“program name” links for past Programs on User Roles page should point to per-Program history pages| |Issue 40 (on Google Code)|Summit|“org name” links in Active Programs on User Roles page should point to per-Program per-Org home page| |Issue 41 (on Google Code)|GSoC|“org name” links in past Programs on User Roles page should point to per-Program, per-Org history pages| |Issue 43 (on Google Code)|GSoC|User Roles page should link to historical read-only view of past Roles| |Issue 54 (on Google Code)|Summit|Task list view| |Issue 55 (on Google Code)|GHOP|Each GHOP org needs a list of tasks| |Issue 56 (on Google Code)|GHOP|GHOP students need a task list| |Issue 20 (on Google Code)|GHOP|“Public” information should be used to look up Users| |Issue 19 (on Google Code)|Summit|Hosts and site admins should be able to look up Users by Google Account|

Questionnaire Stories

Stories 21, 22, 23, 26, 29, 57 are all about creating or answering QuestionnairePages.

  • Some questionnaires have a ‘finalise’ step - there‘s no going back after the step. If you’re a potential mentor organisation applying to google, you can't edit your responses after you click submit. A similar thing happens when you accept terms of service. With that feature as part of making a questionnaire we can add stories 24, 30 and 42 to this group.

Google forms provides a good interface for creating questionnaires. It's worth looking in some detail at the differences between what it provides and what we need.

|ID|For|Summary| |:-|:--|:------| |Issue 21 (on Google Code)|Summit|Authors need to be able to create Questionnaires| |Issue 22 (on Google Code)|Summit|Users need to be able to create a Response to a Questionnaire| |Issue 23 (on Google Code)|GHOP|Site admins should be able to create a Terms of Service “Questionnaire”| |Issue 26 (on Google Code)|GHOP|Hosts should be able to create per-Program Terms of Service “Questionnaires”| |Issue 29 (on Google Code)|Summit|Hosts should be able to create per-Program Organization Application “Questionnaires”| |Issue 57 (on Google Code)|GSoC|Hosts of a GHOP Program create the Task template| |Issue 24 (on Google Code)|Summit|Users need to agree to a site-wide Terms of Service| |Issue 30 (on Google Code)|GHOP|User can apply per-Program to create an organization| |Issue 42 (on Google Code)|GHOP|Users need to agree to per-Program Terms of Service or Contest Rules|

ACL Related Stories

The difficulty of stories 1,4,5,6,7,15,17,31,32,33,37 is mainly in the logic for who has the rights to do what. This needs to be cleanly factored in the design. See AccessControl for details and discussion.

|ID|For|Summary| |:-|:--|:------| |Issue 1 (on Google Code)|GHOP|Claiming a Task| |Issue 4 (on Google Code)|Summit|Site administrators need to be able to create Sponsor organization profiles| |Issue 5 (on Google Code)|Summit|Site administrators need to be able to designate Users as Hosts in a Sponsor organization| |Issue 6 (on Google Code)|Summit|Users who have been given Host roles by site administrators need to complete a profile| |Issue 7 (on Google Code)|Summit|Hosts need to be able to create a new Program| |Issue 15 (on Google Code)|GHOP|Documents should have Role-based access control lists| |Issue 17 (on Google Code)|GSoC|Hosts need to be able to nominate new Hosts| |Issue 31 (on Google Code)|GHOP|Hosts need to be able to review and approve Organization Applications| |Issue 32 (on Google Code)|Summit|User Roles page should display Pending Roles| |Issue 33 (on Google Code)|GHOP|User Roles page should display Potential New Roles| |Issue 37 (on Google Code)|Summit|User Roles page should display Active Roles|

Media Specific Stories

This group, 13,16,25,34,52 involves features such as e-mail and image upload which do not lend themselves to generic approaches.

|ID|For|Summary| |:-|:--|:------| |Issue 13 (on Google Code)|GHOP|Opt-in email should be available to communicate certain events| |Issue 16 (on Google Code)|GSoC|Role-specific feeds should be provided for events| |Issue 25 (on Google Code)|GSoC|An image upload/crop/scale/accept view is needed| |Issue 34 (on Google Code)|GSoC|User Roles page may need a tabbed or tree interface| |Issue 52 (on Google Code)|GSoC|Hosts should be able to attach date-sensitive reminders to evaluations|

Profile Stories

Stories 38 and 39 are to ensure profiles work well.

|ID|For|Summary| |:-|:--|:------| |Issue 38 (on Google Code)|GSoC|Changing a per-Role profile in an active Role should offer to update other Roles| |Issue 39 (on Google Code)|GSoC|The profile for a new User Role should be prepopulated|