Reach Dao Project For The Umoja 3 Bounty Hack Built With Reach

Reach Dao Project For The Umoja 3 Bounty Hack Built With Reach

This article would tell the story of our participation in the last Umoja Bounty, the Umoja3 Bounty Hack sponsored by the Algorand Foundation, the African Blockchain Alliance, and Reach.

First, let's cover a few things about Blockchain development.

What is a Blockchain? A blockchain is a type of distributed ledger that is shared across a business network. Business transactions are permanently recorded in sequential, append-only, tamper-evident blocks to the ledger. All the confirmed and validated transaction blocks are hash-linked from the genesis block to the most current block, hence the name blockchain. Blockchain technology is a powerful game-changer for many industries because it organizes activities with less friction and more efficiency. And it does so at a greater scale. Blockchain is already helping reshape industries in domains as varied as finance, healthcare, and government and is particularly useful in situations where trust in a centralized authority is required. An example of such a Blockchain network is the Algorand network.

What is Reach? Reach is the platform for practical blockchain development, making it exponentially faster and cheaper to launch decentralized apps on any network while providing the safety you need to grow. Reach is easy to learn, as it’s syntactically and semantically similar to JavaScript. The language is modeled after a user’s perspective instead of the low-level logic of a state machine. Developers are spared the error-prone logic of state machine manipulation of network protocols. The Reach compiler includes a built-in verification engine that lets you guarantee the safety and correctness of your code by encoding your assumptions about its behavior into the program via assert statements. Reach is capable of compiling to any protocol, so you can launch your DApp on the chain that’s best for you. Reach has an amazing community and their team provides ample developer support as well as hosting weekly challenges and hackathons with bounties to aid the growth of Reach developers.

Here are some helpful links to learn more about Reach and blockchain development:

Documentation Discord Youtube Twitter

We built the Reach DAO DApp for the Decentralized Umoja3 bounty hack with Reach and the dialogue below tells our story.

Describe the primary features/functions of your DApp In a nutshell, the primary function of our DApp is to connect software developers with work. The primary features include:

  • Creating proposals

  • Voting on these proposals

  • Contributing to proposals

As self-taught developers, we know how difficult it is to transition from taking courses, learning, and tutorials to getting actual paid employment. Recruiters tend to require a Computer Science Degree with years of experience even for internships or may have a preference for hiring from their network of alumni and may offer different remuneration to people in different jurisdictions for the same work. We came up with the idea to build something that could help developers gain experience and improve their skills while earning some money to boost their confidence and take care of some bills. We also wanted to link talent with ideas whereby anyone with an idea for a project could create a proposal and fund a bounty which a developer could complete the bounty and claim the rewards. So anyone that has a job (like a full-scale DApp, assistance with parts of their DApp development, or a benevolent fellow that wants a tutorial created for the community) could create a proposal. The voting is there to prevent distasteful projects from being promoted and also to help the proposer gauge the level of interest in their idea. And people can even contribute to funding the proposal as well if they do like the idea. If the proposal passes the vote, it becomes a bounty, so any developer can then go ahead and do the work and claim the bounty and if it doesn’t pass, then those who contributed can reclaim their contributions. A DAO, Decentralised Autonomous Organization, is a permission-less sort of organization so you don’t need to submit a CV or resume or have years of experience or anything like that, all you have to do is complete the job and you automatically get paid upon submission of your proof of completion. Humans can be easily corrupted or start engaging in nepotism e.t.c. but computers can’t and would always apply the same rules to everyone irrespective of who they are.
We encourage you to watch our demo video to find out more about our app. Demo video

What was going through your head at the start of the hack? We were concerned about the timing of the hack. At the time we were both in the final stages of the ALX-T Full Stack Developer Nanodegree program with Udacity as well as the Ascent 2 Bootcamp and were worried we would not have enough time to implement the functionality that we intended to. Furthermore, we were far from certain if we would be able to and how to implement the desired features of the app.

What did you do to dive into your project? We started by writing down the features that we want the DApp to have, the interactions, and the flow of the DApp. After writing out the business logic of our DApp, we went ahead to create a repository with boilerplate code and incrementally built layers upon it.

The first time you asked the community for help, what were you struggling with? We had an issue with the first iteration of our DApp, as we came to realize that we could not use integers as keys for Maps on the Algorand blockchain. We asked about this and were advised to use a Set instead. In the end, we decided to use a combination of two Maps with addresses as keys in combination with a Set as a walkaround to implement the required functionality.

What were the most challenging obstacles to overcome (and how did you overcome them)? The most challenging obstacle to overcome was time management. As stated earlier we were in a Bootcamp as well as a Nanodegree program and had projects to submit and other graduation requirements to address also with their own time constraints. We had to dig deep and worked through the night most of the time to keep up with the workload.

Did you complete your project on time? Despite all the challenges we faced, we are happy to say that we did.

What surprised you about building in Reach? What surprised us the most, was that it seemed as though the creators of Reach had considered pretty much every scenario and had a tool, method, or solution handy if required. It's more likely than not that you'd find something handy in the documentation whenever you require a solution. Another was the relatively few lines of code required to implement powerful features in your DApp. Reach allows the developer to just focus on the business logic while it does a lot of the heavy lifting underneath the hood on your behalf. Additionally, the speed and level of community support received in the discord are unlike anything I have ever witnessed. It was truly amazing.

If given the chance to enhance/expand upon the features/functions of your app, what would you add? We would add the following features:

  • A blog page, kind of like our very own in-house social network where users could post their wins, ask for help, campaign for proposals, and just chill and hang out with like-minded people.

  • The bounties section of our DApp would be upgraded to a Guild for Web3 developers which will be addressed as adventurers, to pick up proposals which we would like to call quests, to fulfill and claim the bounty reward for the quest, as they do this they earn experience points in the form of NFTs to defend their skill level. And from time to time, we hold hackathons in the form of raids, for teams of adventurers, called parties to participate in to claim raid rewards. We believe strongly that this system would foster equal opportunity for growth amongst Web3 developers.

  • Using data analytics to get a sense of the pain points of the community and create proposals for tutorials, libraries, and or further abstractions of reach of some sort to help ease them. Additionally, we could provide this information as feedback to the Reach team.

Any closing thoughts on your project, the Bounty Hack, or building in Reach? Reach is an extremely powerful language. It can compile to all EVM chains as well as Algorand and Conflux. Its verification engine helps developers to build secure DApps and prevent costly mistakes. We were very impressed with how Reach encourages you to codify your business logic in relatively few lines of code while it does the rest of the heavy lifting on your behalf. Another thing that struck us was how human-readable and packed with useful information the error messages were. The level of support that they provide to the community is very commendable for example, we both learned a lot from the weekly challenges organized by Reach and the payouts helped us upgrade our laptops making working with Reach a lot easier as well as helping us to offset a few lingering bills. Reach has made a huge impact on our lives in many ways. It has allowed us to transition into a career in Web3 and has increased our confidence as developers. The community feels like a family to us and we would implore any developer curious about blockchain to make Reach their platform of choice. It was such a joy, a pleasure, and a privilege working with Reach.

Authors

Owolabi Adeyemi

I am a self-taught backend developer who has always admired things of logic and derived pleasure in solving puzzles and building things from a very young age. In 2020, I started to find the redundancy and limited scope to do new things in accounting boring so I decided to try programming. I learned Python and then HTML, CSS, and JavaScript. Having a background in finance, the Crypto Bullrun caught my attention and I continued to go deeper and deeper down the rabbit hole, I started learning how to track transactions and read smart contracts. I tried to dabble in Solidity and Ocaml but it seemed a step too far for me and then I shelved that idea. I was introduced to Reach on a WhatsApp group for aspiring Web2 developers and it caught my interest. I decided to try the Ascent 2 Bootcamp and absolutely loved it. I have decided to continue my foray into Web3 development with Reach.

My LinkedIn Profile

My GitHub Account

Emmanuel Agbavwe

I am a self-taught Full Stack developer who loves writing solutions to problems with code. I have always had a passion for computers, often fascinated by the way those in the movies used computers to do cool stuff, and as such, made it my goal to become a programmer right from my younger days. And with time I started working towards actualizing my goal. After graduating from high school, I started learning how to program using Java, then I picked up more Web development-related languages such as HTML, CSS, and JavaScript. I later learned Python as I worked for a startup between August 2021 and August 2022. With my recent experience with Reach and Web3 development, I've started my journey as a Full Stack Web3 Developer.

My LinkedIn Profile

My GitHub Account

Thanks for going through our article.