Challenge Overview
Welcome to the Intro to Blockchain Series, sponsored by IBM. We are going to explore Hyperledger Fabric, Hyperledger Composer, and Blockchain use cases for business. Hyperledger is an open source collaborative effort created to advance cross-industry blockchain technologies. It is based on Hyperledger Fabric - a platform for distributed ledger solutions; and Hyperledger Composer - an extensive, open development toolset and framework to make developing blockchain applications easier.
IBM hopes to build a Blockchain Community within Topcoder to do real customer work in the near future. In this Intro series, we will lay the groundwork for a demo App, which solves a real-world problem with use of the blockchain technology, and tools provided by Hyperledger Composer. With the total prize pool over $8000 in this series, we believe this is a great opportunity for the community to dive into the new cutting-edge technology.
From the previous challenge we got multiple high-quality blockchain models addressing business needs imposed by different US Federal Regulations. The winner was chosen, and in this challenge we will build a basic UI Prototype around his solution, provided in the challenge forum, which helps to track medical devices along with the regulation 21 CFR Part 821.
IBM hopes to build a Blockchain Community within Topcoder to do real customer work in the near future. In this Intro series, we will lay the groundwork for a demo App, which solves a real-world problem with use of the blockchain technology, and tools provided by Hyperledger Composer. With the total prize pool over $8000 in this series, we believe this is a great opportunity for the community to dive into the new cutting-edge technology.
From the previous challenge we got multiple high-quality blockchain models addressing business needs imposed by different US Federal Regulations. The winner was chosen, and in this challenge we will build a basic UI Prototype around his solution, provided in the challenge forum, which helps to track medical devices along with the regulation 21 CFR Part 821.
Requirements
- Tech stack: You are free to choose between AngularJS 4 and ReactJS. Follow the standard best practices (clean code, appropriate comments, linter, etc.). Note that Hyperledger Composer is able to automatically generate a simple Angular 2 frontend to demonstrate blockchain model in action. You can use it as the starting point, but your final solution should satisfy requirements below.
- Design. We do not have design for this app. Feel free to implement a clean and simple, yet functional frontend.
- Functionality. Feel free to discuss it in the challenge forum, but as the initial idea, we are looking to get three pages:
- Login page
- User dashboard
- Medical device page
At the login page different users of the app will be able to login. No need to implement any tricky auth system for now, we just need to provide a way to login different kinds of users into the system, so that other pages of the app are customized according to their roles (FDA, Distributor, Final Distributor, Patient).
At the Dashboard the user will have access to all actions relevant to his role, and also will see the listing of medical devices related to him:
FDA user should be able:
- Create new Distributors and Final Distributor users;
- Issue device tracking orders;
- See the listing of all devices and their statuses (filtering and searching in the listing would be nice, but it is the minor priority for now).
Distributor user should be able:
- Manufacture (bulk create) medical devices;
- Ship devices to the Final Distributor;
- See the listing of devices he has manufactured and shipped;
Final Distributor should be able to:
- Create patient users;
- Accept device shipments from distributors;
- Implant devices to the patients
- See the listing of incoming, possessed and implanted devices.
Patient should be able just to check details about the device implanted to him.
Device page should be accessible via the links in the device listings and it should (1) show all data about the chosen device; (2) allow to make actions relevant to the user’s role.