Inspiration
We noticed that most people don't think twice before requesting an Uber or jumping in a car, not because they don't care about the environment, but because no one has made the greener alternative visible, rewarding, or fun. Apps like Duolingo and Strava proved that gamification can change daily habits at scale. We asked ourselves: what if we applied that same model to sustainable travel? That's what inspired EcoMap.
What it does
EcoMap generates 7 different route options for any trip, spanning every practical combination of walking, biking, bus, and Uber, and assigns each one an eco score based on the exact grams of CO2 saved compared to driving. Users earn points for choosing greener routes, which accumulate on a global leaderboard. Users can also form friend groups and compete across three leaderboard tiers: solo global standings, internal group rankings, and group vs group standings worldwide. After each trip, an AI generates a personalized, witty message about the user's environmental impact to make the experience feel fun and rewarding rather than preachy.
How we built it
We divided the project into 4 parts and tackled each part one by one:
- Route Generation: Python scripts using the Google Maps Directions API to compute all 7 route combinations with real-time transit data and accurate CO2 calculations
- AI Integration: Groq's LLaMA 3.3 70B model to generate personalized eco messages for each route based on points earned
- Backend & Database: Node.js/Express REST API with MongoDB handling user profiles, trip history, points tracking, group management, and all three leaderboard views
- Frontend & Map Visualization: Web application displaying routes, leaderboards, and friend groups, with Google Maps Static API rendering each of the routes on a separate map for visualization
Challenges we ran into
- Google Maps API data processing: The API returns a complex nested structure. Extracting real scheduled transit times, handling multi-leg journeys, and cascading clock times through each step required careful data processing
- Python to Node.js communication: Getting the Python algorithm to talk to the Node.js backend cleanly was difficult, especially across different machines with different library versions and environments
- Setting up backend endpoints: Wiring up all three leaderboard views, group management, and trip completion flow was tedious and involved a lot of manual work
- Collaboration: Working through GitHub meant constantly dealing with merge conflicts across four people working on interconnected components
Accomplishments that we're proud of
- Successfully computing and displaying 7 meaningful route combinations with accurate real-world transit times and live CO2 calculations
- Building a fully functional three-tier leaderboard system with friend groups, global solo standings, and group vs group competition backed by a real database
- Getting Python, Node.js, and the frontend to communicate reliably despite the cross-language integration challenges
- The AI messages, they came out genuinely funny and creative, and we think they're what makes the app feel alive rather than just another data tool
What we learned
- API Integration: We learned a lot about the process of setting up, querying, and processing data from external APIs
- Cross Platform Communication: We learned about the process of creating JSON files and using them to communicate between different platforms.
- Backend Development: We learned a lot about hosting databases and how to use the backend to facilitate communication between the data analysis scripts and the front end.
- Frontend Development: We learned about creating many web pages and how we can design them to have the most intuitive user experience possible.
What's next for EcoMap
- Web scrapping: Create a web scraper to find private bus and train routes to allow access to a greater variety of modes of transportation.
- Website Deployment: Deploy the web application using external hosting services to make the application publicly accessible.
- Mobile Development: Develop a mobile app to allow for easy access to the application
Built With
- express.js
- google-maps
- groq
- mongodb
- node.js
- python
- python-dotenv
- react
Log in or sign up for Devpost to join the conversation.