As of right now the AkaMy-Rent project is able to allow users to create rental agreements, use the messenger as a negotiation platform, along with tracking of agreements and their status. Users of the application are able to create a profile that has information such as their email, both the public and private keys for their Ethereum account, along with their first and last name. The messenger application allows for users to communicate with each other on the platform itself. The deployed application currently does not connect to the blockchain. Running a local version of the app allows the use of a private network or test network such as Ganache. This is where users can deploy and have the application call the smart contract at a specific interval.
The picture above is what we want users to achieve when using our application. But there are some issues. In part B, we have the homeowner fill out the tenant portion of the smart contract draft. This can be an issue if the tenant uses a different email for their account. There's also the issue if step F happens before step D, which the application doesn't allow the homeowner to edit the agreement after signing. There's also the issue where the client portion of the application is responsible for running the timer. Thus, right after either participant (tenant or homeowner) signs the contract the smart contract is deployed. The issue is when you leave the contract signing page, the timer no longer works. It wasn't until later on we learned how to utilize the Meteor.call()
function. This could have been an avenue to run the timer. Another timing mechanism was the cron jobs with Digital Ocean and NPM which would use Digital Ocean's integration with cron, but implementation of that was beyond the designated timeline.
The landscape of Web3 development moves rapidly, even in the past year I've learned about new frameworks that are new and improved. At first, I wanted to use the Web3.js framework to run and test smart contracts, but now Ethers.js is recommended due to its simplicity and ease of use. A year ago I've never heard of Ethers js, but it seems to have gained traction since then. From an academic standpoint it would seem like out project is useful for business purposes. The AkaMy-Rent application doesn't really push the limits of web3 development, but it does push the limits of what smart contracts and blockchain technology can be used for. The Journal of Global Operations and Strategic Sourcing might be an option. The article that's linked looks at using smart contracts to create terms between foreign entities in order to secure payments for imports and exports. There is also the ACM Computer Surveys. This article looks at the possibility of using smart contracts as legally binding agreements (which could relate to a rental agreement). In our initial brainstorm presentation, I mentioned that this project would look at assumptions that are needed in order to get this project to work. It looks like these articles are also investigating these assumptions as well. While there are lots of conferences that look at smart contracts in particular, I'm not sure where I would take mine. I don't know enough about conferences to make that decision. But I assume a completed application would still be an interesting real-world concept that's grounded.
Some of the features we want to implement:
All of these features are necessary for AkaMy-Rent to be taken seriously as a Web3 application. But if I had all the time and money in the world, an interesting idea would be to find a way for smart contracts to keep track of time. As it stands smart contracts do not have the ability to keep time, and therefore they must always be called in order to activate. It would be interesting to see if such a feat is possible with a series of smart contracts, or if the Ethereum network could be the catalyst for the timing of smart contracts. This would be an interesting research area, which AkaMy-Rent could use to time the smart contracts used for tenant payments.