Nowihy / foody

Foody is food delivery platform that offers a seamless and personalized dining experience. Users can effortlessly discover nearby restaurants, place orders, and track delivery status.

Home Page:https://foody-31cd.onrender.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Foody

Node.js badge MongoDB badge Express badge

Foody is a backend service that powers the Foody food delivery application. Foody allows users to browse restaurants, view menu items, place orders, and track deliveries. The API is built using Node.js, Express.js, and MongoDB. The app also implements authentication, authorization, security, payments and email features.

🚀 Getting Started

To run this project locally, you need to have Node.js and MongoDB installed on your machine.

Prerequisites

  • Node.js
  • MongoDB
  • NPM or Yarn
  • JavaScript

Installation

  1. Clone this repo to your local machine using git clone https://github.com/<your-username>/foody.git.
  2. Go to the project directory using cd foody.
  3. Install the dependencies using npm install or yarn install.
  4. Create a .env file in the root folder and add the following environment variables:

NODE_ENV=development PORT=3000 DATABASE=<your-mongodb-connection-string> DATABASE_PASSWORD=<your-mongodb-password> JWT_SECRET=<your-jwt-secret> JWT_EXPIRES_IN=90d JWT_COOKIE_EXPIRES_IN=100 STRIPE_SECRET_KEY=<your-stripe-secret-key>

Run the app using npm start or yarn start.
Open your browser and go to http://localhost:3000.

✨ Features

User registration and login with JWT authentication
Password reset with email verification
User roles and permissions
User restaurant search refinement through cuisine-oriented filtering options
Restaurants suggested to users based on their present location
Restaurnt creation, update and deletion
Menu items can be created, updated or deleted by restaurant owners or admins
Placing orders for items from different restaurants, with the ability to track order details and status
New orders can only be assigned to available delivery personnel
Administrative access to viewing all placed orders
User image upload and processing
Restaurant ratings and reviews
notification system to send push notifications to users randomly every week
payment with Stripe integration
Error handling and logging

🛠️ Technologies

Node.js
Express
MongoDB
Mongoose
Bcrypt
Jsonwebtoken
Validator
Stripe
Node cron
Multer
Sharp
Morgan
Helmet
Xss

👤 Author

  • Nowihy- Initial development

About

Foody is food delivery platform that offers a seamless and personalized dining experience. Users can effortlessly discover nearby restaurants, place orders, and track delivery status.

https://foody-31cd.onrender.com


Languages

Language:JavaScript 100.0%