Full stack web application built with Node, Express, AJAX, Twilio API, jQuery, HTML5, CSS3 and PosgreSQL.
An application built to simplify online food ordering for pickup.
Desired users are restaurant owners and customers:
-
Restaurant owners can register and login to see their orders. They will recieve a phone call every time an order is made online.
- They can then either accept or decline the order.
- Over the phone, they specify how long the order will take to prepare.
- This triggers a notification to the customer with estimated preparation time via SMS.
- The restaurant owner can then see the orders online, with a countdown timer based on the estimated preparation time.
- They can mark an order as complete when the food has been prepared, which sends a notification to the customer.
-
Customers can order from the restaurant menu online.
- They are notified when the order has been accepted and how long it will take.
- They are notified again when the food is ready.
Install all dependencies (using the npm install
command).
Setup the database:
- Run
knex migrate:latest
in your terminal. - Optional: Set up dummy-data by running
knex seed:run
in your terminal.
To use the voice/sms features:
- Install the google chrome extension, Forward : https://chrome.google.com/webstore/detail/forward-link-to-localhost/ghnicdmecgkdbledgnmbbnddfnjjgegp?hl=en
- Create a tunnel to your localhost and open it.
- Go to Twilio and sign up for a new account.
- Get a Twilio phone number.
- Create a new Twiml App in the console, and set the request URL to your tunneled address.
- Create a
.env
file and set the variables with your Twiml info. TWILIO_ACCOUNT_SID=XXXXXXXXX TWILIO_AUTH_TOKEN=XXXXXXXX TWILIO_NUMBER=+1XXXXXXXXXX TEST_NUMBER=+1XXXXXXXXXX
Run the development web server using the 'npm start' command.
As a restaurant owner: Visit the page: http://localhost:3000/ in your browser.
As a user: Visit the page: http://YOUR_APP_NAME.fw.wf in your browser.
- bcrypt 1.0.2 or above
- body-parser 1.17.2 or above
- cookie-session 2.0.0-beta.2
- cookie-parser 1.4.3 or above
- dovenv 4.0.0 or above
- ejs 2.5.6 or above
- express 4.15.3 or above
- express-basic-auth 1.1.1 orabove
- morgan 1.8.2 or above
- node 5.10.x or above
- pg 7.0.2 or above
- request 2.81.0 or above
- twilio 3.5.0 or above
Customer view: Adding Items to the cart
Customer view: Waiting for SMS
Restaurant owner view: Register