This week, you’ll learn about object-relational mapping (ORM), a technique that allows developers to convert data between incompatible type systems using object- oriented programming principles. You’ll work with Sequelize, an ORM library that creates a virtual object database that can be used within your code while managing a relational database. This will allow you to set up and completely manage objects using JavaScript, while Sequelize translates your code into database schema and queries using SQL. (Module 13)
You'll finish your first completely full-stack application! You’ve already built the back end for Just Tech News, a tech news website where users can post, upvote, and comment on links to news articles. Now you’ll create the front end using Handlebars.js, a popular templating engine. Your application’s codebase will also be structured to follow the Model-View-Controller (MVC) paradigm, to ensure a separation of concerns. Finally, to provide authentication, you’ll build on the password hashing from the application’s back end so that logged-in users can update and delete their posts through a special dashboard interface. (Module 14)
Configure the Sequelize ORM in a Node.js application.
Create models for categories, products, and tags in a relational database and a through table that will connect the product and tag models.
Define and implement CRUD methods, using Sequelize to interact with your models in each API endpoint through proper RESTful commands (GET, POST, PUT, DELETE).
Create and implement Sequelize associations to join tables.
Use environment variables to protect sensitive data, such as your MySQL username and password.
Structure your application following the Model-View-Controller (MVC) paradigm.
Modularize your code into separate folders for your Models, View, and Controllers to enforce separation of concerns.
Render dynamic HTML for your views using the Handlebars.js template engine.
Implement user authentication.
Configure Heroku so that you can deploy your application using a MySQL database.