Skip to content

Amir-Hackett/e-commerce-back-end

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-commerce Back End

Description

Build the back end for an e-commerce site. Take a working Express.js API and configure it to use Sequelize to interact with a MySQL database.

Contents

Usage

GIVEN a functional Express.js API

  • WHEN I add my database name, MySQL username, and MySQL password to an environment variable file
    • THEN I am able to connect to a database using Sequelize
  • WHEN I enter schema and seed commands
    • THEN a development database is created and is seeded with test data
  • WHEN I enter the command to invoke the application
    • THEN my server is started and the Sequelize models are synced to the MySQL database
  • WHEN I open API GET routes in Insomnia for categories, products, or tags
    • THEN the data for each of these routes is displayed in a formatted JSON
  • WHEN I test API POST, PUT, and DELETE routes in Insomnia
    • THEN I am able to successfully create, update, and delete data in my database

Video Description

  • Tags
Tags.mp4
  • Categories
Cat.mp4
  • Products
Products.mp4

Database Models

  • Category

    • id

      • Integer
      • Doesn't allow null values
      • Set as primary key
      • Uses auto increment
    • category_name

      • String
      • Doesn't allow null values
  • Product

    • id

      • Integer
      • Doesn't allow null values
      • Set as primary key
      • Uses auto increment
    • product_name

      • String
      • Doesn't allow null values
    • price

      • Decimal
      • Doesn't allow null values
      • Validates that the value is a decimal
    • stock

      • Integer
      • Doesn't allow null values
      • Set a default value of 10
      • Validates that the value is numeric
    • category_id

      • Integer
      • References the category model's id
  • Tag

    • id

      • Integer
      • Doesn't allow null values
      • Set as primary key
      • Uses auto increment
    • tag_name

      • String
  • ProductTag

    • id

      • Integer
      • Doesn't allow null values
      • Set as primary key
      • Uses auto increment
    • product_id

      • Integer
      • References the product model's id
    • tag_id

      • Integer
      • References the tag model's id

Built With

  • MySQL 2
  • Node.js
  • Express.js
  • Sequelize
  • Dotenv
  • JavaScript

Instructions

  • Add a .env file to the root of the app with the following details
DB_NAME='ecommerce_db'
DB_USER='root'
DB_PW='xxx'

Installation

Node.js and MySQL are required

Install dependencies

npm init --y

Open up MySQL and use

source db/schema.sql

Quit MySQL and then run the following in the terminal

npm run seed

Start the app by running the following in the terminal

npm start

Credits

  • Created by Amir Hackett

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published