Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Topcoder is helping a client develop an internal crowdsourcing solution -- CrowdExchange.  Publishers in this community will create Stories and Activities in the system which represent software development tasks which need to be completed.  Members, the software developers, will log into the system, search to find activities they are interested in, and register to complete the tasks.  After registering, a Member will submit zip files containing their submissions and the Publishers will review and score the work completed.  In some ways, this community will work very much like Topcoder itself. 

In a previous challenge, we've implemented the following pages of the prototype as a AngularJS/Visualforce web application:

1. member-stories.html 
2. member-story-details.html
3. publisher-stories.html
4. publisher-story-details.html
5. publisher-create-story-step1.html
6. publisher-create-story-step2.html
7. publisher-create-story-step3.html
8. publisher-add-activity.html
9. publisher-activity-details-assign-register.html
10. publisher-activity-details-competition-review.html

However, this was a large number of screens and we have some additional ground to cover.  In this challenge, you'll be addressing the following issues related to the following Visualforce pages: 

CrowdExchangeWebApp -- the default page for the app
CrowdExchangeWebApp_PubAddActivity
CrowdExchangeWebApp_PubStoryDetails
CrowdExchangeWebApp_MemberStoryDetails
CrowdExchangeWebApp_MemberActivityAssigned
CrowdExchangeWebApp_PubActivityReview
CrowdExchangeWebApp_PubActivityAssign
CrowdExchangeWebApp_PubCreateStory
CrowdExchangeWebApp_Stories
CrowdExchange_ActivityFeed

1. General issue: While a page is loading we see the Angular template with the "{{ expression }}" markup. This looks bad. Consider using ngCloak directive or another resolution. Also we see numeric expressions being initialized to all zeroes before being populated with the actual values -- see https://c.na31.visual.force.com/apex/CrowdExchangeWebApp#/publisherStoryDetails/a0G37000000A2DBEA0    
2. Stories page: Filter should be initially closed like in prototype.    
3. Stories page: The Add Activity button is missing which was present in the prototype.  Please add that.
4. Stories page: Currently the Stories page shows Stories with no active challenges.  That isn't correct.  The Stories list should only show Stories with at least one Activity that isn't in draft status.  
5. Stories page: When the filter is open, the arrow beside "Hide Filter" should be pointing up like in prototype not down.    
6. Stories page: When "All" is selected for stories per page, the pagination controls should still be shown like in prototype (just disabled).    
7.Stories page: The links for activities, registrants, and submissions don't work. They just reload the Stories page.    
8. Stories page: Cancel on the filter should undo the filter (show all records).    
9. Stories page: Cancel on the filter should also hide the filter like in prototype.    
10. Publisher Story Details page, Story tab: Should fix typo from prototype: "Star Date".  This should be "Start Date".
11. Publisher Story Details page, Activity tab: The label  "Time Line" should be updated to "Timeline".    
12. Publisher Story Details page, Activity tab: The line in the timeline should use the same colour as the prototype. Also you use only white squares while the prototypes uses coloured (filled-in) squares as well.    
13. Publisher Story Details page, Activity tab: In the Support Doc timestamp, should be a comma between date and time like in prototype.    
14. Publisher Story Details page, Registrants tab: "All Registrants" should have pagination like in prototype.    
15. Publisher Story Details page, Registrants and Recommended Members tab: Not done from the forum: "change the label of that column header from Expertise Area to Skills" -- see http://apps.topcoder.com/forums//?module=Thread&threadID=860625&start=0    
16. Member Story Details page: Clicking the registrants link should go to the Registrants tab, not the Activity Detail tab.    
17. Header: The "Stories" link should work.    
18. Publisher Add Add Activity page: Please see attached Milestone Time Issues.png.  We've got several issues going on here.

a.  I think we need to add the numbers next to the labels for the the text. 1 - Publish, 2 - Start, 3 - Registration, 4 - Submission, 5 - Review.  It would great if we could put the same icons in the timeline graphic next to the labels.
b.  Obviously the milestone graphic should never show a number (like the #1 shown in the attached screen shot) off to the left of the graphic.
c.  There needs to be some basic validation with the calendar.  You shouldn't be able to set a date duration less than 1 day for any phase.  And less than 2 days between Registration and Submission (because there is an Assignment Phase in there too).  The default values are working ok but if you change the Start Date to be before the Publish Date, the application should display an error message ("You may not set Publish Date for Start Date") and prevent that change.  We should show that error near the Timeline so it is obvious. Each phase Publish, Start, Registration, Submission and Review are going to happen in sequence.
d.  The calendar should update the activity milestones scheduled dates for later phases when a user updates an earlier phase.  Let's use an example here to describe the behavior I'm looking for.  Upon entering the Add Activity page a Publisher is shown the following dates:

Publish Date 8/1/2015
Start Date 8/2/2015
Registration Date 8/4/2015
Submission Date 8/12/2015
Review Date 8/14/2015

Note that the duration between Registration Date and Submission Date is 8 days not 7 because it includes a day for the Assignment phase -- the Assignment Date milestone.  

Now publisher leaves the Publish Date alone wants to update the Start Date to 2 day later to allow for some more promotion of the challenge.  When the user updates the Start Date to 8/4 from 8/2, the Registration, Submission, and Review Date milestones should update 2 two days later as well.  We won't however, do the opposite.  When a user moves a timeframe forward we won't update the following milestones.
19. Publisher Edit Activity Page:  Publish button doesn't work.  Should save current changes and forward users to Activity Detail view.



Final Submission Guidelines

  • Your submission should be based on the data model and previously written code provided in the attached zip file.  Included in the zip files are detail instructions about how to deploy the code to a new developer org using the Force.com deployment tool.   Data model changes are allowed/expected as not every update in the UI may have been captured in the data model.  However, forum posts are strongly encouraged to discuss pros and cons of various schema configurations.  Please document your schema changes in the written documentation requested below.

  • You may submit your code either as an unmanaged package link or as metadata files for deployment by the Force.com Deployment tool.   Please include all necessary libraries and dependencies to build and run your code.  

  • Please submit written documentation for your submission.  Changes to the data model should be highlighted.

  • Please validate that all your tests run without errors.  You might need to include code which manages data dependencies with your tests.
     
  • There are several attachments to this challenge.  The code.zip file contains the source code and deployment guide for the previous submission.  It can be found in the Code Documents sections of the forums associated with this challenge.  Separately, I'm including some text files to execute anonymous Apex to create milestones and some skills.  In addition, there is a workflow diagram which outlines the process flow for Activities. 

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30050928