Green Goods

Measures, tracks, and rewards the impact on gardens with a simple progressive web app.
https://github.com/greenpill-dev-guild/green-goods

Category: Biosphere
Sub Category: Biodiversity Citizen Science

Keywords

attestations biodiversity biodiversity-monitoring community conservation environment ethereum foundry greenpill impact ipfs public-goods pwa regenerative smart-contracts solidity tailwindcss typescript vite web3

Keywords from Contributors

transforms archiving measur generic optimize observation compose conversion projection animals

Last synced: about 2 hours ago
JSON representation

Repository metadata

Bringing biodiversity data onchain to better measure, track and reward impact on gardens with a simple PWA.

https://github.com/greenpill-dev-guild/green-goods/blob/develop/

          # Green Goods

Green Goods is a decentralized platform for biodiversity conservation, enabling Garden Operators and Gardeners to document and get approval for conservation work through blockchain-based attestations.

## 🏗️ Repository Architecture

The project is organized as a monorepo using pnpm workspaces:

```
green-goods/
├── packages/
│   ├── client/           # Frontend React application
│   ├── contracts/        # Smart contracts and deployment scripts
│   └── server/           # Backend services and APIs
├── apps/                 # Additional applications
└── docs/                 # Documentation
```

### Key Components

#### Client (`packages/client`)

- React-based Progressive Web App (PWA)
- Built with Vite, TypeScript, and Tailwind CSS
- Handles user authentication, garden management, and blockchain interactions

#### Contracts (`packages/contracts`)

- Solidity smart contracts for garden management
- Foundry-based deployment scripts
- Integration with Privy for wallet management

#### Server (`packages/server`)

- Backend services and APIs
- Handles data persistence and business logic
- Integrates with blockchain networks

## 🚀 Getting Started

### Prerequisites

- Node.js (v20 or higher)
- pnpm (v9.x)
- Foundry (for smart contract development)
- Git

### Installation

1. Clone the repository:

   ```bash
   git clone https://github.com/your-org/green-goods.git
   cd green-goods
   ```

2. Install dependencies:

   ```bash
   pnpm install
   ```

3. Set up environment variables:

   ```bash
   # Copy example env files
   cp packages/client/.env.example packages/client/.env
   cp packages/contracts/.env.example packages/contracts/.env
   cp packages/server/.env.example packages/server/.env
   ```

4. Configure environment variables:
   - `PRIVY_CLIENT_ID`: Your Privy application ID
   - `PRIVY_APP_SECRET_ID`: Privy app secret
   - `PRIVY_AUTHORIZATION_PRIVATE_KEY`: Privy authorization key
   - `PINATA_JWT`: Pinata API JWT token
   - `PRIVATE_KEY`: Ethereum private key for deployments

## 💻 Development

### Running the Development Environment

1. Start the client:

   ```bash
   pnpm --filter client dev
   ```

2. Start the server:

   ```bash
   pnpm --filter server dev
   ```

3. Deploy contracts (if needed):
   ```bash
   pnpm --filter contracts deploy
   ```

### Testing

Run tests across all packages:

```bash
pnpm test
```

Run tests for a specific package:

```bash
pnpm --filter  test
```

### Linting and Type Checking

```bash
# Lint all packages
pnpm lint

# Type check all packages
pnpm typecheck
```

## 🛠️ Core Technologies

### Frontend

- **React**: UI library
- **Vite**: Build tool and dev server
- **TypeScript**: Type safety
- **Tailwind CSS**: Styling
- **TanStack Query**: Data fetching and caching
- **Privy**: Authentication and wallet management
- **Radix UI**: Accessible UI components
- **React Hook Form**: Form management

### Smart Contracts

- **Solidity**: Smart contract language
- **Foundry**: Development framework
- **Hardhat**: Alternative development environment

### Backend

- **Node.js**: Runtime
- **Express**: Web framework
- **TypeScript**: Type safety
- **Prisma**: Database ORM

## 📦 Package Management

### Adding Dependencies

```bash
# Add to specific package
pnpm --filter  add 

# Add dev dependency
pnpm --filter  add -D 
```

### Workspace Scripts

```bash
# Run script in specific package
pnpm --filter  

# Run script in all packages
pnpm -r 
```

## 🤝 Contributing

1. Fork the repository
2. Create a feature branch:
   ```bash
   git checkout -b feature/your-feature-name
   ```
3. Make your changes
4. Run tests and linting:
   ```bash
   pnpm test
   pnpm lint
   ```
5. Commit your changes:
   ```bash
   git commit -m "feat: your feature description"
   ```
6. Push to your fork
7. Create a pull request

### Commit Convention

We follow the [Conventional Commits](https://www.conventionalcommits.org/) specification:

- `feat`: New feature
- `fix`: Bug fix
- `docs`: Documentation changes
- `style`: Code style changes
- `refactor`: Code refactoring
- `test`: Adding or modifying tests
- `chore`: Maintenance tasks

### Pull Request Process

1. Update documentation if needed
2. Add tests for new features
3. Ensure all tests pass
4. Update the changelog
5. Get code review approval
6. Merge after approval

## 📚 Documentation

- [Architecture Overview](./docs/architecture.md)
- [API Documentation](./docs/api.md)
- [Smart Contract Documentation](./docs/contracts.md)
- [Contributing Guidelines](./docs/contributing.md)

## 🔐 Security

- Report security vulnerabilities to [email protected]
- Do not disclose security-related issues publicly

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🙏 Acknowledgments

- [Privy](https://www.privy.io/) for authentication and wallet management
- [Pinata](https://pinata.cloud/) for IPFS services
- [Foundry](https://getfoundry.sh/) for smart contract development
- All contributors and supporters of the project

        

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 5 days ago

Total Commits: 155
Total Committers: 5
Avg Commits per committer: 31.0
Development Distribution Score (DDS): 0.245

Commits in past year: 102
Committers in past year: 3
Avg Commits per committer in past year: 34.0
Development Distribution Score (DDS) in past year: 0.059

Name Email Commits
Afo o****1@g****m 117
0xWildhare s****9@g****m 31
dependabot[bot] 4****] 3
Alexander Mangel c****r@g****m 3
mrcn m****a@g****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 110
Total pull requests: 40
Average time to close issues: 4 months
Average time to close pull requests: 2 days
Total issue authors: 6
Total pull request authors: 3
Average comments per issue: 0.06
Average comments per pull request: 1.08
Merged pull request: 31
Bot issues: 0
Bot pull requests: 7

Past year issues: 53
Past year pull requests: 40
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 2 days
Past year issue authors: 6
Past year pull request authors: 3
Past year average comments per issue: 0.11
Past year average comments per pull request: 1.08
Past year merged pull request: 31
Past year bot issues: 0
Past year bot pull requests: 7

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/greenpill-dev-guild/green-goods

Top Issue Authors

  • Oba-One (87)
  • c-georgen (13)
  • marcaumdesign (7)
  • Cygnusfear (1)
  • cauetomaz (1)
  • moose-code (1)

Top Pull Request Authors

  • Oba-One (29)
  • dependabot[bot] (7)
  • Cygnusfear (4)

Top Issue Labels

  • design (25)
  • story (24)
  • contract (19)
  • component (16)
  • state-logic (15)
  • api (9)
  • documentation (9)
  • javascript (4)
  • infrastructure (2)
  • good first issue (1)

Top Pull Request Labels

  • contract (10)
  • api (10)
  • component (10)
  • state-logic (10)
  • dependencies (7)
  • javascript (6)
  • documentation (2)
  • database (1)

Score: 5.68697535633982