Inspiration
As a beginner without much knowledge of web3 and decentralized apps, we were curious to learn how a network of users can work together to benefit an application rather than a singular entity controlling all its aspects. Thinking of everyday problems we all face, we thought having a real-time verification system that is secure especially when people are trying to find parking may be useful.
What it does
- Takes user MetaMask wallet information (to fund the verification interactions used)
- Takes user information
- Authenticates MetaMask account, verifies, and alerts user whether the verification is a success or not
- Uses our custom Smart Contract created with Hedera for the verification process
How I built it
- Created a front-end and back-end base using Javascript, React.js, CSS and HTML
- Created Hedera account, configured it with MetaMask (there were multiple articles mentioning different ways to use the Hedera account, but this seemed quite straightforward)
- Learned the basics of Solidity to write the Smart contract, used Remix as an IDE to test out Identity_Verification contract (also wrote a Parking_Location_Verification contract but did not have enough time to implement it)
- Integrated contracts into the front-end and back-end base, created buttons for the data exchange processes.
- Configured CSS files and React.JS code to touch-up the front end.
Challenges I ran into
Building a project in a time-span of a few days definitely had many challenges, especially because none of us had attended a hackathon before or used web3 technologies. However, the most prominent challenges were as follows:
- Learning the services provided by Hedera and understanding how it might fit into the overall ecosystem of the application we were building. It was challenging to learn about the different technologies offered by Hedera and how it fit in together
- Understanding Solidity and writing an Identity Verification contract. While the tutorials and step-by-step guides on Hedera were helpful to understand the basics, it was challenging to create a new contract in an entirely different language, especially with the time constraints.
- Full-stack development - not having much experience with ReactJS and CSS, there was definitely a steep learning curve of creating a cohesive user experience with a functional (and hopefully aesthetic) UI and backend. However with a few hours of Youtube videos and multiple tutorials, the project finally came to life.
- Configuring Hedera SDK - it wasn't completely clear in the tutorial how exactly to download the Hedera SDK in Java (and I kept getting multiple errors), but using the Javascript version definitely got rid of the issue.
- Defining problem scope - our initial plan was to create an app that maps users coming into a parking lot with those leaving it along with the authentication service. However we quickly learned that we had the capacity to only focus on the authentication aspect.
Accomplishments that I'm proud of
- Learning full-stack development. As I mentioned earlier, while learning ReactJS and CSS were definitely difficult, I feel proud of the accomplishments made so far and how the app turned out.
- Writing a Smart contract, and deploying it in Hedera. I definitely enjoyed the process of writing a smart contract to verify user information, and found the structure of creating a smart contract something worth looking into in the future.
- Learning about blockchain technologies, web3 apps and decentralized apps. Before this hackathon I did not know much about these technologies - all I knew was that it had something to do with finance. However, having taken the weekend to deep-dive into one of these technologies and understand these services to a certain level, I am definitely more intrigued than I was by web3.
What's next for ParkingHelper
In the future, we hope to create a fully functioning application that can help people with the daily tedious task of finding an empty parking spot. While it may not require the specific blockchain technology to communicate with others on the same network, it may be useful in verifying user information, parking lot information (checking if a place posted on the app is a legitimate parking spot to avoid kidnapping), and create a decentralized yet safe space for people.
Built With
- css
- hedera
- html
- javascript
- metamask
- react
- solidity
Log in or sign up for Devpost to join the conversation.