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 two previous challenge, CrowdExchange Visualforce Development - Stories and Activities and CrowdExchange Visualforce Development - Stories and Activities - Part 2, 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. member-activity-details-assigned.html
4. publisher-stories.html
5. publisher-story-details.html
6. publisher-create-story-step1.html
7. publisher-create-story-step2.html
8. publisher-create-story-step3.html
9. publisher-add-activity.html
10. publisher-activity-details-assign-register.html

In this challenge, your tasks are fairly straightforward.  We're implementing the login and forgotten password functionality on the home.html page.  We're not doing Self-Registration at this time so you can leave the "Register" link as a dead link.  Members and Publishers are going to be identified by a field on the User Object:  Crowd_Exchange_User_Type__c.  The values here will be: None, Member, or Publisher.  There will be Permission Sets associated with each of the user types.   You should validate the User which is attempting to authenticate is a valid User (can be found in the user table) on the Force.com platform. There are a couple of prepared Visualforce Pages and Controllers which you may be helpful for reference:  SiteLoginController and the ForgottenPasswordController but I don't believe they can be used in current form since much of the functionality on the home.html page uses javascript to display modal dialogs.  SiteLogin and ForgotPassword page were autogenerated by Salesforce.com when we created our CrowdExchange Site.

When a user logs in successfully to the site, they should be directed to the Publisher Stories page if they are a publisher and the Members Stories page if they are a Member.  Ultimately, the navigation will be different but they other pages are not complete yet.  We should display error messages if the user isn't able to authenticate.  The code from the previous challenge is attached to the forums for this challenge.  When a user asks for a forgotten password, enters their username and clicks submit, we should provide the following confirmation message:  "An email has been sent to your email address with instructions on how to reset your password."

Also please correct the labels "User name".   They should all say "Username" as one word.



Final Submission Guidelines

  • Your submission should be based on the data model and previously written code provided in the Stories and Activities - Part 2.zip file found in the Code Documents sections of the forums associated with this challenge.  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.   The code is a little tricky to deploy but you can remove all profiles, site, and workflow files from the deployment and the package.xml.  None of these files are needed for this particular challenge.

  • Also attached is the proto2v28.zip file.  This file contains the latest home.html, css, and javascript for the modal dialogs.

  • You should provide brief documentation of your solution.  This can be minimal as the functionality requested is quite straightforward.  However, you should include username and password to your whitelisted developer organization.  Our iterative reviewer will initially be testing the code in place rather than deploying it to another tenant.  You can read instructions about how to whitelist your organization here:  http://raydehler.com/cloud/clod/enable-all-trusted-ip-ranges-for-a-salesforce-org.html

  • 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.  

  • You should write tests for your code and achieve code coverage of at least 85%.  Please validate that all your tests run without errors.  You might need to include code which manages data dependencies with your tests.
      

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30050986