Challenge Overview

Overview

* NOTE:: The current application asset is made available to registered members on the Forum post "Code Documents".

The current Salesforce deployment tool helps automate the generation of a package.xml and validate that these components are complete and valid before committing to source control. The contents of package.xml are derived from data captured and stored in a Salesforce.com App {CMC} used for Agile Development management (* CMC is an Appirio prorpietary app). A public API hosted on AWS exposes methods to generate the package.xml based on that data. This is a GRAILS application that has access to the local file system where deployed and  HTTP Rest-based services. This app is used by developers across multiple teams to retrieve Salesforce metadata components tracked against a Story or Issue and verify the package.xml is complete & without errors. The app also manages user settings used to authenticate to various Salesforce orgs and services.

The Deployment Validation tool is a Grails based application developed to work with Appirio's CMC (Stories and Issues) that have manifests (SFDC metadata) attached to them. The tool allows developer users to pull the metadata attached based on the input Story/Issue Numbers, and download them locally and validate against a target SFDC environment. This helps Developers quickly validate their changes before merging and committing code into the SVN master repository, thereby saving valuable time, and working with issues early on.

Requirements

We would like to add the following enhancements to this application to further drive its adoption and open more controls into the process. Following are the key requirements we would like to have as the scope of this contest:

1. Currently the three sets of login credentials (CMC, source org, target org) are insecure residing in a config file, we would like this managed in an encrypted and secure manner, such that one cannot get to the credentials by simply looking at this file. The UI should provide a user friendly way to update a user's credentials (*maybe use hashing)..

2. The Application allows users to map 2 directory paths, and allows the option to pull a fresh source only at the start of the process, which if not done will always use the already pulled local copy as the source. We would like a flag/option to either use the existing source (available locally), or refresh the Source before executing.

3. When specifying the directories, users must currently write out the full path of the directories manually (* should ve ability to browse and select). Additionally, the Application currently offers no support for remembering the directories so the user doesn't have to reselect them each time. The UI should provide a more user friendly way of selecting the desired directories, and should remember them for future use.



Final Submission Guidelines

  • This Solution will extend a Production quality asset, so we would expect you would respect the existing conventions and guidelines that the current asset has.
  • Include all Code elements for the application source, installer(if any) along with any dependent libraries, environment setup and Config instructions as part of your submission.
  • Demo should present the EXTENDED application functionality end to end and overview of the code blocks.
  • Demo the Submission with :
    • Featuring the login credential configurations
    • Code/build path selections from the app.
    • Organized Code walkthrough
    • Demonstrating the Test execution (positive and negative tests)
    • Demonstrating all functionality
      • Login to Salesforce using OAuth
      • managing multiple Config folders
      • Show Create/Validate build Operations 
      • Show Validate build operation
  • A Final Documentation that Covers Deploy/Install, Configure for the solution.

Your submission will be judged by a panel of community reviewers.

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30042955