danymdany / MoodFoodChat

MoodFood is an AI-driven food app powered by GPT4 technology designed to revolutionize your cooking experience. Our powerful features streamline meal planning, inspire culinary creativity, and enhance your dining experience. Discover the future of food with MoodFood and join our growing community.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ” MoodFoodChat

MoodFood is an AI-driven food app powered by GPT4 technology designed to revolutionize your cooking experience.

forthebadge forthebadge

πŸ”΄ Live demo here

Our powerful features streamline meal planning, inspire culinary creativity, and enhance your dining experience. Discover the future of food with MoodFood and join our growing community.

πŸš€ Getting Started

This guide will walk you through the steps to set up the project locally.

Prerequisites

  • Node.js (version 14 or higher)
  • MongoDB
  • Git

Clone the Repository

git clone https://github.com/<username>/moodfood.git

Setup Backend

  1. Navigate to the api folder and create a .env file by copying the .env.example file:
cd moodfood/api
cp .env.example .env

  1. Open the .env file and replace the values with your own:
MONGODB_URI=<your-mongodb-uri>
FRONTEND_BASE_URL=http://localhost:3000
BACKEND_BASE_URL=http://localhost:3030
COOKIE_KEY=<your-cookie-key>
OPENAI_API_KEY=<your-openai-api-key>

  1. Install the dependencies and start the server:
npm install
npm start

The server will start on port 3030.

Setup Frontend

  1. Open a new terminal window and navigate to the app folder:
cd ../app

  1. Create a .env file by copying the .env.example file:
cp .env.example .env

  1. Open the .env file and replace the values with your own:
REACT_APP_API_BASE_URL=http://localhost:3030/api

  1. Install the dependencies and start the application:
npm install
npm start

The application will start on port 3000. Open your web browser and navigate to http://localhost:3000 to view the application.

πŸ“¦ Packages

Our application uses a number of packages to work properly. Here's a list of some key packages we use:

Backend

Backend

  • @aws-sdk/client-dynamodb: AWS SDK for JavaScript, for interacting with Amazon DynamoDB.
  • @mailchimp/mailchimp_transactional: The official Mailchimp transactional (formerly Mandrill) module.
  • aws-sdk: AWS SDK for JavaScript in the browser and Node.js.
  • axios: Promise-based HTTP client for the browser and node.js.
  • axios-rate-limit: Apply a simple rate limit to axios requests.
  • body-parser: Node.js body parsing middleware.
  • body-parser-rawbody: Middleware for express that stores the raw body before it gets parsed.
  • busboy: A streaming parser for HTML form data for node.js.
  • cheerio: Implementation of core jQuery designed specifically for the server.
  • connect-mongo: MongoDB session store for Express and Connect.
  • cookie-parser: Cookie parsing with signatures.
  • cookie-session: Simple cookie-based session middleware.
  • cors: Middleware for enabling CORS (Cross-Origin Resource Sharing).
  • dd-trace: Datadog APM tracing client for Node.js.
  • dotenv: Loads environment variables from .env file.
  • express: Fast, unopinionated, minimalist web framework for Node.js.
  • express-session: Session middleware for Express.
  • googleapis: Google's officially supported node.js client library for using Google APIs, with support for authorization and authentication.
  • jsonwebtoken: An implementation of JSON Web Tokens.
  • langchain: Unofficial LangChain client for Node.js.
  • mongoose: MongoDB object modeling tool designed to work in an asynchronous environment.
  • multer: Middleware for handling multipart/form-data, primarily used for file upload.
  • multer-s3: Amazon S3 storage engine for multer.
  • node-cron: Tool that allows you to execute something on a schedule.
  • node-mailjet: Mailjet API client for Node.js.
  • nodemon: Simple monitor script for use during development of a node.js app.
  • openai: OpenAI's API client for node.js.
  • pg: Non-blocking PostgreSQL client for Node.js.
  • pg-hstore: A node package for serializing and deserializing JSON data to hstore format.
  • socket.io: Node.js realtime framework server.
  • stripe: Stripe official library for Node.js.
  • tiktoken: A library to see how many tokens are in a text string without making an API call.
  • util: Node.js util module.
  • winston: A logger for just about everything.

Frontend

  • @emotion/react: A library designed for writing css styles with JavaScript.
  • @emotion/styled: CSS-in-JS library designed for styling React component systems.
  • @mui/icons-material: This package provides the Google Material icons packaged as a set of React components.
  • @mui/lab: This package hosts the incubator components which are in research and development phase.
  • @mui/material: React components that implement Google's Material Design.
  • @stripe/react-stripe-js: Stripe.js and Elements for React applications.
  • @stripe/stripe-js: The official Stripe.js library.
  • @testing-library/jest-dom: Custom jest matchers to test the state of the DOM.
  • @testing-library/react: Simple and complete React DOM testing utilities that encourage good testing practices.
  • @testing-library/user-event: Simulate user events for react-testing-library.
  • axios: Promise based HTTP client for the browser and node.js.
  • dotenv: Loads environment variables from .env for nodejs projects.
  • install: Minimal JavaScript module loader.
  • js-cookie: A simple, lightweight JavaScript API for handling cookies.
  • lodash: A modern JavaScript utility library delivering modularity, performance & extras.
  • npm: Package manager for JavaScript and the world’s largest software registry.
  • public-ip: Get your public IP address.
  • react: A declarative, efficient, and flexible JavaScript library for building user interfaces.
  • react-dom: Serves as the entry point to the DOM and server renderers for React.
  • react-helmet: A document head manager for React.
  • react-router-dom: DOM bindings for React Router.
  • react-scripts: Scripts and configuration used by Create React App.
  • react-speech-recognition: A React hook that converts speech from the microphone to text.
  • socket.io-client: The client-side library for Socket.IO.
  • web-vitals: A tiny, modular library for measuring all the Web Vitals metrics on real users, in a way that accurately matches how they're measured by Chrome and reported to other Google tools.

πŸ‘€ Author

πŸ‘€ Mehyar Swelim (mehyar500)

πŸ“ License

This project is under the ISC license.

🀝 Show Your Support

Give a ⭐️ if you like this project!

About

MoodFood is an AI-driven food app powered by GPT4 technology designed to revolutionize your cooking experience. Our powerful features streamline meal planning, inspire culinary creativity, and enhance your dining experience. Discover the future of food with MoodFood and join our growing community.


Languages

Language:HTML 89.5%Language:JavaScript 10.5%Language:CSS 0.0%