Skip to content

A monorepo to build Impact Evaluator infrastructure using Cermaic and Bacalhau.

Notifications You must be signed in to change notification settings

Curve-Labs/ie-bacalhau

Repository files navigation

Impact Evaluator

Description

This repository contains all the necessary packages and tools to create and deploy an Impact Evaluator. The repo is structured as a mono repo, with each package serving a specific purpose such as creating a parent Docker image, deploying the data model, creating the UI, and the contract for handling the token distribution based on the output of the Impact Evaluator function.

The repo also includes README.md files in each package that provide detailed instructions on how to interact with the code and the different steps involved.

Table of Contents

Monorepo Architecture

This mono repo contains 5 packages that are used to create and deploy and use an Impact Evaluator.

project
├── packages
│   ├── bacalhau
│   │   ├── README.md
│   ├── datamodel
│   │   ├── README.md
│   ├── next
│   │   ├── README.md
│   ├── on-chain
│   │   ├── README.md
│   └── templates
│       └── hundredIE
│           ├── README.md
├── README.md

Please Note: Each package in this monorepo includes a dedicated README.md file which provides detailed instructions on how to interact with the code and the different steps involved.

The functions of the different packages can be summarized as follows:

bacalhau

The bacalhau package is used to create a parent Docker image for the Impact Evaluator. This parent image is linked to within the Impact Evaluator template repository.

datamodel

The datamodel package is used to create and deploy the Ceramic data model to which DAO contributors store contribution metrics.

next

The next package contains all the code for the UI. The UI is built using the Next.js frontend framework. It includes all the necessary components and pages for the UI.

on-chain

The on-chain package contains all the Solidity contracts used for token distribution based on the output of the Impact Evaluator function. This includes the shrine.sol contract, the Zodiac RealityModule.sol contract, and other interfaces.

templates

The template package contains a template for the final Impact Evaluator, however, it's recommended to fork the template-impact-evaluator repo to use it.

Getting Started

Clone the repository

Using SSH

git clone [email protected]:Curve-Labs/ie-bacalhau.git

Using HTTPS

git clone https://github.com/Curve-Labs/ie-bacalhau.git

Prerequisites

Global

Package specific

For more information on what prerequisites are required for each package, please refer to the README.md file in the corresponding package.

Installation

To install the dependencies for this project, please run the command yarn install in your terminal. This command will install all the necessary packages required to run the application.

yarn

Usage

For guidance on how to use the individual packages, please refer to the README.md file within each package.

Run any command from within root

yarn workspace <workspaceName> <commandName> ...

List workplaces

yarn workspaces list

Development

Things to keep in mind

  • When making code changes, it is important to consider the scope of the changes. Changes that are relevant to a specific workspace should be made within that workspace.
  • If you want to add scripts, linting rules, or hooks that should apply to the entire repo, they should be added in the root directory.
  • The ./package.json file in the root directory manages the entire monorepo, whereas the ./packages/{WORKSPACE}/package.json file manages only that specific workspace. Any changes made in this file will only affect that workspace.
  • All dependencies are installed globally and there should not be any node_modules folder within the workspace directory.
  • Linting rules and scripts should also be global, therefore added in the root directory.
  • Environment variables are not shared across workspaces and are specific to each one.
  • When importing files from different workspaces, be sure to use the proper path.

About

A monorepo to build Impact Evaluator infrastructure using Cermaic and Bacalhau.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published