Skip to content

Spec for Next Minor Release

danascheider edited this page Dec 19, 2014 · 9 revisions

The specs listed on this page are focused on user experience and not technically comprehensive. Interested parties are encouraged to read the RSpec and Cucumber tests in the Canto /spec and /features directories.

Many or most of these specs may be migrated over to the Canto front-end repository in the near future. Additional, more up-to-date specifications are also available in the Canto front-end wiki.

Version 0.1.0

Upshot

Version 0.1.0 will be a basic to-do list site with multi-user functionality and task categorization useful to professional or pre-professional opera singers.

Homepage
  • Users who are new or not logged in should see the homepage when they navigate to the site
  • The homepage view should offer users the opportunity to log in or sign up
  • The homepage view should contain a brief description of Canto 0.1.0's functionality and purpose
  • Logged-in users who view the homepage via the link on their dashboard should see a link to their dashboards
User Sign-Up
  • Users should be able to create their own accounts using a sign-up form, linked from the homepage
  • Users should be required to give a password, an e-mail address, a first name, and a unique username
  • Users should not have access to their accounts until their e-mail address has been verified
  • Users should not be signed up if:
    • Any required fields are blank
    • Their username is not unique
    • Their username is too long (> 20 chars) or too short(< 6 chars)
    • Their password is too long (> 50 chars) or too short (< 8 chars)
    • Their e-mail address is in the wrong format
    • They do not accept the terms of service
  • Users should be required to type their password twice
  • Users should be required to enter a Captcha
  • Users whose accounts are not created for any of these reasons should see a notice saying that their account was not created and why
  • Users who have just signed up and validated their e-mail address should be automatically logged in and rerouted to their dashboard
  • Users should not be able to create admin accounts via the signup form
User Login
  • Users should be able to log in by entering their username and password on the login page
  • Users who enter the wrong credentials should not be logged in and should see a notice saying they have entered bad credential
  • The login view should have a link to reset forgotten usernames or passwords
  • The password field should not show the password as it is typed
  • The login page should have a check box with text "Remember Me"
  • Users who have checked the "Remember me" check box should stay logged in even after they close their browser
  • Users should be routed to their dashboard after they log in
  • Logged in users who visit the site should bypass the homepage and go directly to their dashboard
  • Logged in users who visit the homepage via the link in their dashboard should still be logged in
  • Logged out users who attempt to navigate to a dashboard should be prompted to log in
User Dashboard
  • User dashboard should display the user's to-do list
  • User dashboard should display the user's recommendations
  • User dashboard should have a link to edit the user's profile
  • User dashboard should have links to request support or report problems
  • User dashboard should have a link to view the homepage
To-Do List
API:
  • Tasks should have the following information:
    • Title (required)
    • Status
    • Deadline
    • Priority
    • Description
    • List position
  • Tasks should be sortable into these categories:
    • Repertoire
    • Performance
    • Teaching
    • Networking
    • Professional development
    • Applications
    • Resume building
    • Languages
    • Other
  • To-do list should only show to-do items belonging to the current logged-in user
  • To-do list should be sortable by title, status, deadline, or priority
GUI:
  • Each task should have links to edit, delete, or mark complete that item
  • Tasks should be color coded by priority
  • To-do list should display only incomplete tasks by default
  • Users should see a 'Show completed' link to display tasks that have been marked complete
  • Users who click the 'Show completed' link should see all their tasks and the link should change to 'Hide completed' without refreshing the page
  • Tasks marked complete via the 'mark complete' link should be removed from the view without refreshing the page
  • Users should see a link where they can create a new task
  • Users who don't have any incomplete tasks should see a message that they have no tasks and a link prompting them to create one
  • User should be able to show or hide tasks by category
Support Page
  • Support page should have contact form to contact support
  • Support page should have a link to FAQ page (once we know what the FAQs are)
  • Support page should have a link to delete the account
  • Support page should include a form to suggest modifications or new features
  • Users should have to enter a Captcha to submit the forms
  • When a user's account gets deleted, their dashboard settings and to-do lists should be deleted as well
Profile Edit Form
  • Users should see fields where they can edit their profile information
  • Available fields should include:
    • Username
    • Password
    • First name
    • Last name
    • E-mail
  • Form should be validated so users can't leave username, password, first name, or e-mail blank
  • Users who change their password should be required to enter the old password and confirm the new
  • Users' e-mail addresses should not be saved until they have entered a confirmation code for the new e-mail
Task Edit Form
  • Users should see fields for all the to-do item's attributes
  • If a user attempts to update a to-do item with its title or status field blank, the update should fail
  • If the update fails, the user should see a notice telling them the update failed and why
Admin Functions
API:
  • Admin users should be able to create new users
  • Admin user creation forms should enable creation of admin users
  • Admin should have to re-enter password and Captcha to create a new admin account or to change any user's username, e-mail, or password
  • Admin should not be authorized to delete required information (e.g., can change user's e-mail without verifying, but cannot delete e-mail)
GUI:
  • Admin dashboard should show links to edit users
  • Admin should be able to edit all user account details
  • Admin users should have a 'messages' section where they can view support requests or other messages from users