Challenge Overview

Challenge Summary

Welcome, everyone! The goal of this challenge is to create the frontend app from a given design using Angular.

Project Overview

In this challenge, we are looking to design a user-friendly interface design for Ferguson’s Locations MDM Application. This web-based application will allow an effective process for employees to view, manage, and maintain Locations data.

The Ferguson team is currently using a cumbersome spreadsheet and interface to view information about their numerous locations. A large amount of complex data is not easily organized into views that are helpful or efficient for users to extract the information they need. Ferguson is looking for a more robust and user-friendly method to see and manage this wealth of data.

Below are general concepts:

the campus is the parent unit of a location. There may be multiple Locations within that Campus, and multiple Child Locations within that Location. The data can be drilled into 3 distinct hierarchies, with attributes to organize the data in a cascading way. These 3 hierarchies and grouping attributes are:

  • Base Structure – Campus > LOB > Child Location (e.g. Showroom, Counter, Warehouse, etc.): Result: List of Locations
  • Physical Hierarchy: Region > State > City > Child Location Type > Result: List of Locations
  • Management Hierarchy: LOB > Region > District > Area > LOB Cost Center > Inventory Org Result: List of Locations

Each location will be associated with all of the available attributes and values (from all 3 hierarchy paths). These details will be available for display (or edit) when the user selects a specific Location to view (Locations Detail screen).

In these series of challenges to build the frontend, we are starting from the home, location detail, and “change history” pages.

After this challenge, we will build other remaining screens in the follow-up challenges.

Technology Stack

Angular 10, TypeScript, SCSS, HTML 5

Browser Requirements

Windows: IE 11+, Edge, Chrome latest
Mac: Safari Latest, Edge, Chrome Latest
iOS Mobile & Tablet: Chrome & safari
Android Mobile & Tablet: Chrome

Assets

The following items are shared on the forum

  • Design source file developed on Adobe  Xd
  • Marvel App

Individual Requirements

Authentication: This will be done in the future challenges with Single Sign-On using Azure Active Directory.

Roles: The application will be role-based access control(RBAC). There will be the following roles. 

  • Normal User: Can view only
  • Editor: can view and edit locations data
  • Admin: can view, edit, and create new location details as well.

Implement the screens related to 

  • Mock Login screen
    • Create a mock screen which will set the current user with the appropriate role
    • This will be later replaced with Azure Active Directory(SSO). So keep it simple and separate
  • Home Screen

https://marvelapp.com/prototype/21b24c16/screen/66825411

Counts: shows summary of locations
Locations Recently Updated: maximum 5, listed by update time, descending

  • View Locations By: This will allow finding locations by cascading in 3 ways, all options will come from API.
    • Base Structure – Campus > LOB > Child Location (e.g. Showroom, Counter, Warehouse, etc.) then produces the result: List of Locations
    • Physical Hierarchy: Region > State > City > Child Location Type then produces the result: List of Locations
    • Management Hierarchy: LOB > Region > District > Area > LOB Cost Center > Inventory Org then produces the result: List of Locations
������NOTE:  The cascading list will come from API, Current UI has different tree structure shown which we should replace. These trees depend on the hierarchy type. The details will be shared on the forum.
  • ���"Find a Location By": This will find the locations by search and filter
  • Location Detail: screen related to location details including drill down.

  • Change History

  • Common Items for all role

  • Please create all menus for based on the current user’s role
    • Home (all users)
    • Location Detail (all users but a feature like editing and creating new is role-based, the editor can edit, while admin can edit as well create new)
    • Change History (all users)
    • Manage Addresses (Admin only): empty page for now
    • Manage Calendars (Admin only): empty page for now
    • Manage Employee Roles (Admin only): empty page for now
 

The details of the screen with the business flow is shared on the forum. If there is any confusion let's clarify on the forum.

General Requirements

  • This application should be a fully responsive app
  • Do not use browser alerts
  • Add proper code comments
  • Implement validation errors.
  • Follow angular best practices
  • No linting errors.
  • No errors with prod build
  • Divide the components into meaningful components that can be reusable
  • All data should come from a mock API.


Final Submission Guidelines

Submit the zip containing

  • Angular source code with a detailed readme and verification guide
  • Verification guide should show flow for a different role

ELIGIBLE EVENTS:

2021 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30137011