As we are going to learn about the core functions of our app, we need to design its controllers so that we have REST endpoints to perform tasks from our client. Things such as product listing, product searching, add to cart, placing orders, and processing shipments can be done with one dedicated controller for each function. These controllers will be responsible for performing actions on the database, so we need to model classes for the related tables. Let's get to work!