Car Lease Demo
##Deploying the demo## To deploy to Bluemix simply use the button below then follow the instructions. This will generate the NodeJS server and the Blockchain service for you.
To deploy the demo locally follow the instructions [here](Documentation/Installation Guide.md#deploying-locally)
##Application overview## This application is designed to demonstrate how assets can be modeled on the Blockchain using a car leasing scenario. In the scenario vehicles are modeled using Blockchain technology with the following attributes:
Attribute | Type |
---|---|
V5cID | Unique string formed of two chars followed by a 7 digit int, used as the key to identify the vehicle |
VIN | 15 digit int |
Make | String |
Model | String |
Colour | String |
Reg | String |
Owner | Identity of participant |
Scrapped | Boolean |
Status | Int between 0 and 4 |
LeaseContractID | ChaincodeID, currently unused but will store the ID of the lease contract for the vehicle |
The application is designed to allow participants to interact with the vehicle assets creating, updating and transferring them as their permissions allow. The participants included in the application are as follows:
Participant | Permissions |
---|---|
Regulator | Create, Read (All vehicles), Transfer |
Manufacturer | Read (Own vehicles), Update (VIN, Make, Model, Colour, Reg), Transfer |
Dealership | Read (Own vehicles), Update (Colour, Reg), Transfer |
Lease Company | Read (Own vehicles), Update (Colour, Reg), Transfer |
Leasee | Read (Own vehicles), Update (Colour, Reg), Transfer |
Scrap Merchant | Read (Own vehicles), Scrap |
The demonstration allows a view of the ledger that stores all the interactions that the above participants have has with their assets. The ledger view shows the regulator every transaction that has occurred showing who tried to to what at what time and to which vehicle. The ledger view also allows the user to see transactions that they were involved with as well as showing the interactions with the assets they own before they owned them e.g. they can see when it was created.
Note: The demo currently does not include the ability to lease cars however shows the process of what would happen once the lease has ended and the final payment has been made showing the lease company transferring full ownership of the asset to the leasee.
##Application scenario## The scenario goes through the lifecycle of a car which has the following stages:
####Stages:####
- Vehicle is created as a template by the regulator.
- Vehicle template is transferred to the manufacturer.
- Manufacturer updates the vehicle template to define it as a vehicle giving it a make, model, reg etc.
- Manufacturer transfers the vehicle to dealership to be sold.
- Dealership transfers the vehicle to a lease company.
- Lease company transfers the vehicle to a leasee. The vehicle is not leased instead the application is showing what would happen if the lease were to have come to an end and the leasee activated the purchase option.
- Leasee transfers the vehicle to a scrap merchant so that it can be scrapped.
- Scrap merchant scraps the vehicle.
##Component model## The demo is built using a 3 tier architecture. The user interacts with the demo using a web front end that is provided by the NodeJS server in the middle tier. This web front end uses JavaScript to make HTTP requests to the NodeJS server which has an API ([defined here](Documentation/API Methods.md)) which in turn makes calls via HTTP to the HyperLedger fabric to get details about the blockchain and also interact with the chaincode. Information on the chaincode interface can be found [here](Documentation/Chaincode Interface.md)