I believe that the most difficult project is one which gives you an opportunity to learn something new. Though I have worked on several projects but one that stands out is the Lottery app on Blockchain. The projects might not sound that difficult in terms of objective but it was a being on my journey on the course of Blockchain technology. I did not know anything about the blockchain technology let alone how it works before this project.
The idea was simple to develop an application which allows users to place a bet of a specific amount. The manager of the Lottery will declare the winner (but has no control over the outcome as the winner was decided by the pseudo-random function). Upon declaration of the winner, the total amount should be transferred to the winner account. One factor which I had to keep in mind that neither the manager or any other player should intervene with the amount that has to be transferred to the winner.
But, as I started working on this project, I learned various interesting facts about blockchain technology and its implementation. For developing the Lottery app, I needed to know about Ethereum and how DApps are built on top of it (since Ethereum is the most used platform for developing DApps). So, I started with getting to know Bitcoin technology before eventually moving on to Ethereum. Another important thing which this project taught me is the financial aspect of Blockchain technology. I got to know that every transaction cost some money (be it in terms of Ether or any other cryptocurrency). I also got the chance to explore various consensus algorithm which is the very backbone of blockchain technology.
While developing Lottery app, I felt the need for some automated job like the total winning amount should automatically be transferred to the winners account with ensured security that no one can tamper with that amount. Initially, I tried implementing it with the simple JavaScript Logic but only to later realize that the owner of Lottery can still tamper with the money division. This means that my system did not have a trust component and each entity has to trust that other is playing fairly. But, thanks to the smart contract technology of Ethereum which helped me automate this job.
Also, I started this project with the concept of traditional client-server architecture only to later realize that blockchain works in an entirely different fashion. So, this project cleaned my doubt regarding that. While developing this project, I also got the chance to explore various other blockchain technologies like Cardano, Lisk which taught me that blockchain is not limited to Ethereum rather there are various other technologies out there which can serve in a similar way (maybe in a better fashion depending upon the use case).
GitHub repository of Lottery app on Blockchain - https://github.com/pranjalkumar/Lottery-app-on-blockchain
I am proud of this project as it gave me an opportunity to get out of my comfort zone as try out something new which is still in the development phase. As a matter of fact, I enjoyed working on this Blockchain technology so much that I decided to do my Btech project on this topic.
Currently, I am working on developing a full-fledged KYC application on Blockchain. One can think of it as a personal information sharing application but on Blockchain technology. I am also trying to address the issue of privacy using this application. Upon analyzing the market I found out that most of the application does not provide control to the end user. There are various other features which I am trying to address via this application. The KYC application is still in the development phase.