COMP 523.602

¢Change

Master Functional Spec

User Types

Requirements

Interfaces

Administrative Interface

Dashboard - Administrators can invite charities to join cChange with an email address and their admin credentials - an email with a link contained a charity token will be sent to this email address.\ API Calls: /charityToken.create

Common Visitor, User & Charity User interfaces

These interfaces will be displayed this same to visiting users and authenticated users (with the exception of the display of the user’s name and a user maintenance menu if the session is authenticated, and relevant buttons for editing and deleting content where applicable based on the authentication of the user).

Log In - Form to accept email and password, allows users and charity users to start an authenticated session.
API Calls: /user.login

Search & Browse - This view will contain a search box and a menu with keyword and category input. It will offer users to browse campaigns, charities, updates, users, post and donations. By default, these objects will be listed by descending creation date. API Calls: /list.type

Charity Profile - The charity profile displays a logo, name, description for a charity, as well as lists of their campaigns, updates, posts and donations.
API Calls: /list.single, /list.type

Campaign - The campaign page displays the title, description and pictures associated with a campaign, as well as posts and donations made towards a campaign. This page will have buttons to donate or create a post in support of the campaign. API Calls: /list.single, /list.type

Update - The update page displays the date of the update, the title of the update, and the body or description of the update.
API Calls: /list.single

Post - The post page displays the posted image together with a banner and the charity’s logo. It will link to the campaign, the charity, and the user profile. It will display a caption and an indication of the donations made through the post. It will have a prominent donate button. API Calls: /list.single

User Profile - The user profile display’s a users profile picture, name and bio. The user’s profile will list the users donation activity, posts, and following/followers information.
API Calls: /list.single, /list.type

Charity interfaces

Charity Signup - Form to accept a user’s name, email and password, as well as the name of their charity. This page will only function correctly if it is accessed with a link containing a non-expired, unused charity token.
API Calls: /user.create.charity

Edit Charity Profile - This edit view allows charity users to update their charity’s logo, name and description. The charity logo must be able to be cropped to a square.
API Calls: /list.single, /charity.edit

Create / Edit Campaign - This view allows a charity to create a new campaign or update an existing one. This view has a form with a name field, description field, and photo-management section. Photos uploaded to this page cannot be cropped.
API Calls: /list.single, /campaign.create, /campaign.edit

Create / Edit Update - This view allows a charity to create a new update or update an existing one. This view has a form with a name field and a description field (dates are automatically generated upon creation).
API Calls: /list.single, /update.create, /update.edit

User Interfaces

User Signup - This view will allow regular cChange users to create an account. Fields include name, email, password and confirm password.
API Calls: /user.create

Profile Edit - This view will allow a user to edit their name, bio or profile picture.
API Calls: /user.edit

Create Post (for campaign) - This view will allow a user to create a new post. This view accept a campaign ID if the view is accessed by a user who clicks a button on a campaign page specifically to support that campaign. This view will accept a photo upload (which must be cropped to a square), a caption, a way to navigate through possible campaigns (if one is not provided), and will also accept a donation amount if the users wants to donate while creating the post.
API Calls: /post.create

Edit Post - This view will allow a user to edit the caption of their post.
API Calls: /list.single, /post.edit