HPKP Admin Document Backend Architecture Challenge - repost

Register
Submit a solution
The challenge is finished.

Challenge Overview

### Challenge Overview Welcome to "HPKP Admin Document Backend Architecture Challenge"! #### Project Background HPKP require an administrative documentation platform where all parties involved can maintain major agreements and specific documentation. Standard document templates will be maintained to the platform library. Customers will be assigned to one or many templates as a starting base. The templates drive customer input and will be saved as customer specific documents. After completion of customer input, the platform will produce a copy of the customized Document with optional outputs (PDF, XML, JSON, DOCX). If multiple versions are available, the platform tracks the changes and can append the differences between current and previous versions. #### Challenge Objectives The goal of this challenge is to build the backend architecture for the project. Please read the challenge specifications carefully and let us know if you have any questions in the forums. ### Technology Stack - Server: IIS - Frontend: React.JS, Bootstrap 4.6+ - Backend: [DotNetNuke 9.9+](http://www.dnnsoftware.com/docs/developers/index.html), C#, - DB Server: SQL Server ### Individual requirements Generally, you need to design a DNN service API and a bridge API modules. The DNN service API is a module called by frontend module which is a SPA module developed by ReactJS. This DNN service API module does not ineract with DB. The DB interaction will be handled by the bridge API. See the image below for a clear picture of the flow. ![flow of technologies](https://monosnap.com/file/w95FxfwJaaSpxuqOC7Y5Lboece8k9D) 1. Design the backend architecture covering the Business Requirements and the UI prototype data process using swagger 3.0, database design. 2. For authentication/authorization, need to use information of CustomDNNUserInfo class which is incorporated with DotNetNuke in the BaseDnnApiController.cs. - There are 4 roles: Viewer, Contributor, Approver, and Administrator. - Document access needs to be restricted by Category, Group(s), or LOB(s). For example, viewer A from group GA can not see document from group GB. Even when two users in the same group, they may have different category access permissions. 3. Prepare Implementation note for each API, it must be well detailed that developer can easily develop the backend. 4. Prepare a UI mapping document that will show which API endpoint to call from the frontend. 5. The client has a pre-defined flow of technologies which MUST be followed. You need to design the two api modules which are 2nd and 3rd flows. You can check this in the Phase II Discussion Follow Up Response document provided in the forum. 6. In order to understanding the flow of api calls, please check the images above and the sample controller BenefitBalancesController.cs 7. Be comprehensive in the level of details you provide, justify any architectural decisions you make and back any recommendations you make based on reasoning. 8. Major architectural considerations include: - Design pattern to be used (We provide a templates provided by client) - What to use for persistence - What to use for unit tests ### General Requirements - Create ERD Diagram of the database models/tables - Design a robust and performance oriented API(s) for the given set(s) of functionalities. - Build Swagger spec in OpenAPI 3.0 format based on the details provided below. - Make sure to include appropriate models as part of your Swagger. Also, make sure that your Swagger handles error cases for each endpoint as applicable. - For responses, you should cover all the cases, not just 200 status code - Create sample body requests for each API paths - Create documents to support your API spec & mapping to functionalities. - Handle Logging properly. - Follow best practice for architecture in .Net and DNN. ### Glossary and Background Please refer to Glossary/Background sections of the [design challenge](https://www.topcoder.com/challenges/90e87d79-7c5b-40dd-b4d6-b47ae6b3f329?tab=details). ### Assets - BRD related Documentation provided in forum - Design Marvel app link provided in forum - Client code template provided in forum ### Submission deliverable Submit a zip folder containing these: - Architecture for modules - Swagger definition - Database design - Implementation guide - UI mapping document with API and frontend - Any other documents / diagrams (you can create them using TCUML) to help better illustrate the architecture

Review style

Final Review

Community Review Board

Approval

User Sign-Off

Challenge links

ID: 30197306