Challenge Overview

Welcome to the IBM - SiBM - Mood Marbles Mobile Prototype UI Challenge! The goal of this challenge is to create the HTML5 Prototype for a mobile-based application using the provided "Mood Marbles" storyboards. The prototype must follow our standards and our guidelines. Review the details below.

The main task of this project is to create the HTML5 Mobile UI Prototype based on the provided Storyboard design by using industry standard best practices for mobile development.

NOTE: This challenge will leverage Bootstrap (http://getbootstrap.com/getting-started). 

As part of this challenge we need you to document your HTML5/CSS3/JavaScript code (using best practices). We are looking for a clear explanation of the code to allow us the ability to quickly update and integrate with future development. We will allow documentation updates during final fixes (but still required)

Tips for Success: Asking questions early and getting Copilot or PM's feedback is very important for the success of this challenge.

Competition Task Overview:
The main task of this competition is to develop HTML5 prototype based on the provided storyboard designs. Your prototype must work properly in all the required browsers. We are only concerned about mobile browser since this app will run in mobile devices like iPhone 6 and Android.

Required Pages:
0) Navigation:
- When user clicks on hamburger menu the navigation will open.
- Home: Lead to main dashboard (Most recent view).
- Starred: Lead to main dashboard (Starred view).
- Create New: Leads to pop-up to creating new project team.
- Notifications: Leads to drop-down list of most recent notifications.
- Settings: Leads to pop-up of screen to edit.
- Logout: Leads to pop-up, which will ask user to confirm before logging out.
- Profile picture and name is static (not clickable).

1) Login:
- IBM Mood Marbles is text based.
- User needs to enter their credentials before logging in to the app.
- Enter username or email in first line.
- Password in second line.
- Forgot link will lead to another page with instructions for users who have forgotten their password or username.
- If user provide wrong credential or forgot to enter one of the login fields, error screen will appear (red error style).
- When user clicks login he will be redirected to Dashboard.
- There will be an option for new users to sign up at the bottom. This leads to a sign up page.

Forgot Password:
- User will be prompted to enter their email or username. They will be shown a confirmation that a password reset email has been sent. They can they go back to the login page.

Sign up:
- The following are details users need to provide in order to create a new account:
-- First name.
-- Last name.
-- Email.
-- Username.
-- Password.
-- Retype password.
-- Title/Position.
-- Company.
-- Mobile number (optional).
- Submit button that leads to Sign up confirmation view, clicking on continue will lead to dashboard.

2) Homepage:
- This screen will display a list of project teams.
- Most recent tab will show all project teams the user is on, and organized by most recently updated.
- Starred tab only shows list of project teams that are starred and is organized by most recently updated.
- Elements within each list.
-- Name of project team.
-- Unique identifier number.
-- Total number of team members.
-- Date/time indicating how long ago it was updated.
-- Ability to star or unstar a project team.
-- Average team mood, number at the top represents the number of members that have responded.
- Add/Plus button: This leads to a pop-up screen that allows the user to create a new project team.
- Clicking on anywhere (except the star button) will direct user to the project team dashboard.
-- However, if the user has not entered their mood for the day yet, they will be redirected to a pop-up to select their mood.

3) Selecting Mood:
- User will have the option to toggle the button on the slider. There are only 5 options.
-- Start by showing “Not good” first, and allow user to move it in the order of “Not bad”, “Okay”, “Good”, and “Great”.
-- The “Next” button will lead the user to a comment box.
-- If the user chooses not to input their mood right now, the can select “skip”. This will lead them directly to the project team dashboard.

Entering Comment After Selecting Mood:
- User will have the option to click on the back arrow button to change his/her mood.
- The submit button will only become fully opaque once user starts typing.
- When comments have been completed, “submit” button will submit the mood and comments to the project team’s average mood.

4) Project Team Dashboard Page
- The following are the main sections on this screen:
-- Project team info
--- Name of project team
--- Unique identification number
--- Total number of members
--- Update Mood button (Goes back to “selecting mood” pop-up). This is for users who chose to skip mood selection and comment input  previously.
--- Arrow that leads to more information about the team
-- Visualization of average team mood
--- Users can toggle back and forth between team and personal view. (Team view shows average mood of entire team, personal view shows a history of your moods and comments on the particular project.) The toggle changes the graphs and comments shown below.
--- You can look at average moods by day, week, and month. “Today”, “Week”, and “Month” are clickable.
--- Users can also use swiping gestures to switch between day, week, and month.
-- List of individual moods and comments
--- Showcases average mood and comment that was entered along with it.
--- Date/time to indicate when it was entered.
--- Comments are anonymous. (The reason for this is to provide team members with a safe environment to voice their honest opinions.)

More Information about Project Team
- Info
-- Name of project team
-- Unique identification number
-- Total number of members
-- Brief description of project.
-- Date of creation
- Team Members
-- Profile picture
-- Name
-- Title/position
-- Action button: This will lead to a pop-up that allows the user to call, send a text message, or email.
- Settings
-- This will allow users to edit information about the project team.

5) Settings
- Users can edit their view or edit their personal settings here.

6) Create New Project Team
- Users can create new project teams by clicking on “Create New” in the navigation or clicking on the plus/add button on the homepage.
- Those two options will lead to a pop-up. It is a form that will ask for the following information:
-- Project team name
-- Project team description
-- Add members: Find members by entering an email address or username of the person(s) you want to add.
--- The members you add will be included in a list below. To remove them from the list, click on the “X” button. (Members will only receive an invitation after you click “Create”)
--- Click on “Create” to create your team and send invitations to team members.

Confirmation screen:
User will be shown confirmation after creating their project team.

Setting alert time:
- User will be given the option to set an alert/reminder time to input mood and comments.
- User can also choose to skip this step or decide later and go straight to the project team dashboard.

7) Search
- Users can only search for a project teams:
-- Search by name or unique identification number.
-- Project teams that you are already apart of will show up first.
-- There will be a check mark next to project teams that you are on.
-- You can request to join a project team you are not part of.
--- When you click on the request button, there will be a pop-up to ask the user to confirm their request.
--- Once the request has been placed, the icon next to the project team will be changed.

8) Notifications:
The following are examples of notifications a user may receive:
- An invitation to join a project team.
- A request to join a project team you are currently on.
- A request you made to join a project team has been approved.
- Changes have been made to the settings on a project team you are currently on.

9) Logout
- Clicking on the logout on the navigation bar will lead to a pop up.

Please refer to this clickable static prototype to view what the interactions between screens should look like:
http://invis.io/NH3IC8M65

Specific HTML/CSS/JavaScript Requirements:
HTML/CSS Requirements:
- Your HTML code must be valid HTML5 and follow best practices
- Validate your code - reviewers may accept minor validation errors, but please comment your reason for any validation errors. Use the validators listed in the scorecard.
- Use CSS to space out objects, not clear/transparent images (GIFs or PNGs) and use proper structural CSS to layout your page. Only use table tags for tables of data/information and not for page layout.
- No inline CSS styles - all styles must be placed in an external style-sheet.
- Use semantically correct tags - use H tags for headers, etc. Use strong and em tags instead of bold and italic tags.
- Element and Attribute names should be in lowercase and use a "-" or camel naming to separate multiple-word classes (i.e.. "main-content", or "mainContent)
- Label all CSS, JavaScript, or HTML hacks with explanations so others will understand.
- Your code must render properly in all browsers listed in the scorecard in both Mac and PC environments.

JavaScript Requirements:
- All JavaScript used must not have any copyrights to any third party. You are encouraged to use your own scripts, or scripts that are free, publicly available and do not have copyright statements or author recognition requirements anywhere in the code.
- You are allowed to use JQuery (MIT License)  for this contest.

Browsers Requirements:
- Firefox, Safari & Chrome Mobile Browsers.
- Android Browser.

Documentation Provided:
- Storyboard Screens and PSD files can be found in forums.
Note: The provided screens are for retina display, we need to support both normal and retina displays.



Final Submission Guidelines

Submission Deliverables:
- A complete list of deliverables can be viewed in the UI Prototype Competitions Tutorial.

Final Submission:
- For each member, the final submission should be uploaded to the Online Review Tool.

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30050666