1. Урок 1.00:02:40
    TinyHouse Welcome
  2. Урок 2.00:18:37
    Syllabus
  3. Урок 3.00:10:47
    How To Go Through The Course
  4. Урок 4.00:02:54
    Environment Setup
  5. Урок 5.00:03:09
    Part One Welcome
  6. Урок 6.00:01:04
    Module 1 Introduction
  7. Урок 7.00:05:06
    What is Node?
  8. Урок 8.00:02:59
    Running JavaScript with Node
  9. Урок 9.00:08:08
    Creating a minimal Node:Express Server
  10. Урок 10.00:03:50
    Automatic Reloading Using Nodemon
  11. Урок 11.00:05:38
    Introducing TypeScript
  12. Урок 12.00:16:11
    Adding TypeScript to our Server
  13. Урок 13.00:03:06
    Compiling our TypeScript project
  14. Урок 14.00:13:18
    Linting with ESLint
  15. Урок 15.00:07:04
    Introducing mock listings
  16. Урок 16.00:10:46
    Creating GET and POST Express routes
  17. Урок 17.00:04:04
    Module 1 Summary
  18. Урок 18.00:00:43
    Module 2 Introduction
  19. Урок 19.00:05:41
    What is GraphQL?
  20. Урок 20.00:09:48
    Comparing Github's REST and GraphQL APIs
  21. Урок 21.00:11:23
    GraphQL Concepts
  22. Урок 22.00:01:01
    Module 3 Introduction
  23. Урок 23.00:02:06
    Installing Apollo Server and GraphQL
  24. Урок 24.00:09:29
    Creating a GraphQL Schema with the GraphQL JS Library
  25. Урок 25.00:11:34
    Querying and mutating listings data with GraphQL
  26. Урок 26.00:10:52
    Using the GraphQL Schema Language
  27. Урок 27.00:02:07
    Module 3 Summary
  28. Урок 28.00:00:55
    Module 4 Introduction
  29. Урок 29.00:03:45
    Introduction to MongoDB
  30. Урок 30.00:06:52
    Setting up a new MongoDB Cluster with Atlas
  31. Урок 31.00:11:19
    Connecting the server with MongoDB
  32. Урок 32.00:12:34
    TypeScript Generics and adding types to our Collections
  33. Урок 33.00:08:02
    Setting Up Env Variables
  34. Урок 34.00:08:41
    Seeding mock data to the database
  35. Урок 35.00:14:34
    Processing Data from MongoDB
  36. Урок 36.00:07:18
    Modularizing Resolvers
  37. Урок 37.00:02:15
    Module 4 Summary
  38. Урок 38.00:00:47
    Module 5 Introduction
  39. Урок 39.00:06:59
    React
  40. Урок 40.00:04:22
    Create React App
  41. Урок 41.00:15:58
    Create React App - The Rundown
  42. Урок 42.00:00:46
    Module 6 Introduction
  43. Урок 43.00:03:47
    The Listings Component
  44. Урок 44.00:03:27
    Props & TypeScript
  45. Урок 45.00:06:48
    Functional Components & TypeScript
  46. Урок 46.00:14:17
    Querying Listings
  47. Урок 47.00:04:54
    Abstracting the type of data from server fetch
  48. Урок 48.00:08:43
    Deleting a listing
  49. Урок 49.00:02:05
    Module 6 Summary
  50. Урок 50.00:01:23
    Module 7 Introduction
  51. Урок 51.00:08:00
    React Hooks
  52. Урок 52.00:07:50
    The useState Hook
  53. Урок 53.00:11:46
    The useEffect Hook
  54. Урок 54.00:08:52
    Custom useQuery Hook
  55. Урок 55.00:06:58
    Custom useQuery and refetch
  56. Урок 56.00:11:54
    Custom useQuery and loading/error states
  57. Урок 57.00:16:22
    Custom useMutation Hook
  58. Урок 58.00:13:26
    The useReducer Hook
  59. Урок 59.00:05:08
    Module 7 Summary
  60. Урок 60.00:00:55
    Module 8 Introduction
  61. Урок 61.00:04:22
    Creating our Apollo Client
  62. Урок 62.00:04:09
    React Apollo Hooks
  63. Урок 63.00:10:25
    Autogenerated types with Apollo CLI
  64. Урок 64.00:02:39
    Module 8 Summary
  65. Урок 65.00:00:27
    Module 9 Introduction
  66. Урок 66.00:04:35
    UI Frameworks and Ant Design
  67. Урок 67.00:20:31
    Styling with Ant Design
  68. Урок 68.00:00:33
    Part One Conclusion
  69. Урок 69.00:01:56
    Part Two Welcome
  70. Урок 70.00:15:11
    The TinyHouse App
  71. Урок 71.00:12:18
    Walkthrough of TinyHouse Code
  72. Урок 72.00:10:55
    Code Patterns & Behavior
  73. Урок 73.00:16:40
    How To Go Through The Course
  74. Урок 74.00:02:52
    Set-up For Part II
  75. Урок 75.00:00:34
    Module 2 Introduction
  76. Урок 76.00:06:15
    Routing in TinyHouse
  77. Урок 77.00:07:27
    React Router
  78. Урок 78.00:01:06
    Module 3 Introduction
  79. Урок 79.00:05:17
    Database Collection Structure
  80. Урок 80.00:15:18
    Database Document Structure
  81. Урок 81.00:08:28
    Seed & Clear Data from MongoDB
  82. Урок 82.00:00:53
    Module 4 Introduction
  83. Урок 83.00:04:36
    OAuth 2.0
  84. Урок 84.00:04:50
    Google Sign-In (OAuth)
  85. Урок 85.00:04:51
    Google Sign-In GraphQL Fields
  86. Урок 86.00:08:31
    Using Google Sign-In & People API
  87. Урок 87.00:18:56
    Building the Authentication Resolvers
  88. Урок 88.00:11:36
    Building the UI for Login
  89. Урок 89.00:22:36
    Executing Login
  90. Урок 90.00:18:06
    Building the AppHeader & Logout
  91. Урок 91.00:06:03
    Module 4 Summary
  92. Урок 92.00:00:56
    Module 5 Introduction
  93. Урок 93.00:02:40
    Cookies & Login Sessions
  94. Урок 94.00:05:33
    localStorage vs. sessionStorage vs. cookies
  95. Урок 95.00:11:06
    Adding the Viewer Cookie on the Server
  96. Урок 96.00:08:20
    Adding the Viewer Cookie on the Client
  97. Урок 97.00:08:51
    X-CSRF Token
  98. Урок 98.00:04:10
    Module 5 Summary
  99. Урок 99.00:00:54
    Module 6 Introduction
  100. Урок 100.00:02:24
    User GraphQL Fields
  101. Урок 101.00:10:48
    Modifying the User, Listing, and Booking GraphQL TypeDefs
  102. Урок 102.00:21:39
    Building the User Resolvers
  103. Урок 103.00:23:02
    The UserProfile React Component
  104. Урок 104.00:42:51
    The UserListings & UserBookings React Components
  105. Урок 105.00:07:21
    Module 6 Summary
  106. Урок 106.00:00:34
    Module 7 Introduction
  107. Урок 107.00:02:21
    Listing GraphQL Fields
  108. Урок 108.00:16:07
    Building the Listing Resolvers
  109. Урок 109.00:11:21
    Querying for listing data
  110. Урок 110.00:25:39
    ListingDetails & ListingBookings
  111. Урок 111.00:34:31
    The ListingCreateBooking React Component
  112. Урок 112.00:04:48
    Module 7 Summary
  113. Урок 113.00:00:46
    Module 8 Introduction
  114. Урок 114.00:03:00
    Listings GraphQL Fields
  115. Урок 115.00:13:53
    Building the Listings Resolvers
  116. Урок 116.00:23:10
    Building the UI of the Homepage
  117. Урок 117.00:19:59
    Displaying the highest-priced listings in the Homepage
  118. Урок 118.00:03:14
    Module 8 Summary
  119. Урок 119.00:01:05
    Module 9 Introduction
  120. Урок 120.00:08:16
    Google's Geocoding API
  121. Урок 121.00:07:49
    Location-based searching for listings
  122. Урок 122.00:19:50
    Updating the listings resolver
  123. Урок 123.00:17:34
    Building the Listings page
  124. Урок 124.00:30:34
    Pagination & Filtering in the Listings page
  125. Урок 125.00:26:57
    Searching for listings from the App Header
  126. Урок 126.00:09:25
    Index location-based data
  127. Урок 127.00:03:29
    Module 9 Summary
  128. Урок 128.00:00:57
    Module 10 Introduction
  129. Урок 129.00:07:59
    Stripe & Stripe Connect
  130. Урок 130.00:11:34
    Stripe Connect OAuth
  131. Урок 131.00:09:12
    Stripe Connect GraphQL Fields
  132. Урок 132.00:13:52
    Building the Stripe Connect Resolvers
  133. Урок 133.00:28:00
    Connecting with Stripe on the Client
  134. Урок 134.00:13:31
    Disconnecting from Stripe on the Client
  135. Урок 135.00:04:18
    Module 10 Summary
  136. Урок 136.00:00:37
    Module 11 Introduction
  137. Урок 137.00:02:44
    HostListing GraphQL Fields
  138. Урок 138.00:15:28
    Building the HostListing Resolver
  139. Урок 139.00:38:22
    Building the UI of the Host page
  140. Урок 140.00:28:21
    Executing the HostListing Mutation
  141. Урок 141.00:05:06
    Module 11 Summary
  142. Урок 142.00:00:42
    Module 12 Introduction
  143. Урок 143.00:07:14
    Cloudinary & Image Storage
  144. Урок 144.00:08:47
    Image uploads with Cloudinary
  145. Урок 145.00:01:05
    Module 13 Introduction
  146. Урок 146.00:02:52
    CreateBooking GraphQL Fields
  147. Урок 147.00:25:58
    Building the CreateBooking Resolver
  148. Урок 148.00:23:03
    Resolving the BookingsIndex of a Listing
  149. Урок 149.00:25:21
    Disabling booked dates on the client
  150. Урок 150.00:21:13
    Creating the Booking Confirmation Modal
  151. Урок 151.00:17:22
    Displaying the Payment Form with React Stripe Elements
  152. Урок 152.00:28:11
    Executing the CreateBooking Mutation
  153. Урок 153.00:09:02
    Module 13 Summary
  154. Урок 154.00:00:29
    Module 14 Introduction
  155. Урок 155.00:06:41
    Cloud Computing
  156. Урок 156.00:45:14
    Deploying with Heroku
  157. Урок 157.00:10:26
    Walkthrough of Deployed App
  158. Урок 158.00:00:52
    Module 15 Introduction
  159. Урок 159.00:05:33
    The NotFound Page
  160. Урок 160.00:16:33
    Apollo Client & FetchPolicy
  161. Урок 161.00:10:27
    useLayoutEffect & Window Scroll
  162. Урок 162.00:10:26
    React Router Hooks
  163. Урок 163.00:10:33
    Disconnecting from Stripe & Revoking Access
  164. Урок 164.00:10:07
    Additional Listing DatePicker Changes
  165. Урок 165.00:00:41
    Part Two Conclusion
  166. Урок 166.00:00:49
    MODULE 17 INTRODUCTION
  167. Урок 167.00:05:07
    SQL VS. NOSQL
  168. Урок 168.00:06:05
    POSTGRESQL
  169. Урок 169.00:16:04
    TYPEORM
  170. Урок 170.00:33:11
    TINYHOUSE - POSTGRESQL & TYPEORM
  171. Урок 171.00:03:39
    Module 18 Introduction
  172. Урок 172.00:11:45
    Unit Testing
  173. Урок 173.00:30:38
    Jest & React Testing Library
  174. Урок 174.00:08:36
    Apollo React Testing
  175. Урок 175.00:08:23
    Getting Started
  176. Урок 176.00:23:21
    Testing the Home Component I
  177. Урок 177.00:40:34
    Testing the Home Component II
  178. Урок 178.00:26:17
    Testing the Login Component I
  179. Урок 179.00:29:00
    Testing the Login Component II
  180. Урок 180.00:14:40
    Pushing code & creating PRs