Challenge Overview
Project Overview
We currently have an Asset Library, which is a repository of reusable code components that we leverage for the delivery of cloud-based solutions for our consulting customers. It's a JQuery app that runs on AWS and accesses a database that's on Salesforce. Our users are exclusively in Salesforce, so the UI is iframed into a Visualforce page (and the users can access the data in Salesforce using the native Salesforce UI as well). The application is an "Asset Search", that's basically a custom search against the Asset object in Salesforce (see screenshot in forum).
We'd like to re-design the application so it has refreshed UI and more powerful search features.
Competition Task Overview
We have previously launched two PoCs to implement the new search / index solution, you can find details here: http://community.topcoder.com/tc?module=ProjectDetail&pj=30039098
For this challenge, we want to implement the CMC Business Layer and the REST services shown in "Asset Library Search Architecture.pdf".
- The business layer will use Amazon Cloud Search to implement searching / indexing functions we did in the PoC and support all searchable / indexable fields, but the business layer should be implemented as generic as possible and can NOT reference cloudsearch or aws objects directly. The business layer will need to at least support all of the calls and parameters that the PoC is using, which includes the following:
- Indexing calls (add, remove, update) from the Salesforce triggers for both Asset and Asset Collection
- Client search calls for Asset and Asset Collection
- Client search call params - sort, filter
- The REST Services will interact with the business layer and act as a proxy between the client and the business layer.
We've provided code stubs for the business layer and endpoints for the REST services, you should follow these to code your solution.
Testing
Functional tests should be provided for the REST services to demonstrate that the services work properly.
Unit tests should be provided for the business layer.
Technology Overview
The working environment requirement details for this application are outlined in the Application Requirements Specification. An overview of the environment requirements are listed below:
- Java 6
- Tomcat 7
- Spring 3.1 (for REST)
Documentation Provided
Register to see documents attached in contest forum.
Final Submission Guidelines
Submission Deliverables
A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials
Below is an overview of the deliverables:
- A solution that implements the business layer and the REST services.
- A document that clearly documents all the endpoints of the REST services, with sample request/responses
- A complete and detailed deployment documented explaining how to deploy the services including configuration information.
- Tests to verify your services work properly.
- Build script (either ant or maven) to deploy the services to tomcat.
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.