Inspiration
The inspiration for this project comes from my daily experience as an owner in a residential complex. That is sometimes difficult for people to make agreements between themselves and the people they are renting their flats to.
People often lose their agreements or when it is needed it is not found and it creates a lot of problems for the people managing the society. For any problems that might occur due to a rental and owner dispute the most viable way to solve it is to read the agreement and follow what it says. But many a times people don't make it.
This platform aims to make it simple for people to create agreements and store them on IPFS with their tracks being on chain which makes the contract data not only impossible to change but accessible throughout by anyone.
What it does
Enables a logged in user to be able to create and read agreements that have been created by the application. Agreement creation needs 4 details for the agreement to be created.
- Initiator - Most of the times it is the owner/creator of the agreement.
- Acceptor - Person who is signing the agreement created by the initiator and is agreed to it.
- Title - Title of the agreement
- Agreement Content - Content and rules of the agreement.
How we built it
Creation was a tricky thing for me as I didn't have much experience of building with solidity or any of the web3 platform tools before. During the duration of hackathon, I have watched all the sessions which I felt would help me in making this project.
Session by Yusef Napora on building the web3 hackernews type website was the one where I got most of the ideas about how I should structure the project. I had watched a few other of videos of Michelle lee and a DevRel guy from Moralis which I like the most out of anything. A lot of my time was gone into how I would make the project. I kept on reading the docs and practiced making the agreement on Remix IDE and tested it in manual ways.
Finally, I created a project in which there was a contracts folder and a frontend folder, but then I realised having a yarn workspace would be a better idea then I changed the whole structure to be a yarn workspace. I changed the contracts folder to be a hardhat project. Although I work in TypeScript most of the times professionally, I was facing some issues working with TypeScript, so I decided to work with JavaScript at the end and let me tell you once you start working with TypeScript, JS just feels weird and not safe.
Challenges we ran into
There are a lot of challenges I ran into, First of which was how to structure the project. Although the code sample made by Yusef was extremely helpful and detailed, but it was not in a form that a noob like me could follow and get to build it. So, I read the project and then followed the trail by looking at several tutorials by some other people and finding the ways of why Yusef had done something.
I finally was able to understand a lot of reasons why Yusef had structured the project in the way he did and was able to make the project terribly like what he had made.
Web3.storage SDK was not completely supported by CRA and It was very frustrating to see that there was no helpful way to solve it.
Accomplishments that we're proud of
- Creating my First Web3 project.
- First submission of mine to a hackathon without taking any help from anyone and building everything on my own.
- Failing and learning through the documentation as well as connecting with such great developers through the help of this hackathon.
What we learned
I learnt a lot about how things on Web3 are designed to work and what are the benefits of building on Web3. I love all the new opportunities that it has brought, and I am excited to work even more in this field.
I learnt Solidity at a basic level, learnt about hardhat, ganache and how the contract development works. I learnt about how a frontend Application would interact with smart contract. I learnt about oracles, chainlink features, what are NFT's and lot more throughout the hackathon. I learnt about Moralis SDK and how you can use it as Firebase for Web3
What's next for Chain Agreement
- Adding signature for initiator and acceptor.
- Adding email integration after agreement creation
- Adding account feature for each address so that initiator/acceptor can view their agreements from the portal itself.
Built With
- ganache
- hardhat
- javascript
- moralis
- solidity
- web3.storage

Log in or sign up for Devpost to join the conversation.