Skip to content

Instantly share code, notes, and snippets.

@backupbrain
Created June 3, 2021 16:16
Show Gist options
  • Save backupbrain/68a0024e9ddb4ed7d449724861a266c7 to your computer and use it in GitHub Desktop.
Save backupbrain/68a0024e9ddb4ed7d449724861a266c7 to your computer and use it in GitHub Desktop.
Project analysis for the integration of ethereum-based ID into the Bounty Network tool chain.

Bounty Network / ID Integration

Objective

The objective is to build a UBi Rebel Alliance-branded Bounties Network that:

  • Top Priority Creates a need for token-based identity by letting ID holders create and bid on projects
  • Top Priority Allow users to pay each other upon the completion of projects and/or milestones via the execution of smart contracts.
  • Bonus Priority Employs NFTs that represent skill badges or endorsements for people who complete projects and/or milestones, via the execution of smart contracts

State of the Project

After reviewing the code, I've seen that there are three important parts:

  1. Smart contracts and IPFS integrations
  2. Bounties Network API
  3. Bounties Network Website Front-End

Smart contracts and IPFS integrations

Overview This portion of the project is a collection of scripts and configurations, mostly related to executing smart contracts on the Ethereum blockchain. These smart contracts relate to the creation, funding, retraction, and payment of Bounties. Bounties can be owned and funded by multiple parties and can be paid out to multiple parties in part or in full.

Status The code for this part of the project is publicly available, well documented, and presumed to be working.

Next Steps The critical path for this portion of the projet is to run scripts through a battery of tests on a test network with debugging tools, so as to determine if the scripts operate as expected, without bugs, and perform tasks required for the project to work.

Bounties Network API

Overview This part of the project acts as a central coordinator between a central database of projects, bounties and users. It collects, reports, and modifies blockchain integrations including IPFS, which is used to connect static content related to bounties. It also requests the execution of solidity contracts on the Ethereum blockhcain. The code is written in Python/Django and employs a variety of 3rd-party tools such as:

  • Docker
  • AWS Simple Email Service
  • Circle-CI
  • Postgres
  • BASH srcipts
  • Typescript/NodeJs

Status The code for this part of the project is publicly available and presumed to be working.

Next Steps The critical path for this portion of the project is to bring up any necessary integrations such as IPFS and database tools, and to attempt to deploy and test.

Bounties Network Website Front-End

Overview This portion of the project currently exists as a deployed website on http://bounties.network. It functions in this state but without the ability for people to fund or pay bounties.

The source code for this project, contains only pre-compiled HTML, JavaScript, and CSS. It is unclear from the pre-compiled code which libraries were used to create the project.

Status This code for this part of the project is unusable. As pre-compiled JavaScript front-end code, there is virtually no way to modify how the site functions or how assets are rendered. Additionally, all static assets (images, icons, logos, fonts, etc) are Bounty Network-branded, making them non-ideal for deployment

Next Steps The website front-end must be remade from scratch in order to acheive all or some of the functionality of the Bounties Network. New assets and new code must be produced.

Resources Required

In order to move forward with the first two priorities, the Smart Contract and IPFS integrations must be tested and verified. The Bounties Network API must be brought online and tested as well. Concurrently, the Bounties Network Website Front-End must be rebuilt from the ground-up.

Smart Contract and IPFS integrations

If everything works, this portion of the project simply needs to be tested.

Requires:

  • 1 Solidity developer with experience testing and debugging smart contracts

Estimated time required: 20-40 hours

Bounties Network API

Assuming this works, we need someone who understands Docker and AWS to deploy and test. Because this portion of the project integrates so many tools, development requiremnts ccould range from a system administrator who can deploy a Docker image to a team of developers each working on their portion of the project.

In either case, we must add functionality that connects the ethereum-based ID system with the API

Minimum Requirement:

  • 1 System Administractor with experience with Docker, AWS, and Django Estimated time required: 20-40 hours
  • 1 Django developer with experience working in Docker and Django Rest Framework Estimated time required: 120-200 hours

Maxumum Requirement:

  • 1 System Administractor with experience with Docker, AWS, Postgres SQL, and Django
  • 1 Python/Django programmer with experience working with Docker and Django Rest Framework
  • 1 TypeScript/NodeJS developer with experience working with REST APIs and Blockchain

Estimated time required: Depends on what needs to be fixed.

Bounties Network Website Front-End

Since this portion of the project needs to be rebuilt from scratch, an entire project definition must be constructed that essentially follows the existing Bounties Network website.

To bring up a minimally viable product, the following workflows must be created and work with the API:

  • Home page
  • Account Management:
    • Sign Up
    • Verify Account
    • Change Password
    • Change Email
    • Update Profile (name, bio, photo, etc)
    • Forgot Password
    • Connect Account to ID
    • Connect Account to funding / payout wallet
    • Close Account
  • Authentication:
    • Log In
    • Log Out
  • Bounties:
    • Create a Bounty
    • Remove a Bounty
    • Fund a Bounty
    • Retract funding
    • List Bounties
    • Search Bounties
    • Submit proposal
    • Retract proposal
    • Inspect a bounty, with funding, funders, and proposal submissions
    • Approve submission
    • Award payments
    • Comment
    • Revise Bounty
  • Dashboard
    • Statistics
    • Alerts
    • Charts
    • Project status
  • Leaderboards

This is a considerable amount of work that could take weeks or months to complete and would require:

  • UI designer to design screens, make them beautiful and functional, who works in Figma or Sketch Estimated time required: 30-70 hours
  • Javascript front-end developer who works in ReactJS / React Native, NuxtJs, or VueJs Estimated time required: 700-1400 hours
  • A web developer who can convert screen designs from Figma or Sketch into Reative Javascript Components using HTML and CSS Estimated time required: 500-1000 hours

These three people must work together to create the workflows described above.

@HBesso31
Copy link

HBesso31 commented Jun 4, 2021

Hey Adonis, this is an amazing job of yours. Definitely would love to work together.
The objective we are looking for is to enable the community to develop autonomously the ecosystem's products. For that, we have started configuring a Discord for centralizing all the communications, as of now there are near 8 Telegrams channels for different purposes. Conversations get difficult to catch up and talent coordination is impossible to achieve there.
Having the Bounties Network deployment, you have outlined, will be a game-changer. I have sent you an email to follow up on the conversation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment