Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Detailed Requirements 
Describe what you want to accomplish. 
 

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 Action Trail Folder

- Renaming Action Trail Folder

- Deleting Action Trail Folder

- Reordering Action Trail Items and Folders

- Moving Action Trailer items to/from folders

- Delete Action Trail

So basically your main work will be on the Action Trail flyout popup. Note that existing functionality in the menu should not be affected by this challenge.

 

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 6 hours or when the challenge closes - whichever is earlier) will get a $400 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 :

Creating Action Trail Folder

- Open the app.

- Scroll down to Action Trail menu

- Click on the notification icon with number (5), it will open a popup

- In popup click on the gear > you will get ‘Create Folder’

- When click on it you will get input field to create a Folder.

Update backend to have the Folder concept for Action Trails. We don’t have endpoint for this.

Renaming Action Trail Folder

After creating a folder as in previous steps, right click on folder and click “Rename”.

Change name and click checkmark.

This should call backend to update the folder name. You need to introduce PUT api endpoint to update folder name.

Delete Action Trail Folder

After creating a folder as described in “Creating Action Trail Folder” section, right click on the folder and select Delete.

This action should delete the folder from backend along with the nested action trails. We don’t have endpoint in backend for this, add one.

Delete Action Trail

Create an Action Trail by right click on Local Action Trail (red title) in Action Trail sidebar menu and click save. This will save the action trail in backend and load it in Action Trail flyout.

From the Action Trail flyout popup, right click on that action trail, you will get ‘Delete’ option, clicking on it will delete the item.

Call DELETE /action-trails/:id to delete the item from backend.

Grouping Action Trailers in folder

- Create folders and action trail items as described above.

- You can drag the action trail item and move it. You can do the next actions :

- Drag action trails and drop them inside folders.

- Drag action trail again out of the folder

- Drag the action trial inside another folder

- Drag action trail from one folder to another.

The position and action trail in what level (root level or inside folder) should be persisted in backend, user should see the persisted ordering when opening the page.

Proposed solution :

- add actionTrailsFolder model with name and order fields

- store folder as reference in actionTrails model.

- If folder not set it means the action trails is in the root level in the popup

Reordering Action Trail Items and Folders

- From Action Trail flyout popup, create folders and action trails as described above.

- Drag folder and change its position in the flyout, do the same for action trails.

- This reordering should be persisted in backend.

Implement a backend that store the position of folders/items in the menu.

Proposed solution :

- Add order field to actionTrailsFolder and actionTrails models

- When pulling the actionTrails group them by folders, for each folder group sort items by ‘order’ field.

- actionTrails without folder attribute set will be in the root level and will be sorted along with folders using ‘order’ field.

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.



Final Submission Guidelines

- Git patch file of changes.

- Updated deployment README if needed.

- Verification steps.

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30052321