Skip to content

Welcome to the DAAR project. The idea will be to implement an OpenCollective competitor in a decentralized way, on Ethereum. This will have cool side effects, like not be forced to pay for servers.

Notifications You must be signed in to change notification settings

stl-insta/build-collective

Repository files navigation

Build Collective

Welcome to the DAAR project. The idea will be to implement an OpenCollective competitor in a decentralized way, on Ethereum. This will have cool side effects, like not be forced to pay for servers.

Installation

# With HTTPS
git clone https://github.com/ghivert/build-collective.git
# Or with SSH
git clone git@github.com:ghivert/build-collective.git

You’ll need to install dependencies. You’ll need Ganache, Node.js and NPM or Yarn. You’ll need to install Metamask as well to communicate with your blockchain.

  • Ganache is a local blockchain development, to iterate quickly and avoiding wasting Ether during development.
  • Node.js is used to build the frontend and running truffle, which is a utility to deploy contracts.
  • NPM or Yarn is a package manager, to install dependencies for your frontend development. Yarn is recommended.
  • Metamask is a in-browser utility to interact with decentralized applications.

Some setup

Once everything is installed, launch Ganache. Create a new workspace, give it a name, and accept. You should have a local blockchain running in local. Now you can copy the mnemonic phrase Ganache generated, open Metamask, and when it asks to import a mnemonic, paste the mnemonic. Create the password of your choice and that’s fine. Now you can connect Metamask to the blockchain. To do this, add a network by clicking on main network and personalized RPC. Here, you should be able to add a network.

Ganache Config

Once you have done it, you’re connected to the Ganache blockchain!

Run the frontend

Install the dependencies.

# Yarn users
yarn
# NPM users
npm install

Compile the contracts.

# Yarn users
yarn contracts:migrate
# NPM users
npm run contracts:migrate

Create a symlink for your OS if this is not done for you.

# Windows
mklink /D src\build "..\build"

# Unix and macOS
ln -s ../build ./src/build

Run the frontend

# Yarn users
yarn serve
# NPM users
npm run serve

You’re good to go!

Subject

Implement an OpenCollective from scratch in Solidity.

Smart Contract

  • Open user account, with a name and a balance.
  • Open an entreprise account, with a name, an owner and some members, possibly with a balance.
  • Create projects on which we can give money for sponsoring. Each project has a balance, a name and a list of contributors. Each project belongs to a user or an entreprise. The money given to the project can be send to contributors, and contributors only.
  • On a project, you should be able to create bounties. Bounties are bugs with a reward: if you spot a bug and you want to have it fix quickly, open a bounty and put some eth on it. When the fix is pushed, the author will get the eth. He’s a bounty hunter.
  • Add the ability to put some link to commits from GitHub or GitLab in the projects, to keep a track of what has been done.

Front

  • Create a page to open a user account. Remember, each user is identified by its wallet address.
  • Create a page to open an entreprise account.
  • Create a page to create a project.
  • Create a page to get a full recap of everything that happened on a project as a timeline.
  • Project details page
    • Contribute to a project
    • Pay contributors (only owner)
    • Create bounty (only owner)
    • Accept a fix (only owner)
    • Propose a fix

Screenshot

Home

image

Account

image

Company

image

Company details

image

Project

image

Project Details

image

Bounty

image

Bounty Details

image

About

Welcome to the DAAR project. The idea will be to implement an OpenCollective competitor in a decentralized way, on Ethereum. This will have cool side effects, like not be forced to pay for servers.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages