Challenge Overview
Challenge Summary
Welcome, everyone! The goal of this challenge is to complete the Rest API from a given UI design and provided 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 -> Region -> Child Location
-
Physical Hierarchy: Region -> State -> City - > Child Location Type -> Child Location
-
Management Hierarchy: LOB -> Region -> District -> Area -> LOB CC -> Inventory Org
Technology Stack
- .NET Core 3.x,
- Azure Cosmos DB,
Assets
The following items are shared on the forum:
- Swagger file
- Database model
- Architecture documentation
- UI mapping
- UI design
- Current base code
Individual Requirements
- Create a REST API using .NET Core 3.x and following the provided documentation
- REST API should have Models, Controllers and Services
- Code must be written in C#
- The database used must be Cosmos DB
Authentication is IN scope.REMOVED- The following tags from swagger file are in scope:
- Campus - no attritube change endpoint is in scope
Child LocationsREMOVED
- For Hierarchy, check the most efficient way of doing it (use procedure or not)
- Fix any issues in the code that prevents the application from running
- Unit test is scope with >90% coverage
- Tests should be independent of database any third party calls
- Adhere to S.O.L.I.D Principles (https://en.wikipedia.org/wiki/SOLID)
- Create dockerfile for future deployment - docker must work properly
Final Submission Guidelines
- Updated source code