EcoWave helps students track their carbon footprint effortlessly. Simply photograph receipts or talk to our AI assistant — we handle all the calculations and give you actionable insights.
No complex forms. No manual data entry. Just snap, speak, and reduce.
| Feature | Description |
|---|---|
| 📸 Receipt Scanner | AI-powered OCR extracts items and calculates carbon instantly |
| 🎤 Voice Assistant | Say "I drove 10km" and Eco logs it in seconds |
| 🏆 Leaderboards | Compete with classmates and campus groups |
| 📊 Analytics | Track trends, get insights, celebrate progress |
| 🎮 Gamification | Earn points, maintain streaks, unlock rewards |
| 🌐 3D Landing | Stunning Three.js particle effects |
- Node.js 18+
- Google Gemini API Key
- Clerk Account
- Neon Database
# Clone the repo
git clone https://github.com/ANAMASGARD/EcoWave.git
cd EcoWave
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.localDATABASE_URL=your_neon_connection_string
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
CLERK_SECRET_KEY=your_clerk_secret
NEXT_PUBLIC_GEMINI_API_KEY=your_gemini_key
# Optional: Voice AI
NEXT_PUBLIC_VAPI_PUBLIC_KEY=your_vapi_key
NEXT_PUBLIC_VAPI_ASSISTANT_ID=your_assistant_idnpm run db:push # Setup database
npm run dev # Start dev serverOpen http://localhost:3000 🎉
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 📸 Scan │ ──▶ │ 🤖 AI │ ──▶ │ 📊 Track │ ──▶ │ 🌱 Reduce │
│ Receipt │ │ Analysis │ │ Progress │ │ Impact │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
- Scan — Take a photo of any receipt
- Analyze — Gemini AI extracts items & calculates CO₂
- Track — View history, trends, and leaderboard position
- Reduce — Get personalized tips to lower your footprint
| You Say | Eco Does |
|---|---|
| "I drove 10km today" | Logs 1.9kg CO₂, suggests alternatives |
| "Had a burger for lunch" | Logs 1.7kg CO₂, compares options |
| "How's my day looking?" | Summarizes daily carbon |
| "Bought two t-shirts" | Logs 10kg CO₂, suggests second-hand |
| Frontend | Backend | AI/ML | Infrastructure |
|
Next.js 15 React 19 TypeScript Tailwind CSS Three.js |
Drizzle ORM PostgreSQL Server Actions Clerk Auth |
Google Gemini VAPI Voice AI ElevenLabs Deepgram |
Vercel Neon DB Edge Runtime |
ecowave/
├── app/
│ ├── landing/ # 3D WebGL landing page
│ ├── scan/ # Receipt scanner
│ ├── voice/ # Voice assistant
│ ├── history/ # Scan history
│ ├── leaderboard/ # Rankings
│ └── carbon/ # Manual logging
├── components/ # Reusable UI components
├── lib/ # Utilities & AI config
└── utils/db/ # Database schema & actions
| Category | CO₂ per Unit |
|---|---|
| Electronics | 50 kg/device |
| Clothing | 5 kg/garment |
| Meat | 5 kg/kg |
| Packaged Food | 1 kg/item |
| Fresh Produce | 0.5 kg/kg |
| Beverages | 0.5 kg/item |
Or manually:
vercel --prodAdd environment variables in Vercel Dashboard.
Contributions welcome! Some ideas:
- 🍔 Food photo scanner
- 🚗 Auto transport detection
- 📱 Social sharing
- 🌍 Multi-language support
MIT © 2024 EcoWave
Made with 💚 for the planet
By students, for students
