Getting Started
  • Tools Used / Needed for Our App
  • Short Path versus the Long(er) Path in the Course
Setup React App (Routing, Navigation)
  • Git Clone Repo, Install Dependencies, Scaffold React App
  • Create Components, Routing for Project
  • Gestalt Setup and Navbar Component
  • Add Base CSS Rules and Apply Class to Active NavLink (Optional)
Create Server with Strapi, Add GraphQL to our API
  • Configuring MongoDB Atlas with Strapi
  • Brief Look at Strapi CLI (Optional)
  • Start the Strapi Server, Create Root Admin for CMS
  • Overview of Strapi Admin Panel (Optional)
  • Add Brand Content Type with Content Type Builder, Add First Brand
  • Install GraphQL Plugin, Visit GraphQL Playground
Executing Queries in GraphQL Playground
  • Query Brand by Id in GraphQL Playground, Give Permission to All Users (Optional)
  • Query Multiple Brands with GraphQL, Change Permissions Again
Query Brands with GraphQL in React App , Display Brands in UI
  • Run Client Script with Server, Add Markup for Brands Section
  • Connecting React with GraphQL using Strapi SDK, Fetch Data from Client
  • Catch async / await Errors with try / catch, Put Brand Data in Local State
  • Display Brands on Home Page, Create Brand Card Component
Additional Features - Responsive Design, Searching, Loading Spinners
  • Add Flex Wrap to Brand Cards for Responsive Design, More Styles (Optional)
  • Add SearchField Component to Search Brands (Optional)
  • Client-Side Search with .filter() (Optional)
  • Add Loading State for Brand Data, Create Loader Component (Optional)
Create Brews Data / Brews Component
  • Add Brew Content Type
  • Seed Brew Data
  • Query Brew / Brews, Change Permission for Public / Auth Users
  • Query Brand by Id to Get Associated Brews
  • Request Brews by Brand Id in Brews Component
  • Add Markup to Display Brews
Create User Cart
  • Add Cart Markup in Brews Component
  • Create Function to Add Items to Cart
  • Create Function to Delete Item from Cart, Calculate Cart Total
  • Persist Cart to LocalStorage
Add Signin / Signup Components, User Authentication with JWT
  • Create Sign Up Form
  • Add Form Validation to Sign Up (Optional)
  • Create Toast Message Component to Show Upon Validation Error (Optional)
  • Register User, Store JWT in LocalStorage
  • Change Navbar Upon Sign Up
  • Sign Out User
  • Create Sign In Markup / Functionality
Checkout Component, Process Payments with Stripe
  • Make Checkout a Private Route (Optional)
  • Add Markup for Checkout Form
  • Add Cart to Checkout, Show Default Text if Cart Empty
  • Add Confirmation Modal to Order on Submit
  • Sign Up for Stripe and Get API Keys
  • Add Stripe to Checkout Page
  • Create Orders Content Type, Add Create Function in Controllers
  • Submit Order to Database, Send / Process Payment with Stripe
BONUS: Send Emails with SendGrid
  • Set up SendGrid, Give API Key to Strapi (Optional)
  • Send Confirmation Email upon Checkout (Optional)
BONUS #2: Search with GraphQL, Mobile Design, UI Features
  • Search with GraphQL and where / field_contains (Optional)
  • Make App Fully Mobile-Compatible (Optional)