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`.