Skip to content

Ecommerce web application using Express, Handlebars, MySQL, and Passport with Passport-local Strategy. Sequelize ORM with Sessions.

Notifications You must be signed in to change notification settings

Vincent440/emarketplace

 
 

Repository files navigation

eMarketplace

JavaScript Style Guide

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.

Getting Started

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]'

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

Our MySQL database layout for this project:

MySQL Layout


NPM Packages used in this project

Dependencies:

Devevelopment Dependencies:

  • nodemon - Monitors for any changes and automatically restarts the server on .js save.
  • prettier-standard - Project linting

Contributors

Email any of the contributors listed above for more info about this project

About

Ecommerce web application using Express, Handlebars, MySQL, and Passport with Passport-local Strategy. Sequelize ORM with Sessions.

Topics

Resources

Stars

Watchers

Forks

Languages

  • Handlebars 55.1%
  • JavaScript 42.3%
  • CSS 2.6%