Skip to content

Tanishpandey/ReservePlate

Repository files navigation

ReservePlate - Food Redistribution Platform

ReservePlate is a full-stack web application designed to reduce food waste by connecting restaurants with customers interested in purchasing leftover food at a discounted price. The platform allows restaurants to publish their leftover food, and customers can browse and order based on their location and preferences. The system is built using modern web technologies to offer a seamless user experience.


Key Features

  1. Food Listing

    • Restaurants can list their leftover food with details such as type, quantity, and price.
    • Each listing includes a "reserve" button that allows customers to claim the food.
  2. Location-based Search

    • Customers can browse available food items by location, making it easy to find the nearest restaurants.
    • Users can filter food by categories such as cuisine type, dietary restrictions, etc.
  3. Real-Time Updates

    • The platform provides real-time updates to show available inventory and food reservation status.
  4. User Accounts

    • Users (both restaurant owners and customers) can create accounts, manage their reservations, and keep track of their transaction history.
  5. Admin Dashboard

    • An admin panel allows the platform administrator to manage users, food listings, and view analytics on food distribution and waste.

How ReservePlate Works

1. Frontend: User Interface

  • Technology Stack: React.js, HTML/CSS, Bootstrap.
  • Customers can view available food, search by location, and reserve items.
  • Restaurant owners can manage their food listings, mark items as reserved, and monitor orders.

2. Backend: Data Processing and Management

  • Technology Stack: Node.js, Express.js.
  • The backend handles:
    • User authentication and session management.
    • CRUD operations for food listings and reservations.
    • Location-based search and filtering of food items.
  • Database: MongoDB for storing user data, food listings, and reservations.

3. Real-Time Functionality

  • The application uses socket-based communication (via Socket.IO) to deliver real-time updates to users.
  • As a food listing is updated or reserved, users who are browsing the site will instantly see the updated status.

4. Payment Integration (Future Enhancement)

  • A payment gateway (such as Stripe or PayPal) will be integrated for handling transactions between customers and restaurants.

Technology Stack

Frontend

  • React.js: Dynamic UI components for customer interaction and restaurant food listing management.
  • Bootstrap: For responsive design and layout.

Backend

  • Node.js: Server-side logic and API integrations.
  • Express.js: Simplifies routing and middleware for RESTful API endpoints.

Database

  • MongoDB: Stores user data, food listings, and reservation details.

Real-Time Updates

  • Socket.IO: Enables real-time communication for immediate updates to users.

How to Set Up Locally

  1. Clone the Repository
    git clone https://github.com/tanishpandey/ReservePlate.git
    cd ReservePlate
    
  2. Install Dependencies
  • Ensure you have Node.js and npm installed. If not, download and install them from the Node.js official site.

  • Install the necessary packages by running the following command in the project root directory:

    npm install
    
  1. Set Up Environment Variables
  • Create a .env file in the root directory of the project.

  • Add the following environment variables to configure your app:

    MONGO_URI=your_mongodb_connection_string
    JWT_SECRET=your_jwt_secret_key
    
  1. Run the Application Locally
  • To start the app, run the following command:
      npm start
  • The application will be available at http://localhost:3000. Open this URL in your browser to view the app.
  1. Test the Application
  • Test the platform by registering as a customer or restaurant, adding food listings, reserving food, and confirming the reservation updates in real-time.

Potential Future Enhancements

  • Payment Integration: Add payment gateways (Stripe/PayPal) to handle transactions between customers and restaurants.
  • Mobile App: Develop a mobile app for a better user experience and easier access to real-time food availability.
  • Food Waste Awareness: Implement features that help restaurants track their food waste and generate reports.
  • AI Recommendations: Use machine learning to recommend food items to customers based on their preferences and past behavior.

Contributing

  • Contributions to ReservePlate are welcome! If you have any ideas, suggestions, or improvements, feel free to fork the repository, submit a pull request, or open an issue for discussion.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors