From the perspective of a customer, our online shop is now feature complete. They can browse our product catalog with the added abilities of sorting, filtering, and searching to help them find what they are looking for. They can then add their chosen products to their shopping cart before proceeding through the checkout process to pay for their order using the Stripe payment service. Finally, they can visit their account page to view a list of all of their previously placed orders.
However, right now, all of our products are hardcoded to be seeded manually into the database when the application starts. It's not ideal to need to deploy a new version of the application every time we need to add a new product, so in this chapter we're going to build a very basic admin panel where only those users with the Admin role can add new products to the catalog...