Code for Compassion Campus bootcamp materials — teaching notebooks, exercises, and demo scripts for training developers to build AI tools for animal liberation, climate action, and AI safety. Students work with real movement APIs and real advocacy data from day one — no toy examples, no generic starter apps.
The bootcamp is the entry point of the Layer 1 developer pipeline: Bootcamp → Hackathon → Guild → Resident Developer Programme (RDP). The May 2026 cohort runs in Bengaluru and Mumbai.
Note
This project is part of the Open Paws ecosystem — AI infrastructure for the animal liberation movement. Explore the full platform →
graph LR
subgraph "Module 2 — Coding Foundations"
A[Vibe Coding Demo\n60–90 s live demo] --> B[Notebook 1\nTask Coding & Data]
B --> C[Notebook 2\nAPIs for Advocacy]
C --> D[Notebook 3\nAI for the Movement]
D --> E[Project Pitches\nGitHub Workflow Exercise]
end
E --> F[Guild\nTutorial Quests]
| Module | Status | Description |
|---|---|---|
| Module 2 — Coding Foundations | Shipped | Data exploration, REST APIs, LLM calls, GitHub workflow |
Students need a GitHub account, a Google account (for Colab), and an OpenRouter account (free tier) for Notebook 3. No local Python installation required.
1. Open Notebook 1 in Colab:
https://colab.research.google.com/github/Open-Paws/c4c-bootcamp/blob/main/module-2/notebooks/module-2-1-task-coding-demo.ipynb
2. Open Notebook 2 in Colab:
https://colab.research.google.com/github/Open-Paws/c4c-bootcamp/blob/main/module-2/notebooks/module-2-2-api-exercise.ipynb
3. Open Notebook 3 in Colab — add your OpenRouter API key first:
In Colab, open the Secrets panel (key icon, left sidebar), add OPENROUTER_API_KEY, then open:
https://colab.research.google.com/github/Open-Paws/c4c-bootcamp/blob/main/module-2/notebooks/module-2-3-openrouter-ai-for-advocacy.ipynb
4. Complete the Project Pitches exercise — fork the pitches directory, write a pitch, open a PR, review a classmate's.
5. For local development (instructors):
git clone https://github.com/Open-Paws/c4c-bootcamp.git
cd c4c-bootcamp
pip install jupyter matplotlib requests
jupyter notebookThe first hands-on coding module. Students go from zero to making real API calls and LLM requests using advocacy data.
| Notebook | What It Teaches | Data / APIs Used |
|---|---|---|
module-2-1-task-coding-demo.ipynb |
Cell-by-cell execution, CSV parsing, matplotlib charting | FAO animals-slaughtered data via Our World in Data |
module-2-2-api-exercise.ipynb |
HTTP GET/POST, JSON parsing, REST APIs | OpenFoodFacts (vegan product checker), JSONPlaceholder, FAO/IPCC environmental data |
module-2-3-openrouter-ai-for-advocacy.ipynb |
LLM API calls, token economics, model routing, system prompts | OpenRouter (GPT-4o-mini, Claude Haiku, Claude Sonnet) |
Supporting materials:
| Directory | Contents |
|---|---|
module-2/project-pitches/ |
Standalone GitHub workflow exercise — students fork, branch, commit, and open a PR to submit a project idea |
module-2/vibe-coding-demo/ |
Prompt examples for a 60–90 second live or recorded AI code-generation demo |
Each notebook takes approximately 45–90 minutes. The project pitches exercise takes approximately 60 minutes with instructor support.
CLAUDE.md— authoritative agent context, architecture decisions, India-specific framing notesmodule-2/CLAUDE.md— Module 2 learning arc, subdirectory index, API reference tablemodule-2/project-pitches/README.md— student-facing GitHub exercise instructionsmodule-2/project-pitches/CONTRIBUTING.md— fork/branch/PR workflow guide
Architecture
c4c-bootcamp/
├── module-2/ # Coding Foundations module
│ ├── notebooks/
│ │ ├── module-2-1-task-coding-demo.ipynb # Data exploration, matplotlib, FAO data
│ │ ├── module-2-2-api-exercise.ipynb # HTTP, JSON, REST APIs, OpenFoodFacts
│ │ └── module-2-3-openrouter-ai-for-advocacy.ipynb # LLM APIs, tokens, cost, prompts
│ ├── project-pitches/ # Fork-branch-PR exercise (publishable as separate repo)
│ │ ├── pitches/ # Student pitch submissions
│ │ ├── README.md
│ │ ├── CONTRIBUTING.md
│ │ └── .github/PULL_REQUEST_TEMPLATE.md
│ └── vibe-coding-demo/
│ └── demo-script.md # 60–90 s screen-recording demo script
├── CLAUDE.md # Authoritative agent context
├── AGENTS.md
└── .github/workflows/
├── auto-merge.yml
└── no-animal-violence.yml # Speciesist language check on all PRs
Tech stack:
| Technology | Role |
|---|---|
| Python 3 | Notebook language |
| Google Colab | Execution environment (no local install required) |
| OpenRouter | LLM API gateway (GPT-4o-mini, Claude Haiku, Claude Sonnet) |
| OpenFoodFacts API | Vegan product data |
| Our World in Data | FAO animal agriculture statistics |
| GitHub | Version control exercise platform |
Pipeline context: Bootcamp is Layer 1 of the developer pipeline. Graduates feed directly into the Guild — a paid marketplace for advocacy technology quests. Five tutorial quests serve as the post-bootcamp on-ramp (see programs/developer-training-pipeline/guild/tutorial-quests.md in the strategy repo).
- Place the notebook in
module-N/notebooks/where N is the module number. - Ensure it runs completely on Colab free tier with no local dependencies.
- Load API keys via
google.colab.userdata.get(...)— never hardcoded. - Use domain-correct terminology: farmed animal (not "livestock"), factory farm (not "farm"), slaughterhouse (not "processing facility").
- Update
module-N/notebooks/CLAUDE.mdwith a summary row for the new notebook.
Create module-N/ following the structure of module-2/. Include a CLAUDE.md in the module root and in each subdirectory.
See module-2/project-pitches/README.md and module-2/project-pitches/CONTRIBUTING.md.
All pull requests are checked for speciesist language via the no-animal-violence GitHub Action. Run locally:
semgrep --config semgrep-no-animal-violence.yamlThe May 2026 cohort is the first live delivery — Bengaluru and Mumbai. Adoption numbers will be reported here after the cohort completes.
MIT License — Copyright (c) 2026 Code for Compassion Campus.
Built by Open Paws for the animal liberation movement. Teaching materials use public datasets from Our World in Data and the OpenFoodFacts open database.
Donate · Discord · openpaws.ai · Volunteer