tristantanjh / EdenFood

EdenFood - A full-stack MERN web application to enable fresh food grocers to sell their produce online.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EventHub logo

EdenFood

CSS3 HTML5 JavaScript MongoDB Express.js React NodeJS React Router Git

Table of Contents

Project Details

EdenFood is a mobile friendly e-commerce platform designed to connect fresh food farm grocers and wet market sellers directly with consumers. The primary goal of this project is to provide a seamless online marketplace for selling and purchasing fresh produce, meats, seafood, and other locally-sourced products.

Made for NUS' IS3106 - Enterprise Systems Interface Design and Development.


Features

  • User Accounts: Users can create accounts to both purchase and list products on the platform, acting as buyers or sellers, or both simultaneously.

  • Product Listings: Sellers can easily list their fresh produce, meats, seafood, and other products, providing detailed descriptions, pricing, and availability information.

  • Inventory Management: The platform includes an intuitive inventory management system that allows sellers to track stock levels, update product availability, and manage orders efficiently.

  • Search and Filters: Users can search for specific products or apply filters based on various criteria, such as product category, seller location, or dietary preferences (e.g., organic, gluten-free, etc.).

  • Order Tracking: Both sellers and customers can track the status of orders, from placement to delivery or pickup.

  • Secure Payments: EdenFood integrates with popular payment gateways like Paypal to ensure secure and reliable transactions for customers. Recurrent monthly payment scripts are also set up to ensure sellers are paid for their items at regular and predictable intervals.

  • Delivery and Pickup Options: Customers can choose between numerous convenient delivery options.

Tech Stack and API Dependencies

Tech Stack

This project utilizes the MERN stack, which stands for MongoDB, Express.js, React.js, and Node.js. Below is a brief overview of each technology:

  • MongoDB: NoSQL database used for storing and managing data in a flexible, schema-less format. It is employed in this project to persistently store user data, application configurations, and other relevant information.

  • Express.js: A minimalist web framework for Node.js that simplifies the process of building robust web applications and APIs. In this project, Express.js is used to create the backend server, handle HTTP requests, and define the application's routing logic.

  • React.js: A JavaScript library for building user interfaces, particularly single-page applications (SPAs). The frontend of this app is built using React.js to deliver an interactive and responsive user experience.

  • Node.js: JavaScript runtime environment that allows developers to run JavaScript code on the server-side. In this project, Node.js is used to run the backend server, interact with the database, and handle business logic.

API Dependencies

EdenFood leverages several third-party API services to enhance its functionality and provide a seamless user experience. These dependencies include:

  • Mailgun: Mailgun is used for email services, primarily for sending order confirmations, delivery notifications, and other transactional emails to users, ensuring effective communication and reporting.

  • Cloudinary: Cloudinary is a cloud-based image and video management platform that EdenFood utilizes for storing and optimizing product images, seller profile pictures, and other visual assets, ensuring fast and reliable delivery of media content.

  • PayPal: EdenFood integrates with PayPal's payment gateway to facilitate secure online transactions, allowing users to conveniently purchase products from various sellers using their PayPal accounts or credit cards.

  • Google Maps Platform: EdenFood leverages the Google Maps Platform to display pickup locations for sellers, enabling users to easily locate and navigate to their preferred pickup points for self-collection orders.

Installation

  1. Ensure that you have Node.js installed, and that you have a MongoDB Atlas, Cloudinary, Google Console, Mailgun, and Paypal Developer accounts set up.
  2. Clone the repository to your local machine.
git clone https://github.com/tristantanjh/EdenFood.git
  1. Create a .env file in both the frontend and backend folders.
  • In the backend .env file, specify your port for hosting the backend server and your mongoDB Atlas database url like this:
PORT=<YOUR_PORT>
MONGO_URI=<YOUR_DATABASE_URI>
ENCRYPTION_KEY=<YOUR_ENCRYPTION_KEY> 
MAILGUN_API_KEY=<YOUR_API_KEY>
MAILGUN_DOMAIN=<YOUR_DOMAIN>
  • In the frontend .env file, specify your Cloudinary cloud name and upload preset like this:
VITE_GOOGLE_MAPS_API_KEY=<YOUR_API_KEY>
VITE_CLOUDINARY_CLOUD_NAME=<YOUR_CLOUD_NAME>
VITE_CLOUDINARY_UPLOAD_PRESET=<YOUR_UPLOAD_PRESET>
VITE_PAYPAL_CLIENT_ID=<YOUR_CLIENT_ID>

You can also follow the example .env file given in both frontend and backend folders.

  1. cd into both frontend and backend folders and run npm i on both.
  2. After these steps, do npm run dev in both the frontend and backend folders to start the servers.
  3. Visit http://localhost:5173 to explore the application!

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

EdenFood - A full-stack MERN web application to enable fresh food grocers to sell their produce online.

License:MIT License


Languages

Language:JavaScript 99.2%Language:HTML 0.4%Language:CSS 0.3%Language:EJS 0.1%