Key Information

Register
Submit
The challenge is finished.

Challenge Overview

In this challenge you are provided with angularjs/nodejs application and you will make the integration fixes as outlined below.

In this challenge you will implement the following actions :

- Creating template folder

- Renaming and deleting folder

- Grouping templates in folder

- Reordering templates and folders

- Deleting template

We are looking for a submission in the next 12 hours. Thus, we request you to ask questions early and submit your solution that meets all the requirements as soon as possible. A valid submission in the next 12 hours (beginning from registration start and ending in the next 12 hours or when the challenge closes - whichever is earlier) will get a $200 bonus (up to 3 submissions).

Requirements

Below we will explain to you how to do each one of the actions listed above and what backend integration to do :

Please make sure to create a flexible backend model structure for future extensibility.

Creating template folder

- Open the app.

- Scroll the left menu and click on “Refine Context”.

- On “Refine traces” menu right clien on the filter icon > select “Create folder” option.

- Add ‘folder’ name then click checkmark.

We don’t have a backend api for creating or maintaining template folders, you are required to implement the backend to support this. Please follow same coding styling as currently done for templates and action trails.

We are open to your suggestion for how to store template folder in backend.

Renaming and deleting folder

- Open the app.

- Scroll the left menu and click on “Refine Context”.

- On the "Refine Traces" menu right click on any folder, you will get two options :

- Delete : should delete the folder and the nested templates.

- Rename : this will rename the folder

Implement two endpoints to rename and deleting the folder :

- For renaming use PUT api endpoint same as done currently in templates and action-trials endpoints.

- For delete you will implement DELETE api to remove the folder and nested templates.

Grouping templates inside folder

- Open the app.

- Scroll the left menu and click on “Refine Context”.

- hover over Amount template and drag it inside one of existing folders

Implement endpoint to store association (parent ⇐> child) between folder and templates.

Reordering templates and folders

- Open the app.

- Scroll the left menu and click on “Refine Context”.

- hover over any item, and drag&drop it in any position in the menu. User can reorder templates, folders, and templates nested in folders.

Implement endpoint to handle storing the changes in the order of folders and templates.

Deleting template

- Open the app.

- Scroll the left menu and click on “Refine Context”.

- From Refining Traces menu right click on Amount > you will get ‘Delete’ option.

- Clicking ‘Delete’ should remove the item from menu and call DELETE /templates/:id to remove the item.

Current Application AngularJS Structure

The frontend partial views and controllers are placed into separated files under public folder :

- public/js

- controller  (all the controllers files will be here)

- libs  (all the angular related libraries will install here)

- views (all the partial views will be here)

Please do changes to the controller in scope of the challenge, don’t restructure the application or change the prototype flow/navigation or update out-of-scope areas, we have in-parallel challenges that are updating other areas and we want to make it easier to merge.

AngularJS Bower Fix

Currently there is a bug when you try to run “bower install” about conflicts in angularjs version, please provide a fix for it.

Deliverable

- Git patch file of changes.

- Updated deployment README if needed.

- Verification steps.



Final Submission Guidelines

.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30052308