This is a submission for the DEV Weekend Challenge: Generosity Edition.
Prize Category Targeted: Best use of Google AI 🤖
💧 What I Built
Most people genuinely want to help others, but traditional volunteering often demands fixed multi-hour commitments, and charity donations require spare capital. Many everyday acts of generosity go unperformed simply because people don't know what small action they can take with the 15 minutes or $0 budget they have right now.
Ripple is an AI-powered micro-mission engine designed to eliminate that friction.
By inputting basic constraints—such as 20 minutes of free time, a laptop, basic digital skills, or a $0 budget—Ripple generates immediate, tailored, step-by-step acts of kindness that can be executed on the spot.
🌐 Live Demo & Code
- 🚀 Live Application: https://ripple-ecru.vercel.app/
- 🐙 GitHub Repository: https://github.com/rimshacodes5/Ripple
🤖 How Google AI Powers Ripple
Ripple relies on Google Gemini 3.6 Flash (@google/genai) to dynamically translate raw user constraints into actionable missions.
1. Strict Schema Validation
Rather than receiving unstructured text, our Node.js serverless backend enforces a strict Type.OBJECT JSON schema via the Gemini SDK. This ensures Gemini returns predictable data structures containing a title, estimatedTime, cost, whyItFits rationale, and an array of 3 execution steps.
javascript
const missionSchema = {
type: Type.OBJECT,
properties: {
title: { type: Type.STRING },
estimatedTime: { type: Type.STRING },
cost: { type: Type.STRING },
whyItFits: { type: Type.STRING },
steps: { type: Type.ARRAY, items: { type: Type.STRING } }
},
required: ["title", "estimatedTime", "cost", "whyItFits", "steps"]
};
---
### 2. High-Demand API Spike Resilience
To guarantee seamless reliability during high traffic, the backend incorporates an automated exponential backoff retry loop. If Google's API returns a temporary `503 High Demand` spike, the serverless handler automatically retries up to 3 times before returning the output to the user.
---
## ✨ Features & User Experience
* **Interactive Water Reservoir:** A custom CSS glassmorphism liquid tank that fills up as you complete missions, giving immediate visual feedback for your impact.
* **Synthesized Audio Interactions:** Built with the browser's native **Web Audio API** to generate organic water-drop sound effects upon marking tasks complete without external audio assets.
* **Persistent Impact Tracker:** Uses browser `localStorage` to preserve your total impact level and complete mission history across sessions.
* **Serverless Architecture:** Decoupled deployment with static assets served via Vercel's global CDN and API requests routed through Node.js serverless functions.
---
## ❤️ Relevance to the Theme
Inspired by the theme of **Technology-Driven Giving**, Ripple reimagines generosity not as a grand, occasional event, but as a continuous daily habit. By using AI to make micro-volunteering accessible to anyone regardless of age, income, or location, Ripple proves that even the smallest action creates a lasting impact.
---
*Built with Node.js, Express, Google Gemini 3.6 Flash, HTML/CSS/JS, and deployed on Vercel.*
Top comments (0)