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.
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:
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.
The datamodel package is used to create and deploy the Ceramic data model to which DAO contributors store contribution metrics.
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.
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.
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.
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
- NodeJS (Install NodeJS)
- Yarn (Install Yarn)
For more information on what prerequisites are required for each package, please refer to the README.md file in the corresponding package.
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
For guidance on how to use the individual packages, please refer to the README.md file within each package.
yarn workspace <workspaceName> <commandName> ...
yarn workspaces list
- 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.