Reducing food waste, one meal at a time
A comprehensive mess optimization and food waste management platform that connects college mess halls with nearby NGOs to minimize food waste, streamline operations, and enable smart donation coordinationโbacked by real-time feedback, location-based NGO discovery, and data-driven insights.
Every day, college mess halls across India waste thousands of kilograms of perfectly good food while millions go hungry nearby. The challenges:
- Overproduction and poor meal planning lead to massive food waste
- No real-time tracking of what's being wasted or why
- Zero connection to local NGOs who could redistribute excess food
- Students' feedback on meal quality gets lost in paperwork
- No location-based system to find and coordinate with NGOs quickly
- No data-driven insights to optimize mess operations and reduce waste
ZeroPlate is a comprehensive mess optimization and NGO coordination platform built with Next.js. Three core innovations:
- Track daily food waste by meal type, dish, and quantity
- Beautiful charts powered by Recharts reveal waste patterns and trends
- Sentiment analysis on student feedback shows why food is being wasted
- Data-driven insights help optimize meal planning and reduce overproduction
- Interactive Leaflet maps show nearby NGOs accepting food donations in real-time
- Smart filters: Search by distance (up to 50km), food type preferences, and NGO capacity
- One-click scheduling: Complete NGO contact details for instant coordination
- 10 verified NGOs across major Indian cities (Delhi, Mumbai, Bangalore, Chennai, Kolkata, etc.)
- Zero API costs using OpenStreetMap with precise geolocation
- Students use Web Speech API for instant voice-to-text feedback
- Automatic transcription eliminates typing friction
- Admins access all feedback with automated sentiment classification
- Real-time insights improve mess operations and student satisfaction
- ๐ฑ Easy Feedback: Submit feedback in seconds with emoji ratings
- ๐ค Voice Input: Use voice-to-text for quick insights ("The daal was too salty")
- ๐ Dashboard: View mess hall wastage statistics in real-time
- ๐ Secure Login: Google OAuth and Email authentication
- ๐ Mess Optimization Dashboard: Real-time analytics for waste reduction
- ๐ Beautiful Charts: Ratings over time, sentiment distribution, most wasted dishes
- ๐๏ธ Wastage Tracker: Log daily waste by dish, meal type, and quantity with trend analysis
- ๐ค Feedback Insights: Browse student voice transcripts with automated sentiment analysis
- ๐บ๏ธ NGO Locator: Interactive map to find nearby NGOs by distance and food type preferences
- ๐ Instant Coordination: Direct contact details for quick donation scheduling
- ๐ฅ Role Management: Separate student and admin views with secure access control
- ๐ Location-Based Discovery: Be found by nearby mess halls
- ๐ฑ Food Type Matching: Accept specific food categories (cooked, raw, packaged)
- ๐ Direct Contact: Phone and email for quick coordination
- ๐ Capacity Tracking: Display available capacity to donors
- Frontend: Next.js 14 (App Router), React 18, TypeScript
- Styling: Tailwind CSS (mobile-first, responsive design)
- Backend: Firebase Authentication, Firestore Database
- Charts: Recharts for data visualization
- Maps: Leaflet + React-Leaflet with OpenStreetMap (no API costs)
- Icons: Lucide React (professional UI)
- Voice: Web Speech API for voice-to-text transcription
ZeroPlate/
โโโ app/
โ โโโ page.tsx # Landing page with hero section
โ โโโ layout.tsx # Root layout with global state
โ โโโ globals.css # Global Tailwind styles
โ โโโ feedback/page.tsx # Student feedback form with voice
โ โโโ dashboard/page.tsx # Admin analytics dashboard
โ โโโ donate-food/page.tsx # NGO donation locator with map
โ โโโ login/page.tsx # Login page (Email + Google)
โ โโโ signup/page.tsx # Signup with role selection
โ โโโ not-found.tsx # Custom 404 page
โโโ components/
โ โโโ Header.tsx # Navigation with auth dropdown
โ โโโ DashboardProtection.tsx # Admin route guard
โ โโโ OverviewCards.tsx # Dashboard metrics cards
โ โโโ WastageStats.tsx # Wastage statistics display
โ โโโ WastageTracker.tsx # Daily waste logging form
โ โโโ FeedbackTable.tsx # Recent feedback table
โ โโโ SpeechInsight.tsx # Voice-to-text component
โ โโโ NearbyNGOs.tsx # NGO list with filters
โ โโโ InteractiveMap.tsx # Leaflet map component
โ โโโ DonationCard.tsx # Donation scheduling modal
โ โโโ ImpactMetrics.tsx # Environmental impact dashboard
โ โโโ charts/
โ โโโ RatingsChart.tsx # Line chart for ratings
โ โโโ SentimentChart.tsx # Pie chart for sentiment
โโโ lib/
โ โโโ firebase.ts # Firebase config & exports
โ โโโ auth.ts # Authentication helpers
โ โโโ ngo.ts # NGO data model & 10 mock NGOs
โ โโโ location.ts # Haversine distance calculations
โ โโโ gtag.ts # Google Analytics (optional)
โโโ middleware.ts # Route protection middleware
โโโ firestore.rules # Firestore security rules
โโโ tailwind.config.js # Tailwind configuration
โโโ tsconfig.json # TypeScript config
โโโ package.json
- Node.js 18+ and npm
- Firebase account (free tier)
- Modern browser with Web Speech API support (Chrome recommended)
git clone https://github.com/AkshMaheshwari/ZeroPlate.git
cd ZeroPlate
npm install- Create a Firebase project at Firebase Console
- Enable Firestore Database in test mode
- Enable Authentication with Email/Password and Google providers
- Copy your Firebase config from Project Settings
- Create
.env.localin root directory:
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key_here
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id_here
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id_here
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id_hereCopy the contents of firestore.rules to your Firebase Firestore Rules in the console.
npm run devOpen http://localhost:3000 in your browser.
- Student Account: Sign up with email, select "Student" role
- Admin Account: Sign up with email, select "Mess Admin" role
- Login/Signup โ Choose "Student" role
- Dashboard โ View current wastage statistics
- Feedback โ
- Select meal type (Breakfast/Lunch/Dinner/Snacks)
- Enter dish name
- Rate with emoji (๐ Great, ๐ Good, ๐ Okay, ๐ Poor)
- Add comments or use voice-to-text ("Get Insight" button)
- Submit feedback
- Login/Signup โ Choose "Mess Admin" role
- Dashboard โ
- View overview cards (avg rating, sentiment, waste estimate)
- Track daily wastage with the wastage tracker
- Analyze trends with charts
- Browse student feedback with sentiment analysis
- Donate Food โ
- View interactive map of nearby NGOs
- Filter by distance, food type, and capacity
- Schedule donations with NGO contact details
"Every day, college mess halls waste thousands of kg of food while millions go hungry nearby. ZeroPlate solves this through mess optimization and location-based NGO coordination."
Show the challenges: overproduction, no tracking, zero NGO connections, no location-based discovery, lost feedback.
- Mess Optimization - Real-time waste tracking and analytics
- NGO Location Mapping - Interactive maps with distance-based filters
- Voice-Powered Insights - Instant voice-to-text feedback
- Student View: Dashboard โ Voice feedback submission
- Admin View: Wastage tracker โ Optimization charts โ NGO location map with filters
"Optimize mess operations, reduce waste by 50%, connect 100+ mess halls to nearby NGOs through location-based discovery, and give students a voice."
ZeroPlate features 10 verified NGOs across major Indian cities:
| NGO Name | City | State | Food Types |
|---|---|---|---|
| Hunger Free India | Delhi | Delhi | Cooked, Raw, Packaged |
| Food For Change | Mumbai | Maharashtra | Cooked, Fruits, Vegetables |
| Annamitra Foundation | Bangalore | Karnataka | Cooked, Packaged |
| Seva Vihar | Chennai | Tamil Nadu | Cooked, Raw, Fruits |
| Roti Bank India | Kolkata | West Bengal | Cooked, Packaged |
| Akshaya Patra | Hyderabad | Telangana | Cooked, Raw |
| Smile Foundation | Pune | Maharashtra | Cooked, Fruits, Vegetables |
| Midday Meal Scheme | Jaipur | Rajasthan | Cooked, Raw, Packaged |
| Urban Food Bank | Lucknow | Uttar Pradesh | Cooked, Packaged |
| Compassion Kitchen | Ahmedabad | Gujarat | Cooked, Fruits, Vegetables |
- Mess Optimization: Data-driven insights reduce food waste and improve meal planning
- Location-Based NGO Discovery: Interactive maps with distance filters (up to 50km radius)
- Zero API Costs: Uses free Leaflet + OpenStreetMap for precise geolocation
- Serverless: Fully powered by Firebase (scales automatically)
- Mobile-First: Responsive design works on all devices with hamburger navigation
- Secure: Firestore rules enforce role-based access control
- Fast: Next.js App Router with optimized performance
- Professional UI: Lucide icons and Tailwind CSS throughout
- Real-time notifications for admins
- Export analytics reports as PDF
- Multi-mess support with organization accounts
- NGO verification system with ratings
- Integration with food tracking IoT devices
- Historical trend analysis (weekly/monthly/yearly)
- Mobile app (React Native)
- Gamification for students (sustainability points)
This is a hackathon project, but contributions are welcome! Feel free to:
- Open issues for bugs or feature requests
- Submit pull requests
- Suggest improvements
ZeroPlate Team
- Aksh Maheshwari - Full Stack Development
- Aditi Agrawal - Ai Integration + Ui Development
MIT License - Feel free to use for educational and hackathon purposes.
- Firebase for backend infrastructure
- Leaflet for mapping capabilities
- OpenStreetMap contributors
- Next.js team for the amazing framework
Made with โค๏ธ to reduce food waste and save our planet ๐
"Where zero waste meets maximum impact"