John Hancock MAM React App Enhancements Challenge Part 1

Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Project Background

MAM stands for "Manulife Asset Management".  The senior management of MAM has responsibility for global implementation records of strategic initiatives.  These initiatives start out as ideas or problems from across MAM, up to 20 per month. This new application will help with intake, triage, and tracking resolution and status of incoming requests in a consistent manner, and will increase the efficiency in which requests are processed.

Over the last year, we’ve leveraged the Topcoder community to build out the frontend app in React and backend app in Node.js for this application. Please refer to the README in the repo for frontend and backend for how to set these up. You’re expected to use the master branch

We’d like now want to enhance it with the following requests from the client.

Technology Stack

Node.js

React

SQL Server

Individual requirements

In this challenge, you are required to implement the following requirements. Some of them can purely be handled in frontend while others will require changes to the backend as well.

  1. Default Views


    A) Currently the Triage view has multiple filters. Modify the behavior so the filter section is NOT shown by default. Once the user is on Triage view and they click Filter, the only allowed filter should be “Intake”, grey out all other filters for selection

B) Clicking on ‘Apply Filter’ should collapse the right sidebar for all the views.

C) Similarly, For ‘Track’ view, do NOT show any filters in the default view. Once the user clicks Filter, grey out the following filters - Intake & Draft. All other filters must be enabled.

D) Archived Project will not display in Track Projects View. Archived Project will not display in the View Projects or Triage Views.

2) Role Based access + Functional Area CRUD

We want to limit access for Managers (non- Sr. Managers) – see table below with defined views/access.

You can view the current role-based access using these URLs

<baseURL>/testlogin?role=senior-manager

<baseURL>/testlogin?role=manager

Note: Last part of url : role= must be masked/encrypted so that user cannot change the url to gain access.

3) Implement Category Value Management

This functionality should be available only to Sr. Manager.

These users should have the ability to change(add, edit, remove values of the existing drop downs) for the following:

-  Key Project Category

-  Strategic Alignment

-  Project Group

- Functional Area

If a user makes a change to a category, it should change all projects with status other than Archive to be changed to the new category. This will affect Dashboard view, ‘Create Project’ form and all views (except Archive).

4) Access Management for Viewing Records

Senior managers should be able to control who can view records contained within the application so that only those with a need to know have access to the information presented.

1.     Create a user table within the app so that once a person is authenticated, there is additional information that can be used to restrict views and actions.

A.     Initially load Sr. Managers and Managers into a table containing the following fields (See ‘Admin Page’ in the provided excel in forums)

-        Display Name

-        Email

-        Role

-        Functional Areas Able to View   - Selection from list of 13 functional areas and “ALL” category

For new users logging in after initial list has been loaded to the table:

·       When a user logs in for the first time, (gains access through ACL) they will be added to the table if they are not already present. By default, a user with Role=Manager would see no functional areas in View Projects, Role=Sr. Manager would see all functional areas.

 

2.     Sr. Manager will control access to the Functional Area views via the application (See ‘User Functional Area’ in the provided excel in forums)

A.     Add a “Settings” to left navigation panel (like “Triage” which is only visible to role = Sr. Manager) to allow for managing the following fields:

                                     i.     Manage User Functional Area

                                   ii.     Manage Dropdown lists:

1.     Key Project Categories

2.     Strategic Alignment

3.     Project Group

4.     Functional Area

B.     Filter displayed for an individual user would be based on access to functional areas allowed:  Other functional areas will be grayed out

- Please make sure that the overall styling for A) and B) is consistent with the rest of the application.

- If you have any doubts, please ask in the forums

5)  Archive -  (Ability to hide a project in current state)

From Triage or Track - Sr. Manager can choose to Archive a project. It will retain its current status (at time of Archive) and details as is. In addition...

    Archived Project will not display in Track Projects view
    Archived Project will not display in the View Projects or Triage views

  • Editing of Archived projects will not be allowed. (Read-only view)

  • Mimic Track view and disable action buttons and edit  buttons.

6) Bug fix

  • Allow user to attach more than one file at a time.



Final Submission Guidelines

  • Submit your zipped source code

  • Both frontend and backend code should be free of any lint errors

  • Provide documentation for configuration and verification

  • Provide a demo video (MUST for client feedback)

  • Winner will be required to submit a MR to the repo

ELIGIBLE EVENTS:

Topcoder Open 2019

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30074844