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