---
# System prepended metadata

title: Backend Task

---

# GainForest Backend Internship Challenge

**Timeline:** Aug 4, 2025 - August 10, 2025  
**Deadline:** August 10, 2025 at 11:59 PM PST  

---

## Instructions

**Evaluation Criteria:**
- Technical execution and accuracy
- Clear communication of results

## Challenge: Immutable Proof of Impact Storage
*Ensuring data integrity and permanence for environmental impact verification*

### Background
At GainForest, we collect proof of impact submissions through our ecocertain platform (https://ecocertain.xyz) to verify environmental restoration and conservation efforts. These submissions often contain external links to supporting documentation (Google Docs, YouTube videos, images, etc.) that are critical for impact verification but vulnerable to modification or deletion.

### Task
Implement an automated data archival pipeline that identifies external links in proof of impact submissions and creates immutable copies on IPFS.

**Specific Requirements:**
1. Analyze the GainForest ecocertain repository structure and proof of impact data model
2. Create a script that queries all external links for each ecocert ID
3. Implement content validation to ensure files are non-corrupted and safe
4. Upload verified content to IPFS for permanent, immutable storage
5. Update database records with IPFS hashes for future reference

**Resources:**
- Primary: https://github.com/GainForest/ecocertain
- IPFS documentation and API
- Content validation libraries for security
- Database schema documentation

**Deliverables:**
- Script with complete archival pipeline in any programming language
- Security validation module to prevent malicious file processing
- Database migration script to add IPFS hash fields
- Documentation with deployment instructions and monitoring recommendations
- Summary report on data integrity improvements and storage costs

## Questions?

We encourage you to ask clarifying questions! This demonstrates engagement and helps ensure you can showcase your best work. Feel free to ask about:
- Technical requirements or setup issues
- Data access or availability
- Expected scope or depth of analysis
- Formatting preferences for deliverables

**Contact:** team@gainforest.net

---

*Good luck! We're excited to see your unique approach to these challenges and learn about your research perspective.*