Register
Submit a solution
The challenge is finished.

Challenge Overview

This challenge is the second in a series of challenges for the mood-ring project.  Mood-ring will be a mobile app that allows users to provide 360 feed back with other members of their project team as well as provide their 'Fun Factor" score for a given day.  The first challenge involved building a native Swift implementation for the HTML protoype that is hosted here - https://appirio-mood-ring.herokuapp.com/

The app has 2 roles

- Users

- Managers

The following are the use cases for both these roles. In this challenge, we would like to build the data model for mood-ring in Force.com so the Swift app can then perform CRUD operations as per the various screens.

Proposed model

Project

     - id:        the id

    - title:     the title

    - rating:    current project's rating

    - avgRating: the avarage rating of all user's in the project

    - iconURL:   the project icon URL

    - tintColor: the tint color of the project's icon

    - funFactor: the project's fun factor

User

     - id:  the id

    - fullName:  the full name

    - rating:    The current rating. Used in UI to show on different screens.

    - funFactor: the current fun factor of the user

    - iconUrl:   the URL of user's image

Rating History

   - id

   - rating

   - ratedBy

  - User

   - Project

Fun Factor

    - funFactor: the fun factor index

    - comment:   the comment

    - date:      the date of the fun factor change

Please link the above objects (junction/ master detail/ lookup) based on your discretion and ensure that you justify the decision in your documentation. Also, the above is a rough desription of schema. If you have suggestions on how it should be improved, please post in the forums.

Some key considerations

The fun factor is attached to the individual not the project. He/She maybe be: happy that all the projects are going well or be sad that his/hers dog died. The only relationship to the fun factor is what is supplied in the comments.

- The fun factor roles up to the "manager_satisfaction" page.

Satisfaction = fun factor

manager_dashboard screen 

"proj rating" is an average of ratings of persons on the current day

- "avg rating" is an average of ratings of persons for all days rated

- the line chart is the avg proj rating over time

member_details screen

 the line chart represents the average of all projects so a given day equal one point on the line chart. For each point on the line chart the there should be one bar for each of the projects that Jackblack Longnam is on

Manager -  is a silent observer. He is interested in what team members are saying but does not provide any feedback at this time. Idea is that it gives him a quick glance at how projects are doing and if there is anyone he /she needs to reach out to.

We strongly encourage you to ask questions early in the forums if you need any clarifications.

 

 

 



Final Submission Guidelines

Submit the following

- Unmanaged package

- Deployment Guide which explains how your data model caters to the various use cases mentioned in the requirements

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30051787