Built with Node, Express, jQuery, SASS and PostgreSQL, Nonna on the go is food ordering experience for a single restaurant, In this case, Nonna's kitchen. Hungry clients of this fictitious restaurant can visit its website, select one or more dishes and place an order for pick-up. They will receive a notification via sms when their order is ready.
When an order is placed the restaurant receives the order via SMS. The restaurant can then specify how long it will take to fulfill it. Once they provide this information, the website updates for the client and also notifies them via SMS.
- Node 10.x or above
- NPM 5.x or above
- PG 6.x
- Chalk 2.4.2 or above
- Cookie-session 2.x or above
- Dotenv 2.x or above
- EJS 2.6.2 or above
- Express 4.17.1 or above
- Morgan 1.9.1 or above
- SASS 1.35.1 or above
- Twilio 3.83.3 or above
- Create the
.env
by using.env.example
as a reference:cp .env.example .env
- Update the .env file with your postgresSQl database credentials.
username: XXX
password: XXX
database: XXX
- Install all dependencies with
npm i
- Fix to binaries for sass:
npm rebuild node-sass
- Reset and populate the database with
npm run db:reset
- Run the server:
npm run local
- Note: nodemon is used, so you should not have to restart your server
- Visit
http://localhost:8080/
- Do not edit the
layout.css
file directly, it is auto-generated bylayout.scss
. - Split routes into their own resource-based file names, as demonstrated with
users.js
andwidgets.js
. - Split database schema (table definitions) and seeds (inserts) into separate files, one per table. See
db
folder for pre-populated examples. - Use helper functions to run your SQL queries and clean up any data coming back from the database. See
db/queries
for pre-populated examples. - Use the
npm run db:reset
command each time there is a change to the database schema or seeds.- It runs through each of the files, in order, and executes them against the database.
- Note: you will lose all newly created (test) data each time this is run, since the schema files will tend to
DROP
the tables and recreate them.