Inspiration
The inspiration for Lance came from observing the growing need for a decentralized platform that could connect freelancers with clients while ensuring transparency, security, and fair compensation. Traditional freelance platforms often have high fees, opaque operations, and centralized control, which can be detrimental to both freelancers and clients. With the advancements in blockchain technology, specifically Ethereum, I saw an opportunity to create a platform that could address these issues by leveraging smart contracts and decentralized principles.
What I Learned
Working on Lance was an incredible learning experience. Some of the key things I learned include:
- Ethereum Programming: Diving deep into Ethereum's ecosystem taught me a lot about how smart contracts work, how to write efficient Solidity code, and how to deploy contracts on the Ethereum blockchain.
- Gas Saving Techniques: Understanding the importance of gas optimization was crucial. I learned various techniques to minimize gas usage, which is essential for making transactions cost-effective.
- Decentralized Application Development: Building a decentralized application (dApp) from scratch gave me practical insights into the challenges and intricacies involved in creating robust, user-friendly dApps.
Building the Project
Lance was built using a combination of HTML, CSS, and JavaScript for the frontend, and Solidity for the smart contracts. Here’s a brief overview of the development process:
- Frontend Development:
- Used HTML and CSS to design a responsive and intuitive user interface.
- JavaScript was used to handle user interactions and to connect the frontend with the Ethereum blockchain via Web3.js.
- Smart Contract Development:
- Leveraged OpenZeppelin libraries extensively to ensure security and standardization in smart contracts.
- Developed contracts to handle user registration, job postings, proposals, payments, and dispute resolution.
- Integration and Deployment:
- Integrated the frontend with the smart contracts using Web3.js.
- Deployed the smart contracts on the Ethereum blockchain and tested the end-to-end functionality.
Challenges Faced
Building Lance was not without its challenges. Some of the significant hurdles I encountered include:
- EVM Restrictions:
- One of the surprising limitations was the EVM's restriction on local variables, which are limited to 16. This required careful planning and optimization of smart contract code to work within these constraints.
- Versioning Issues:
- There were numerous conflicts between the Long-Term Support (LTS) versions of the various technologies I used and the versions specified in learning resources and libraries, including OpenZeppelin. Navigating these versioning issues was challenging and required a lot of trial and error to ensure compatibility.
Time, I wish I had more time
Built With
- css3
- ethers
- hardhat
- html5
- javascript
- solidity
- webpack
Log in or sign up for Devpost to join the conversation.