1. save Cart Items
    1. install js-cookie
    2. save and retrieve Cart Items in cookie
  2. Create Login Form
    1. install react-hook-form
    2. create input box
    3. add login button
  3. Contect To MongoDB
    1. install mongoose
    2. install mongodb or use mongodb atlas
    3. create connection url in .env file
    4. create db utilis file
    5. create sample users
  4. Create Login API
    1. install next-auth
    2. create nextauth.js
    3. implement signin
    4. use signin in login form
  5. Add User Menu
    1. check user authentication
    2. install @headlessui/react
    3. show user menu
  6. Create SHipping Screen
    1. display address filds
    2. save address in context
  7. Create Payment Methods Screen
    1. display payment methods
    2. save payment methods in context
  8. Seed sample products
    1. create product model in mongoose
    2. insert sample products to mongodb
  9. Load Products MongoDB
    1. load products in home page from mongodb
    2. load products in product page from mongodb
    3. use product api to check count in stock in add to cart
  10. Create Place Order Screen
    1. display shipping address
    2. display payment method
    3. display order items
    4. implment create order
  11. Create Order Screen
    1. implement backend api for order details
    2. load order data from backend
    3. display order details
  12. Create Register Screen
    1. add signup api
    2. create register page
    3. call api on form submit
  13. Pay Order By PayPal
    1. add paypal button
    2. handle payment
    3. create backend api
    4. update order state
  14. Create Order History Screen
    1. create my order api
    2. create order history component
    3. fetch orders and display them
  15. Publish On Vercel
    1. create vercel account
    2. connect to github
    3. set next auth and mongodb db in env vars
    4. push code to github
  16. Update User Profile
    1. create profile screen
    2. show user info
    3. handle update user info
  17. Create Admin Dashboard
    1. Create Admin Menu
    2. create dashboard screen
    3. Implement admin summary api
  18. List Orders For Admin
    1. create orders page
    2. create orders api
    3. use api in page
  19. Deliver Order For Admin
    1. create deliver api
    2. add deliver button
    3. implement click handler
  20. List Products For Admin
    1. create products page
    2. create products api
    3. use api in page