The sparkling bay and rolling hills captivated us as our plane descended into the Bay Area. We were excited to see the beauty of the Golden State on the ground, but as we rode the Cal train from the SFO airport to Stanford, we saw many highway underpasses and beat-up towns littered with trash. We couldn't help but notice the stark contrast between the beautiful state of California and the poor condition of some of its communities. On that ride, we envisioned something that could bring back the beauty of the Golden State and bring others closer together through Web3.
What it does
Our platform allows others to post projects that need to be done in their community, such as picking up trash. Those who post projects are the 'Host' and can manage who works on them. 'Donors' can contribute funds to these projects to provide a financial incentive for 'Helpers' to complete the posted projects. Upon approval by the Host, the Helpers all split the money that was tied to the project. The Host uploads a description and images of the project to be done, and the Helpers upload pictures as proof that they have completed the project.
How we built it
We first architected our solution to this problem on OneNote, using user stories, domain models, and use case diagrams. After architecting, we split up into developing the backend (Ethereum contracts) and frontend (Next.js), and communicating how to integrate data. We deployed the contracts on the rollup Arbitrum due to the low cost of gas. To store the photos that Hosts and Helpers upload, we used the IPFS service Pinata.
Challenges we ran into
- While we had success using Esturary's Alpha UI on Friday night, we returned Saturday to connection timeout issues and problems connecting to their nodes. We then decided to switch to a more reliable and familiar Pinata for IPFS operations.
- Most of the modern Ethereum development suite was created within the past year, leading to poor documentation and support for certain tools. This especially affects tools like Wagmi, which was created mere months ago. We had trouble finding documentation for the complex use cases we needed, such as dynamically reading contracts created from our factory design model and complex parameter rights.
- Centering divs (this stumped ChatGPT too) architecture implementation between next.js frontend and node.js backend especially when dealing with images Testing and security of smart contracts immutable deployments ## Accomplishments that we're proud of We are proud to have produced a professional, polished product in 36 hours and for overcoming our obstacles during the short time frame. ## What we learned We learned lots of technical skills, from working with Next.js to file transport with IPFS to ETH smart contracts. ## What's next for Helping Hand We have lots of features in mind.
- Sort all of the projects by proximity automatically when you browse the available projects.
- Add support for other coins.
- Add voting and delegation so that funds can be distributed according to labor.
- Use zero-knowledge cryptography to maintain privacy.