🍽️ FoodRescue - Surplus Food Management System
A web platform connecting restaurants with NGOs to reduce food waste and help communities in need. Built by Team Aryavarti - Hail Aryavart!
🌟 Overview
FoodRescue tackles the global food waste crisis by creating a real-time bridge between restaurants with surplus food and NGOs serving communities in need. We're turning waste into hope, one meal at a time.
The Problem: 33% of all food produced globally is wasted while millions go hungry daily.
Our Solution: A seamless platform that enables restaurants to donate surplus food and NGOs to quickly claim and distribute it to those in need.
🚀 Features
For Restaurants 🏪
- Post Surplus Food - Easy form to list available food items
- Smart Expiry Tracking - Automatic categorization (High/Medium/Low perishable)
- Location-based Matching - Connect with nearby NGOs
- Impact Dashboard - Track your food rescue contributions
- Real-time Notifications - Get alerts when food is claimed
For NGOs 🤝
- Browse Available Food - View nearby food donations on interactive map
- Quick Claim System - One-click food claiming process
- Direct Communication - Contact restaurants for pickup coordination
- Real-time Updates - Instant notifications for new food posts
🛠️ Tech Stack
Frontend
- React 18 - Modern UI framework with hooks
- Vite - Fast build tool and dev server
- CSS3 - Custom animations and responsive design
- React Leaflet - Interactive maps and location services
- JavaScript ES6+ - Modern JavaScript features
Backend
- Node.js - Runtime environment
- Express.js - Web application framework
- REST API - Stateless API architecture
- CORS - Cross-origin resource sharing
Development Tools
- Git - Version control
- ESLint - Code linting
- Nodemon - Development server auto-restart
📦 Installation & Setup
Prerequisites
- Node.js (v14 or higher)
- npm or yarn package manager
Quick Start
- Clone the repository
```bash
git clone
cd food-rescue
⚙️ Installation & Setup
Install Dependencies
npm install
Start Development Servers
Terminal 1 – Backend Server npm run dev:server
Server runs on: http://localhost:5000
Terminal 2 – Frontend Development npm run dev
Frontend runs on: http://localhost:5173
Access the application at: http://localhost:5173
🎯 How It Works
🥗 Food Categorization System
| Category | Examples | Auto-Expiry |
|---|---|---|
| 🔴 High Perishable | Milk, salads, seafood, cut fruits | 2 hours |
| 🟡 Medium Perishable | Curries, rice, bread, cooked vegetables | 6 hours |
| 🟢 Low Perishable | Dry snacks, biscuits, packaged food | 24 hours |
👨🍳 User Journey
For Restaurants:
- Register/Login as Restaurant
- Go to Dashboard → "Post Food" tab
- Fill food details (name, quantity, location, expiry)
- Submit → Food becomes available to nearby NGOs
For NGOs:
- Register/Login as NGO
- View available food on dashboard
- Click "Claim" on desired items
- Contact restaurant for pickup coordination
📱 Demo Access
| Role | Password | |
|---|---|---|
| Restaurant Demo | restaurant@demo.com | any password |
| NGO Demo | ngo@demo.com | any password |
🗺️ Supported Locations
Currently serving Jalandhar, Punjab with demo data including:
Restaurants: Pizza Hut, McDonald's, Domino's, KFC
NGOs: Robin Hood Army, Feeding India, No Food Waste, Roti Bank
🔧 API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health | Server status check |
| POST | /api/auth/login | User authentication |
| POST | /api/auth/register | User registration |
| GET | /api/food-posts | Get available food listings |
| POST | /api/food-posts | Create new food post |
| PATCH | /api/food-posts/:id/claim | Claim food item |
| GET | /api/nearby/ngos | Find nearby NGOs |
| GET | /api/nearby/restaurants | Find nearby restaurants |
🏗️ Project Structure
src/
├── components/ # Reusable components
│ ├── Header.jsx
│ ├── Footer.jsx
│ ├── DarkModeToggle.jsx
│ ├── LoadingScreen.jsx
│ └── MapPicker.jsx
├── pages/ # Main application pages
│ ├── Home.jsx
│ ├── Dashboard.jsx
│ ├── About.jsx
│ ├── HowItWorks.jsx
│ ├── GetStarted.jsx
│ ├── ForUsers.jsx
│ ├── Impact.jsx
│ ├── Contact.jsx
│ └── ThankYou.jsx
├── styles/ # CSS stylesheets
│ ├── App.css
│ └── Dashboard.css
└── services/ # API services
└── api.js
🚀 Deployment
Build for Production npm run build
Preview Production Build npm run preview
🤝 Contributing
We welcome contributions! Please feel free to:
- Submit pull requests
- Report bugs
- Suggest new features
Development Guidelines
- Fork the repository
Create a feature branch
git checkout -b feature/amazing-featureCommit your changes
git commit -m "Add amazing feature"Push to the branch
git push origin feature/amazing-feature
Copy code
- Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
👥 Team Aryavarti-Manish Tiwari
Motto: Hail Aryavart 🇮🇳
🌟 Acknowledgments
- Inspired by the global movement against food waste
- Thanks to all restaurants and NGOs working to feed communities
- Built with passion to create social impact through technology
🚀 Every meal saved makes a difference. Join us in turning waste into hope!
Built With
- cors
- css3
- es6
- eslint
- express.js
- git
- javascript
- jwt
- leaflet.js
- node.js
- react
- restapi
- vite
Log in or sign up for Devpost to join the conversation.