Challenge Overview
This is another challenge in the series for Cloud Hub, where we want to add some data sorting to our API project. Cloud Hub is a billing solution that allows you to see applications, users and charges for your company. These APIs are a series of endpoints built using swagger, nodeJS and postgres. Right now the data is sorted by the _id object. We want to allow the user to send values for sorting to the API endpoints that return multiple records. We have several endpoints that allow you to see the number of users, apps and charges for your company.
Endpoints (example fields)
1. /apps (appName)
2. /companies/{companyId}/charges (timestamp)
3. /companies/{companyId}/apps (appName)
4. /companies/{companyId}/users (lastName, firstName)
5. /companies/{companyId}/users/{userId}/apps (appName)
Requirements
1. Add in sorting functionality via the querystring to handle ascending/descending sorts for each column.
2. API should be able to handling sorting for multiple fields .. e.g. "+columnOneName, -columnTwoName”.
3. Modify tests to show sort functionality.
4. Preferred sorting method is Aa .... Zz.
2. Provide your code and documentation in a single zip file. Please include a git patch for easier integration of changes.
3. The bulk of your documentation should be in the Readme.md and you should assume that this will be open source so make sure you cover all the steps to set up, If you have specific information that should not be included in a public readme (like links to your video) put them in a file called submission.txt and they will be omitted from the project if it is open sourced.
4. Provide a quick video of your solution in action (feel free to annotate your video if you are not comfortable with spoken English or don’t like the sound of your own voice). Video may be private on youtube or added to the submission files. Your video can skip the setup of your environment and application.
Endpoints (example fields)
1. /apps (appName)
2. /companies/{companyId}/charges (timestamp)
3. /companies/{companyId}/apps (appName)
4. /companies/{companyId}/users (lastName, firstName)
5. /companies/{companyId}/users/{userId}/apps (appName)
Requirements
1. Add in sorting functionality via the querystring to handle ascending/descending sorts for each column.
2. API should be able to handling sorting for multiple fields .. e.g. "+columnOneName, -columnTwoName”.
3. Modify tests to show sort functionality.
4. Preferred sorting method is Aa .... Zz.
Final Submission Guidelines
1. Any additions or modifications to the code project pass on "npm run lint" and "npm run test".2. Provide your code and documentation in a single zip file. Please include a git patch for easier integration of changes.
3. The bulk of your documentation should be in the Readme.md and you should assume that this will be open source so make sure you cover all the steps to set up, If you have specific information that should not be included in a public readme (like links to your video) put them in a file called submission.txt and they will be omitted from the project if it is open sourced.
4. Provide a quick video of your solution in action (feel free to annotate your video if you are not comfortable with spoken English or don’t like the sound of your own voice). Video may be private on youtube or added to the submission files. Your video can skip the setup of your environment and application.