Skip to content

tienviet10/Food-Pickup

Repository files navigation


FoodWise

Food Wise (Pick-up Ordering)

Food Pick-up Ordering is a full stack web application built with Node.js and Express.js that allows users to create pick up orders for their favorite restaurants.

Final ProductDependenciesGetting StartedDeploymentAuthorsAcknowledgement

Final Product

  1. Home Page:
  • Designed with Bootstrap and CSS
  • Cool features: a spinning animation of our FoodWise logo, and carousel with multiple restaurant logos

  1. Menu page (Customer view):
  • Stripe payment (add a new credit card or use a stored credit card)
  • Custom middleware to protect routes

  1. Restaurant owner (Rstaurant view):
  • Ordering system powered by a real-time, bi-directional communication (Socket.io)
  • Live in-app notification with Socket.io
  • Schedule jobs for execution at specific dates (node-schedule)

  1. SMS Message (notification):
  • SMS communication through a modern telecomm API (Twilio)

Dependencies

Dependencies

Dev-dependencies

Database

The PostgreSQL schema ERD:

erd drawio

Getting Started

Prerequisites:

Server:

  1. Connect to your postgres server
$ psql -U vagrant -d template1
  1. Create the necessary objects in the Database
$ CREATE ROLE labber WITH LOGIN password 'labber';
$ CREATE DATABASE midterm OWNER labber;
  1. Create a folder and clone this repository
$ git clone https://github.com/tienviet10/Food-Pickup.git
  1. Move to the correct directory
$ cd Food-Pickup
  1. Install dependencies
$ npm install
  1. Create a .env file according to the template below
STRIPE_PRIVATE_KEY=
SESSIONKEY1=
SESSIONKEY2=
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_PHONE=
DB_HOST=localhost
DB_USER=labber
DB_PASS=labber
DB_NAME=midterm
DB_PORT=5432
API=http://localhost:8080/
  1. Reset the database
$ npm run db:reset
  1. Run the development web server
$ npm run local

Deployment

Authors

Acknowledgement

  • Home page and restaurant page was created based on a template designed by HTML Codex and distributed by ThemeWagon.
  • Login page and registration page were created based on a template designed by Rok Krivec