Challenge Overview
Challenge Introduction
Welcome to the Salesforce SOQL Query Generator Application development challenge.
At this point we have completed the Wireframe challenge and are ready with the UI mockups. For reference you can find the last challenge here: https://www.topcoder.com/challenge-details/30049876/?type=design&noncache=true
Please read the challenge specification carefully and watch the forums for any questions or feedback concerning this challenge. It is important that you monitor any updates provided by the client in the forums. Please post any questions you might have for the client in the forums.
SOQL Description
SOQL Queries are used to query data from Salesforce.
SELECT fieldList FROM object [WHERE conditionExpression] [ORDER BY fieldName ASC | DESC ? NULLS FIRST | LAST ? ] LIMIT number_of_rows
The query can be broken into following logical units:
-
Select Clause
-
From Clause
-
Where Clause
-
Order by Clause
-
Limit Clause
We want to build out the wireframes of the UI that enables a user to create a query by simply selecting the appropriate Table, Fields and Comparison operators.
Challenge Description:
This challenge will be an enhancement to existing Salesforce Googlesheet connector. We want to complete following requirements as part of this challenge
-
Install and configure existing Salesforce Googlesheet connector. Deployment guide will be provided in the forums.
-
As per current implementation, user can create/edit a query from following places marked in below image
-
���By clicking on the + sign (Marked as 1), GSC opens a modal window to create a query and allows user to select a query from a predefined set.
-
Replace “Select query text and dropdown box” with “Create a Query” button and redirect user to new SOQL generator to setup a new query or load from previously created queries. A read only query will be displayed on the screen once, query is generated.
-
If user wants to edit an individual query, he click on the edit icon (Marked as 2). This will open modal with query details. Display Edit query button, which will open the SOQL Query generator to edit the query if user wants. The query drop-down will be replaced with read-only text.
-
- Fetch all objects from logged-in user’s salesforce org, which are accessible to user. Display them on the “Available Tables” section.
-
Query Objects which satisfy any of the following properties as true, for the current user
-
Createable
-
Updateable
-
Queryable
-
-
���������Query all object fields
-
Query fields details i.e. if field is lookup, get its child-relationship name etc.
-
Refer below link for object properties
-
Allow users to drag and drop objects to “Selected Table” field.
-
User should be able to select fields from the selected object
-
Allow to select all fields
-
Allow to select individual fields
-
Search fields
-
-
UI will start building queries as soon as the user starts selecting fields from an object and will display at the top section.
-
Allow user to make manual changes to query.
-
-
Allow users to perform following operations
-
Save query in the query sheet
-
Execute query to fetch results
-
Load already saved queries
-
-
Update unit tests included in GSC project based on the new code written or changes made. Unit tests should cover most if not more than 60% of the core functionality added. Mocking of server requests and responses is permitted
Challenge attachments
- Salesforce Google sheet connector
-
Code Base
-
Deployment guide
-
- UI Wireframes
Sample Queries
Please use below queries to verify your solution
-
SELECT Id, Name, BillingCity FROM Account
-
SELECT Id FROM Contact
-
SELECT Name, (SELECT LastName FROM Contacts) FROM Account
-
SELECT Name, (SELECT lastname FROM Contacts), (SELECT CreatedBy FROM Notes) FROM Account
-
SELECT Amount, Id, Name, (SELECT Quantity, ListPrice, UnitPrice, PricebookEntry FROM OpportunityLineItems) FROM Opportunity
References
Strictly follow Salesforce Lightning Design System to develop the UI and components.
Final Submission Guidelines
Submission Guidelines
-
Solution should follow all above mentioned guidelines about the challenge requirements.
-
Regularly monitor forums about decisions and new requirements.
-
Submit a deployment guide to mention all steps and design decisions.
-
Mention about changes made to GSC code.
-
-
Submit updated code base
-
Provide following demos
-
Code walk through
- Functionality demo
-