# Easing DApp Interaction for Non-Blockchain Users from a Conceptual Modelling Approach
## 6 Running Example: Employee Schedule Tracker DApp over Quorum Blockchain  
Once the proposed middleware has been explained, this section will put it into practice. To do so, we developed a DApp aiming at tracking employees schedule over an Ethereum-based blockchain, namely Quorum. More specifically, we deployed our smart contracts over the Quorum network of Alastria [34], a Spanish national blockchain consortium consisting of the main companies in Spain (banks, telecommunication, public entities, transportation, IT, and so on). This semipublic permissioned blockchain will enable us to run our DApp in a secure environment as well as maintaining the application expenses constant since no gas is required to run transactions on the blockchain. Regarding the developed DApp, it is named Clockchain [35] after its functionality and underlying technology. This DApp arises due to a new Spanish law, the Royal Decree-Law August 2019, of 8 th March, on urgent social protection measures and the fight against job insecurity in the workday. This law states that the workers' daily entries and exits must be safely stored for a minimum of four years in a secure and non-modifiable storage medium. Indeed, the security, durability, and non-modifiability requirements for the data to be stored make this a perfect scenario to apply blockchain. Nevertheless, the main issue in this scenario is that users are not used at all to interacting with a DApp. Therefore, we applied the proposed middleware to this scenario to make Clockchain easy to be used by anyone. Figure 4 shows the main interface of Clockchain after logging in. It is worth noting that, to perform such log in, neither users need a wallet, nor they must know they are working with a blockchain-based system. On the contrary, they only use a combination of email and password to log in. Once users are logged in, they will see all their current entries and exits during the current day, as well as the elapsed working time (Figure 4). Such information is retrieved from the blockchain in a transparent manner, thus corresponding to a query action (see Section 4) of the middleware. Indeed, what these actions will perform in the middleware is a call to a view function inside the smart contract. Besides, Figure 4 shows the two interaction actions the user can perform at that moment. More specifically, we can see the interface of a worker who has already clocked in around four hours ago from home. Therefore, the interactions with the blockchain that could be performed at that moment are to clock out at that very moment, or to choose a different clock-out time (in case the worker forgot to clock out at a time in the past). By way of example, Figure 5 shows the corresponding smart contract methods such interactions will correspond to. For this example, the button _Clock out now_ will correspond to the public function _exit ()_. In addition, the button _Choose to clock out time_ will correspond in turn to the function _exit (uint256 time)_ since the user could choose the clocking out time. As it can be seen in Figure 5, both public functions will call the private _exit (uint256 time)_ function. This function, after checking the requirements for the blockchain transaction to be performed, will store the clocking out time of the worker represented by his/her blockchain public address (_msg.sender_). Moreover, our smart contract will also reward the worker's time with tokens, that will be transferred to his/her address by means of the _transferTokens (uint256 workTime)_ function. Indeed, each worker will receive one ERC20 token for each worked hour. Hence, the user will be able to query and transfer the received tokens by using the DApp's web interface, not requiring any external wallet such as Metamask. Finally, in order to provide our DApp with the required scalability to deal with an unpredictable number of users, it was decided to deploy it in the Google Cloud Platform (GCP) as shown in Figure 6. In that sense, we will create the blockchain node by using a GCP Compute Engine instance.