1. Урок 1. 00:10:53
    Project App Demo
  2. Урок 2. 00:08:10
    GraphQL Introduction
  3. Урок 3. 00:03:05
    Apollo / Apollo Boost Introduction
  4. Урок 4. 00:01:59
    Install Packages our for Project
  5. Урок 5. 00:01:08
    Git Clone and npm Install Dependencies
  6. Урок 6. 00:02:38
    Initialize Express Server
  7. Урок 7. 00:05:49
    Create MongoDB Atlas Database and Connect To It
  8. Урок 8. 00:06:07
    Create Mongoose Schemas
  9. Урок 9. 00:04:23
    Add Apollo-Express Middleware
  10. Урок 10. 00:04:34
    Create GraphQL Schema
  11. Урок 11. 00:03:48
    Add bodyParser Middleware and Root Query Type
  12. Урок 12. 00:05:28
    Create First Mutation
  13. Урок 13. 00:03:24
    Create First Query
  14. Урок 14. 00:01:41
    Create React Application with create-react-app
  15. Урок 15. 00:02:46
    Clean Up App.js and Add Components Folder
  16. Урок 16. 00:02:02
    Add Client Dependencies and Set Up ApolloClient/ApolloProvider
  17. Урок 17. 00:05:06
    Create Queries Folder, Write First Apollo Query
  18. Урок 18. 00:02:06
    Add cors Middleware to Prevent Cross-Origin Errors
  19. Урок 19. 00:01:20
    Add Skeleton CSS and Base Styles
  20. Урок 20. 00:06:19
    Create Signup Mutation
  21. Урок 21. 00:03:34
    Hash User Password with bcrypt
  22. Урок 22. 00:05:18
    Add Routing with react-router-dom
  23. Урок 23. 00:03:07
    Add Form to Signup Component
  24. Урок 24. 00:05:37
    Manage Input State in Signup Form
  25. Урок 25. 00:05:43
    Add Mutation Component to Signup Component, Write SIGNUP_USER Apollo Mutation
  26. Урок 26. 00:03:59
    Add onSubmit to Signup Form, Run Signup Mutation on Client
  27. Урок 27. 00:09:12
    Create Error Component, Clear State Upon Submit, Add Form Validation
  28. Урок 28. 00:05:36
    Create Signin Mutation on Backend
  29. Урок 29. 00:03:38
    Implement Signin Mutation on Client
  30. Урок 30. 00:06:27
    Add Token to Local Storage, Put Token on Authorization Header
  31. Урок 31. 00:03:20
    Verify JWT on Backend to Get Current User
  32. Урок 32. 00:10:32
    Add getCurrentUser Query, Create withSession Component
  33. Урок 33. 00:05:34
    Redirect Upon Signin/Signup, Refetch getCurrentUser Query Upon Redirect
  34. Урок 34. 00:06:22
    Add Navbar Component, Add Search Component
  35. Урок 35. 00:04:52
    Add Navbar Links For Auth User
  36. Урок 36. 00:03:33
    Make Navbar Dynamic, Add Custom Heading
  37. Урок 37. 00:06:08
    Implement Signout Button
  38. Урок 38. 00:05:35
    Map Over Recipes, Create Recipe Item Component
  39. Урок 39. 00:06:08
    Create Recipe Page, Get Recipe Id From Path
  40. Урок 40. 00:06:07
    Add getRecipe Query in Backend, Run Query on Recipe Page
  41. Урок 41. 00:06:26
    Output getRecipe Data to Recipe Page, Scaffold Add Recipe Form
  42. Урок 42. 00:05:46
    Make AddRecipe a Stateful Component
  43. Урок 43. 00:11:46
    Implement addRecipe Mutation on Client
  44. Урок 44. 00:03:29
    Clear State and Redirect Upon addRecipe Mutation
  45. Урок 45. 00:10:27
    Learning and Implementing Optimistic UI
  46. Урок 46. 00:07:59
    Create searchRecipes Query on Backend, add Apollo Query to Search Component
  47. Урок 47. 00:08:59
    Index Recipe Fields, Perform Search Query on Input Change Event
  48. Урок 48. 00:02:51
    Add SearchItem Component
  49. Урок 49. 00:09:48
    Add UserInfo Component to Profile Page
  50. Урок 50. 00:07:47
    Add UserRecipes Component to Profile Page, Implement getUserRecipes Query
  51. Урок 51. 00:09:00
    Add Route Protection with withAuth Component
  52. Урок 52. 00:06:53
    Add and Implement deleteUserRecipe Mutation
  53. Урок 53. 00:05:13
    Add Optimistic UI to deleteUserRecipe Mutation
  54. Урок 54. 00:02:04
    Add refetchQueries to deleteUserRecipe Mutation
  55. Урок 55. 00:02:08
    Add refetchQueries to addRecipe Mutation
  56. Урок 56. 00:01:27
    Provide Default Text for User Without Recipes
  57. Урок 57. 00:04:06
    Create LikeRecipe Component and Hide If Not Auth
  58. Урок 58. 00:08:07
    Add and Implement likeRecipe Mutation
  59. Урок 59. 00:05:40
    Develop Client-side Logic to Properly Toggle Like
  60. Урок 60. 00:09:43
    Create and Implement unlikeRecipe Mutation with Optimistic UI
  61. Урок 61. 00:04:13
    Prepare for Deployment
  62. Урок 62. 00:05:04
    Use Fragments to Clean Up Queries
  63. Урок 63. 00:12:49
    Deploy to Heroku
  64. Урок 64. 00:01:50
    Add Additional CSS to Project
  65. Урок 65. 00:04:45
    Adds imageUrl field on Recipe model and imageUrl input in addRecipe
  66. Урок 66. 00:04:37
    Display Recipe Image on Home Page, Build Card
  67. Урок 67. 00:05:31
    Style Recipe Page
  68. Урок 68. 00:05:54
    Add CKEditor Component to AddRecipe Page for Formatted Instructions
  69. Урок 69. 00:07:26
    Intro to React Pose Animation Library
  70. Урок 70. 00:07:18
    Add React Pose Animation to Home Page
  71. Урок 71. 00:05:03
    Add Spinners When Loading
  72. Урок 72. 00:04:17
    Style Searchbar and Redeploy
  73. Урок 73. 00:02:53
    Add Update Button, Make UserRecipes Stateful Component
  74. Урок 74. 00:06:46
    Create Edit Recipe Modal
  75. Урок 75. 00:04:53
    Populate Edit Recipe Modal
  76. Урок 76. 00:08:25
    Create updateUserRecipe Mutation, Execute on Client