An online marketplace simulating a digital store inventory with a user account system that allows users to place an order for items/services and checkout. This store allows a user to:
- Create an account
- Log in & Edit an account
- Add items to a cart
- Update and remove Items from the cart
- Submit an order.
- View placed order.
- View all orders placed from that account.
To use this project, you'll need to do the following:
-
Clone this repository onto your computer or upload it to heroku.
-
If you're running it locally on your pc, also perform these steps:
- run
npm i
from the terminal (this will install the npm modules: dotenv, bcrypt, connect-session-sequelize, express, express-handlebars, express-session, mysql2, passport, sequelize and validator) - create the mysql database using the
schema.sql
file - create a
.env
file with your MySQL Database password in the following format (this was included in the.gitignore
file to prevent the password from being exposed on Github):
# Database Connection Url for connectioning to your local database. DEV_DATABASE_URL='mysql://[db_username]:[db_password]@[db_host]/[db_name]'
- run
This file will be imported by config/config.json
while running on your computer locally because of the following changes to the config/config.json
file.
{
"development": {
"use_env_variable": "DEVELOPMENT_DB_URL"
},
"test": {
"use_env_variable": "TEST_DB_URL",
"dialect": "mysql"
},
"production": {
"use_env_variable": "JAWSDB_URL"
}
}
- run 'server.js' to dynamically create the required tables
- seed the newly created database tables with the
seeds.sql
file
Dependencies:
- bcrypt - library to hash passwords.
- connect-session-sequelize - Sequelize SessionStore for Express/Connect
- dotenv - Loads environment variables from .env for nodejs projects.
- express - Fast, unopinionated, minimalist web framework for node.
- express-handlebars - Handlebars view engine for Express
- express-session - session middleware for Express
- mysql2 - MySQL client for Node.js
- passport - Authentication for Node.js.
- sequelize - promise-based Node.js ORM
Devevelopment Dependencies:
- nodemon - Monitors for any changes and automatically restarts the server on
.js
save. - prettier-standard - Project linting
-
Mike Gullo
- Email: [email protected]
- Portfolio
- GitHub
-
Michelle William
- Email: [email protected]
- GitHub
-
Vincent Shury
- vshury.com Portfolio
- GitHub Profile
- @VincentShury Twitter
Email any of the contributors listed above for more info about this project