The Food Sharing Platform is a community-driven web application designed to facilitate the sharing of food between individuals. Users can donate food items, make food requests, and manage their sharing activities with others. This platform fosters social responsibility, helping individuals in need while reducing food wastage. Whether you're donating or requesting food, the platform ensures a seamless and efficient experience.
🔗 [https://bucolic-dango-3b417b.netlify.app/]
- 🔐 User Authentication: Sign up, login, and logout functionalities with support for Google and GitHub authentication.
- 🍴 Add Food: Logged-in users can add food items they wish to donate, ensuring that food items are available for sharing.
- 🥡 View Available Foods: Users can browse food items that are available for donation in their local community.
- 📩 Make Food Requests: Users can request food, which will be marked as "requested" and removed from the available list once claimed.
- ⚙️ Manage My Foods: Users can manage the food items they’ve added by updating, deleting, or checking their donation history.
- 📋 My Food Requests: Users can view all the food requests they’ve made, including donor details, pickup locations, and request dates.
- 🔒 Private Routes: Some pages are accessible only to logged-in users (e.g., Add Food, Manage My Foods, and My Food Requests).
- 🔲 Modal for Requests: A modal is used to display food details and request additional notes before submitting a request.
- React.js: JavaScript library for building the user interface.
- React Router: For handling page navigation within the app.
- Axios: HTTP client for making requests to the backend API.
- Context API: For managing user authentication state globally.
- React Modal: For displaying modals in a clean, user-friendly way.
- Tailwind CSS: A utility-first CSS framework for building responsive designs.
- Node.js: JavaScript runtime used for building the backend server.
- Express.js: Web framework for building RESTful APIs in Node.js.
- MongoDB (with MongoDB Atlas): NoSQL database used to store food data and user information.
- Mongoose: Object Data Modeling (ODM) library for MongoDB and Node.js.
- Firebase Authentication: Service for authenticating users via email/password, Google, and GitHub login methods.
Here are the essential npm packages utilized in this project:
express: Web framework to build RESTful APIs for the backend.mongoose: ODM for MongoDB to manage and query food and user data.dotenv: Loads environment variables from a.envfile.cors: Middleware to enable Cross-Origin Request Sharing.axios: HTTP client for making requests from the frontend.react-router-dom: For client-side routing in React applications.react-modal: Library for creating and managing modals in React.bcryptjs: Library for hashing user passwords before storage.jsonwebtoken: For creating and verifying JSON Web Tokens (JWTs) for secure authentication.firebase: Firebase SDK used for Google and GitHub login.
Some page create i faced too much challenge to request send data.update data ...Alhamdullilah done my project.