Challenge Overview

Challenge Summary

Welcome, everyone! The goal of this challenge is to create the Rest API design for the app from a given UI design and provided a database model.

Project Overview

This web-based application will allow an effective process for employees to view, manage, and maintain Locations data.

 

The Hestia 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. Hestia 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).

 

Technology Stack

.NET Core 3, Azure Cosmos DB, Rest API

 

Assets

The following items are shared on the forum

  • Marvel App

  • Cosmos DB design

 

Individual Requirements

You will be defining the endpoints required for frontend with provided Database design. We need to cover authorization and rest endpoints.

 

Authentication: This will be done 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.

Endpoints:

  • Define swagger endpoint with request and response for each screen UI requirement.

  • The database schema is already defined for few container in which client's existing data will be feed in, you will use that database design to implement the endpoints by adding new container required for this app.

  • The implement guide should be very detailed including how to construct the query to Cosmos db, the implementation guide should be enough for the developer to develop the API.



Final Submission Guidelines

Submit the zip containing

  • Swagger file
  • Updated Cosmos DB design for other container and partitions
  • Detailed implementation guide, each endpoint must explained in detail so future developer can understand it properly

ELIGIBLE EVENTS:

2021 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30137478