Challenge
Reducing the amount of conflicts between landlords and tenants and exclusion of human participation in the process of renting accommodation.
We were applied by a client who wanted to build a service for daily accommodation rental - something like Airbnb. The service should function as an intermediary between tens of thousands of homeowners and a large number of potential tenants.
A common problem of such services is conflicts between tenants and landlords - after accepting early booking of accomodation, the owner may receive a better rental offer, this may cause a desire to cancel the accepted reservation. For instance, the owner may refer to a delay of a bank transaction, and tell that he confirmed another rental offer before receiving the payment for early booking.
Obviously, the owner of the service can track all this information in the system and require the landlord to pay a penalty to the client. However, this process requires the service company employees participation, which takes time and financial expenses. And moreover, the client of the service will have to urgently seek for another accommodation, in addition to the fact that the payment refund will not be made immediately.
Considering that the bank cancels transactions only after receiving all the necessary confirmations, the refund process can take up to several days or even weeks.
Business
solution
Implementation of internal system currency and Smart Contract function on the basis of AWS Hyperledger Fabric blockchain.
In order to exclude the human factor from the system, we proposed to implement a blockchain-based solution that supports a function of Smart Contract. This is Hyperledger Fabric blockchain, which is provided along with other AWS services.
The fundamental point here is that payment is credited to the owner's account or returned to the client only after all the business rules are verified in the course of Smart Contract execution. Up to this point, all calculations are made in the internal currency of the system. And even the system owner receives his commission from users only as a reward for the Smart Contract execution, when a transaction in the blockchain is confirmed.
So, each rental of accommodation corresponds to a new block added to the blockchain, but it is added only under condition of the Smart Contract execution. More details:
- The landlord rents the apartment and specifies the parameters of the lease agreement, such as: the cost per day, the deposit amount for booking confirmation. Each lease transaction corresponds to a certain Smart Contract, which will be launched for execution after the conclusion of the deal.
- To make a reservation the tenant chooses suitable accommodation and makes sure that it is available for the necessary dates. The advance payment sent by the tenant to the owner is converted into an internal currency deposit in a system. If the landlord confirms the booking, then the Smart Contract is launched.
- The landlord receives the deposit in the internal currency of the system only in case the client checked-in the accommodation at the time indicated in the contract, or if the client canceled the reservation. The tenant can confirm the fact of checking-in via mobile application or through the website.
- After check-in, the Tenant transfers the remaining payment amount to the owner of the service. This second payment will be received by the Landlord at the end of the rental period after the system has confirmed the fulfillment of all the terms mentioned in the contract, such as: the availability of the Internet, parking, etc.
All additional terms are included in the contract at the moment of the deal conclusion after confirmation by both parties. The contract also may include penalties, both for the landlord and the tenant. In case when some of the declared services were not provided by the owner, it is recorded by the client as soon as this fact was discovered. A mobile or web application is used for this purpose.
- On tenant checking-out, the money is transferred out of the service, after all the additional terms are confirmed by both parties. If parties don't reach agreement in estimation of the situation then the service owner resolves the conflict manually. Only after the confirmation that all the contract terms are accomplished and if the parties have no claims against each other, the option to withdraw money from the system and transfer it into real currency, becomes available for the Landlord.
This approach reduces the presence of human factor in the process of renting accommodation and in resolving conflict situations.
Technical
solution
Providing necessary functions for landlord and tenant, administrative interface implementation. Hyperledger Fabric, the database, and real estate logic for back-end.
Our application consists of the following components:
- Mobile and web application for the owner where the accommodation could be set for rent. The interface enables uploading of rental object photos, specifying the provided services, keeping a calendar of accommodation availability, and setting the terms of the Smart Contract for rent. In addition, both - web and mobile applications allow owner to confirm the booking for a particular offer, or to cancel already confirmed reservations with the penalties application.
- Mobile and web application for the Tenant, that enables finding suitable accommodation, making reservations and concluding a rental agreement.
- A web application that implements an administrative interface for the app management.
- The back-end contains the Hypeledger Fabric, the database, and all the real estate logic.
For the development of a cross-platform application we have chosen React Native technology. The React framework was used to develop the front-end part of the web application. For the back-end we used Node JS.
Solution
architecture
Technologies
-
React Native
-
Node.js
-
React
-
AWS Lambda
-
Amazon RDS
-
Hyperledger Fabric
-
Amazon Cognito