Skip to content

Latest commit

 

History

History
126 lines (68 loc) · 2.37 KB

README.md

File metadata and controls

126 lines (68 loc) · 2.37 KB

Object-Relational Mapping (ORM): E-Commerce Back End

What is this project?

This project resembles the functionallity of an Internet Retail (such as ebay.) I built the back end that uses Express.js API to use Sequelize. It interacts with a MySQL database.

The application uses API's to perform RESTful CRUD operations.

I have provided a link to a walkthrough video that demonstrates its functionality: https://drive.google.com/file/d/1ebKk-n9dwL2_Qko_nD6u42f7Q8KSGtXP/view

  • 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 Core 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 Core
  • THEN I am able to successfully create, update, and delete data in my database
### 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`.