EcoMirror is a local-first GreenTech web application that helps individuals reflect on their environmental impact while contributing anonymously to a shared community footprint.
EcoMirror is designed for clarity, transparency, and real-world feasibilityโfavoring clean logic, thoughtful UX, and privacy-first architecture over unnecessary complexity.
- Problem Statement
- Target Users
- Key Features
- Tech Stack
- Architecture Overview
- Folder Structure
- Installation
- Usage
- Environment Variables
- API Endpoints
- Screenshots / Demo
- Roadmap
- Contributing
- License
- Author / Maintainer
Most sustainability apps either overwhelm users with data or rely on opaque โsmartโ systems that are difficult to trust and explain.
Individuals struggle to understand their personal environmental impact, and even more so, how their actions contribute meaningfully at a community level.
- Students and young professionals
- Environmentally conscious individuals
- Hackathon judges and evaluators (educational focus)
- Anyone interested in simple, transparent sustainability tracking
-
Personal Impact Dashboard
- Carbon impact (rule-based)
- Water usage and stress indicator
- Overall eco score
-
Daily Entry Logging
- Transport mode and distance
- Water usage estimates
- Simple, forgiving inputs (approximate values allowed)
-
Community Impact View
- Aggregated, anonymous statistics
- Total water saved and carbon avoided
- No leaderboards, no competition, privacy-first
-
Local-First Design
- Works offline
- No authentication required
- Personal data never leaves the device
Frontend
- React (Vite)
- Plain CSS
- Chart.js / Recharts (for visualization)
Storage
- IndexedDB (browser-based local storage)
Backend (Optional / Lightweight)
- Supabase (serverless, anonymous aggregation only)
Philosophy
- No AI
- No ML
- No prediction models
- Fully rule-based and explainable logic
EcoMirror follows a local-first + anonymous sync architecture:
- User data is stored locally in the browser using IndexedDB.
- Calculations are performed client-side using fixed factors.
- Only anonymous, aggregated numeric contributions are synced to the cloud.
- Community statistics are read-only and shared globally.
This ensures:
- Privacy by default
- Offline usability
- Minimal backend complexity
- Easy deployment and scalability
The project intentionally uses a flat structure to keep it human-readable and beginner-friendly: