⚡ Bodo
Turn your fitness activities into charitable donations. Run and get paid per km for it!
Problem Statement
Bodo connects fitness enthusiasts with charitable causes through a unique blockchain-powered escrow system. How it works:The FlowCreate a Fundraising CampaignUsers create fundraising campaigns for causes they care aboutSet a target amount and deadlineGet a shareable link to promote their campaignMake PledgesSupporters pledge money per kilometer (e.g., $1/km)Pledges are secured in a blockchain escrow systemNo money moves until fitness activities are completedConnect Fitness ActivitiesFundraisers connect their Strava account to BodoActivities are automatically synced when workouts are completedThe platform tracks distance, time, and activity typeAutomatic PayoutsWhen a fitness activity is logged, the system calculates payouts -Each supporter's pledge is processed based on the distance coveredMoney is automatically released from escrow to the fundraiserFundraisers can then donate the funds to their chosen causeKey Features Secure Escrow: All pledges are held securely until fitness goals are met Automatic Processing: No manual intervention needed - everything happens automatically Transparent Tracking: Real-time updates on campaign progress and payouts Flexible Pledging: Supporters can pledge any amount per kilometer Supports: running with more activities planned.Why It Works This platform solves the motivation problem in fitness fundraising by creating a direct connection between physical effort and charitable impact. Fundraisers are incentivised to stay active, while supporters can be confident their money will only be released when actual fitness activities are completed. The blockchain escrow ensures trust and transparency, while the Strava integration provides verified activity data, making the entire process automated and reliable.
Solution
How It's Made Tech Stack & Architecture Frontend: Next.js 14 with App Router, TypeScript, and Tailwind CSS Modern React patterns with server and client components Responsive design with mobile-first approach Real-time updates using React hooks and state management Backend: Next.js API Routes with Prisma ORM RESTful API endpoints for all core functionality PostgreSQL database with Prisma for type-safe database operations Automatic database migrations and seeding Authentication: Privy Web3 Authentication Email-based authentication with embedded wallet creation Automatic wallet address synchronization Seamless user onboarding without crypto complexity Fitness Integration: Strava API OAuth 2.0 flow for secure account connection Webhook handling for real-time activity updates Automatic token refresh and activity syncing Key Technical Challenges & SolutionsBlockchain Escrow Simulation Built a simulated escrow system using Ethers.js for demo purposes Generates realistic transaction hashes and block numbers Maintains all database relationships and business logic Easy to switch to real blockchain networks for productionReal-time Activity Processing Webhook endpoints that process Strava activities instantly Automatic payout calculations based on distance and pledge rates Database transactions ensure data consistency across multiple tablesComplex Database Relationships Designed schema to handle users, wallets, fundraises, pledges, activities, and payouts Used Prisma's powerful include/select for efficient data fetching Implemented proper foreign key relationships and cascading deletes Notable Technical Decisions Hackathon-Friendly Architecture Simulated blockchain operations to avoid RPC connection issues during development Comprehensive error handling and logging for debugging Environment variable fallbacks for missing configurations Database Design Separate Wallet model to support multiple wallet providers (Privy, manual) EscrowTransaction model for tracking blockchain operations Payout model for detailed transaction history API Design RESTful endpoints with consistent error handling Zod validation schemas for all incoming data Proper HTTP status codes and response formats Partner Technologies & Benefits Privy: Eliminated the complexity of Web3 authentication while providing embedded wallets Strava: Provided verified fitness data and real-time activity updates Prisma: Type-safe database operations with automatic migrations Tailwind CSS: Rapid UI development with consistent design system Development Process Built iteratively starting with core database schema, then adding authentication, fitness integration, and finally the escrow system. Used simulated blockchain operations to focus on user experience and business logic rather than blockchain infrastructure during the hackathon timeframe. The entire system is containerized and ready for deployment with proper environment variable configuration and database migrations.
Hackathon
ETHGlobal Cannes
2025
Contributors
- samkeshmiri
41 contributions
- exyzee
8 contributions