Skip to content

Developer Documentation

Welcome to the Hello World Co-Op DAO developer documentation. This guide covers everything you need to contribute to our platform built on the Internet Computer Protocol (ICP).

SectionDescription
Workspace SetupClone repos, install tools, verify your environment
API ReferenceCandid interface documentation for all canisters
ComponentsReact component documentation (FolderTree, etc.)
TestingTesting strategies for visualization, E2E, unit tests
ContributingCode style, PR process, commit conventions
ArchitectureSystem design, canister responsibilities, data flows
Game SystemsOtter Camp Phaser.js game systems (Combat, Quests)
Canister MonitoringCycle balance monitoring, health checks, top-up procedures

Platform Overview

The Hello World Co-Op DAO platform spans multiple repositories:

  • 11 Rust canisters running on the Internet Computer
  • 6 React suite frontends deployed to IC asset canisters -- see FAS Architecture
  • 3 shared npm packages (@hello-world-co-op/api, auth, ui) on GitHub Packages
  • 1 Oracle bridge (Node.js off-chain service)
  • 2 Infrastructure repos (ops-infra, docs)

Technology Stack

LayerTechnology
BackendRust, ic-cdk 0.13, Candid 0.10
FrontendReact 18/19, Vite 5, TypeScript 5.6, Tailwind 3
TestingPocketIC 6, Vitest 1.6, React Testing Library, Playwright
AuthInternet Identity, Email/Password, OAuth providers
StandardsICRC-1/2 (tokens), ICRC-7/37 (NFTs)

Getting Started

1. Prerequisites

Before you begin, ensure you have:

  • Rust 1.70+ with wasm32-unknown-unknown target
  • Node.js 20.x LTS
  • dfx (IC SDK) - latest stable version
  • PocketIC binary for integration testing
  • Git for version control

See Workspace Setup for installation instructions.

2. Clone the Workspace

bash
# Clone the workspace repository
git clone https://github.com/Hello-World-Co-Op/hello-world-workspace.git
cd hello-world-workspace

# Clone all component repositories
# See the full clone script in Workspace Setup

3. Build and Test

bash
# Build all Rust canisters
./ops-infra/scripts/build-wasm.sh

# Run backend tests
cd <canister-repo>
cargo test

# Run frontend suite tests
cd <suite-name>
npm test

Repository Structure

hello-world-workspace/
├── hello-world-workspace/  # VS Code workspace config
├── docs/                   # Documentation (you are here)
├── oracle-bridge/          # Off-chain Node.js service
├── ops-infra/              # DevOps, CI/CD, scripts
├── Suite Frontends:
│   ├── foundery-os-suite/  # FounderyOS productivity app (4,642 tests)
│   ├── governance-suite/   # DAO governance & voting (867 + 69 E2E tests)
│   ├── marketing-suite/    # Public marketing site with SEO (83 tests)
│   ├── otter-camp-suite/   # Otter Camp game UI (2,115 + 7 E2E tests)
│   ├── dao-suite/          # Member dashboard (806 tests)
│   └── dao-admin-suite/    # Admin dashboard with RBAC (115 tests)
├── Shared Packages:
│   ├── api/                # @hello-world-co-op/api
│   ├── auth/               # @hello-world-co-op/auth
│   └── ui/                 # @hello-world-co-op/ui
└── Canisters:
    ├── auth-service/       # Session management
    ├── user-service/       # User registration
    ├── membership/         # ICRC-7 SBT credentials
    ├── dom-token/          # ICRC-1/2 token ledger
    ├── governance/         # Proposal system
    ├── treasury/           # Role-gated payouts
    ├── identity-gateway/   # Internet Identity
    ├── otter-camp/         # Crowdfunding
    ├── marketplace/        # Vendor registry
    ├── proof-nfts/         # Deployment rewards
    └── education/          # Educator registry

Key Concepts

Canisters

Canisters are smart contracts on the Internet Computer. Each canister:

  • Has a unique principal ID
  • Runs WebAssembly (compiled from Rust)
  • Exposes a Candid interface (.did file)
  • Can make inter-canister calls

ICRC Standards

We implement several ICRC standards:

StandardPurposeUsed By
ICRC-1Fungible tokensdom-token
ICRC-2Token approvalsdom-token
ICRC-7NFTsmembership, governance, proof-nfts, education
ICRC-37NFT metadatamembership, governance, proof-nfts, education

Authentication

The platform supports multiple authentication methods:

  1. Internet Identity - Passwordless, device-based
  2. Email/Password - Traditional auth with Argon2id hashing
  3. OAuth Providers - Google, Apple, Microsoft, GitHub, Discord

Development Workflow

  1. Pick a story from the sprint backlog
  2. Read the story context for technical details
  3. Implement following our coding patterns
  4. Write tests (PocketIC for backend, Vitest for frontend)
  5. Run validations to ensure no regressions
  6. Submit PR following our contributing guidelines

Frontend Application Split (FAS)

The FAS project decomposes the monolithic frontend into 6 independently deployable suites consuming 3 shared packages published to GitHub Packages.

Total: 8,628 tests across 6 suites (0 failures, 0 skipped).

DocumentDescription
FAS Architecture OverviewPackage/suite architecture, 3 auth patterns, dependency diagrams, CI/CD pipeline, cross-suite auth
FAS Repository MapAll 6 suites + 3 packages + template, "where do I make changes?" reference, package dependency tooling
FAS Local Setup GuideGitHub Packages auth, suite-specific setup (all 6 suites), oracle-bridge, npm link workflow
FAS Suite Creation GuideCreating new suites, real-world examples, suite patterns, production deployment checklist
FAS TroubleshootingIssues from FAS-1 through FAS-8.1: GitHub Packages, CI/CD, builds, SEO, Phaser.js, SSO, CSP, deployment
FAS Cross-Suite Auth DebuggingCookie domain verification, session validation, redirect loop diagnosis, logout testing, DevTools inspection
FAS Rollback ProceduresSuite-specific rollback, package rollback, DNS rollback, verification checklists

New Developer Onboarding Path

Follow this path to make your first PR within 1 week (NFR16):

  1. Day 1: Understand the architecture

  2. Day 2: Set up your local environment

    • Follow FAS Local Setup Guide -- get one suite running locally
    • Run tests: npm test -- verify everything passes
  3. Day 3-4: Make your first change

    • Pick a small task (component fix, test addition, documentation update)
    • Edit code, write or update tests, run npm test
    • Use the Troubleshooting Guide if you get stuck
  4. Day 5: Create your PR

    • Commit your changes with a conventional commit message
    • Push to a feature branch and create a pull request
    • Address code review feedback
  5. Day 6-7: Iterate and land

    • Respond to reviewer comments
    • Ensure CI passes (lint, typecheck, test, build)
    • Merge when approved

Goal: First PR merged within 1 week of onboarding.

FAS Quick Start

bash
# 1. Configure GitHub Packages auth
echo "@hello-world-co-op:registry=https://npm.pkg.github.com" >> ~/.npmrc
echo "//npm.pkg.github.com/:_authToken=YOUR_GITHUB_PAT" >> ~/.npmrc

# 2. Clone and run a suite
git clone https://github.com/Hello-World-Co-Op/foundery-os-suite.git
cd foundery-os-suite
cp .env.example .env.local
npm install && npm run dev

See the FAS Local Setup Guide for detailed instructions including suite-specific requirements.

Need Help?

Hello World Co-Op DAO