-
Урок 1.
00:06:45
Course introduction
-
Урок 2.
00:05:38
Setting up the developer environment
-
Урок 3.
00:06:00
VS Code extensions
-
Урок 4.
00:01:58
Source code and Resources used on this course
-
Урок 5.
00:07:52
Introduction
-
Урок 6.
00:09:42
Creating the .Net projects and references
-
Урок 7.
00:10:17
Changes to the .Net 6 hosting model
-
Урок 8.
00:11:55
Reviewing the project files and startup
-
Урок 9.
00:06:07
The API controller and using postman
-
Урок 10.
00:04:42
Creating a domain entity
-
Урок 11.
00:13:42
Adding an Entity Framework Db Context
-
Урок 12.
00:07:39
Creating an Entity Framework code first migration
-
Урок 13.
00:08:09
Creating the database
-
Урок 14.
00:07:15
Seeding data to the Database
-
Урок 15.
00:10:17
Adding an API controller
-
Урок 16.
00:07:35
Saving changes into source control
-
Урок 17.
00:07:27
Summary of Section 2
-
Урок 18.
00:03:31
Introduction
-
Урок 19.
00:07:08
Creating the React project
-
Урок 20.
00:10:06
Reviewing the React project files
-
Урок 21.
00:02:47
Why React?
-
Урок 22.
00:07:34
React Components
-
Урок 23.
00:07:10
Typescript concepts
-
Урок 24.
00:11:13
Typescript demo
-
Урок 25.
00:11:04
Using Typescript with React
-
Урок 26.
00:03:36
React dev tools
-
Урок 27.
00:10:11
Fetching data from the API
-
Урок 28.
00:05:00
CORS Policy
-
Урок 29.
00:13:21
Semantic UI React
-
Урок 30.
00:04:49
Summary of section 3
-
Урок 31.
00:04:13
Introduction
-
Урок 32.
00:09:34
Clean Architecture
-
Урок 33.
00:04:01
CQRS
-
Урок 34.
00:09:41
Creating our first Query handler
-
Урок 35.
00:03:48
Thin controllers in the API
-
Урок 36.
00:03:49
Adding a Details handler
-
Урок 37.
00:09:12
Adding a Create handler
-
Урок 38.
00:06:53
Adding an Edit handler
-
Урок 39.
00:06:23
Adding AutoMapper
-
Урок 40.
00:06:13
Adding a Delete handler
-
Урок 41.
00:05:35
Startup class housekeeping
-
Урок 42.
00:07:47
Cancellation tokens
-
Урок 43.
00:08:07
Using the debugger in VS Code
-
Урок 44.
00:03:07
Summary of section 4
-
Урок 45.
00:02:44
Introduction
-
Урок 46.
00:05:35
Folder structure in React
-
Урок 47.
00:06:42
Adding an Activity interface
-
Урок 48.
00:04:38
Adding a Nav bar
-
Урок 49.
00:08:05
Adding some style to the nav bar
-
Урок 50.
00:06:21
Creating an activity dashboard
-
Урок 51.
00:06:20
Creating an activity list
-
Урок 52.
00:09:06
Creating a details view
-
Урок 53.
00:03:20
Creating an Activity form
-
Урок 54.
00:12:05
Selecting an activity to view
-
Урок 55.
00:09:33
Displaying the create/edit form
-
Урок 56.
00:10:32
Editing an activity and form basics in React
-
Урок 57.
00:05:54
Handle create and edit submission
-
Урок 58.
00:05:32
Using a GUID for the activity id
-
Урок 59.
00:03:49
Deleting an activity
-
Урок 60.
00:02:42
Summary of section 5
-
Урок 61.
00:02:29
Introduction
-
Урок 62.
00:06:14
Setting up axios
-
Урок 63.
00:07:02
Axios types
-
Урок 64.
00:07:24
Adding loading indicators
-
Урок 65.
00:08:18
Posting data to the server
-
Урок 66.
00:06:32
Deleting activity on the server
-
Урок 67.
00:01:58
Summary of section 6
-
Урок 68.
00:02:24
Introduction
-
Урок 69.
00:09:49
What is MobX?
-
Урок 70.
00:07:56
Setting up MobX
-
Урок 71.
00:05:03
MobX actions
-
Урок 72.
00:07:53
Refactoring the app to use MobX
-
Урок 73.
00:04:49
MobX strict mode
-
Урок 74.
00:13:24
Selecting an Activity using MobX
-
Урок 75.
00:10:04
Creating an Activity using MobX
-
Урок 76.
00:07:32
Deleting an activity using MobX
-
Урок 77.
00:08:54
Using a Javascript map object to store the activities
-
Урок 78.
00:03:05
Summary of section 7
-
Урок 79.
00:05:18
Introduction
-
Урок 80.
00:04:24
Installing React Router
-
Урок 81.
00:06:06
Adding routes
-
Урок 82.
00:03:14
Adding nav links
-
Урок 83.
00:03:37
Adding a details link
-
Урок 84.
00:07:55
Getting an individual activity
-
Урок 85.
00:07:39
Using route parameters
-
Урок 86.
00:10:37
Adding the edit activity route
-
Урок 87.
00:06:44
Adding a key to the route
-
Урок 88.
00:06:04
Redirect after submission
-
Урок 89.
00:03:35
Moving the home page outside of nav
-
Урок 90.
00:05:50
Cleaning up unused code
-
Урок 91.
00:00:59
Summary of section 8
-
Урок 92.
00:02:41
Introduction
-
Урок 93.
00:05:18
Styling the activity list
-
Урок 94.
00:08:14
Grouping the activities by date
-
Урок 95.
00:06:16
Styling the list items
-
Урок 96.
00:04:39
Activity details page
-
Урок 97.
00:06:36
Populating the detailed components
-
Урок 98.
00:07:41
Adding the activity filter component
-
Урок 99.
00:05:52
Styling the home page
-
Урок 100.
00:01:45
Summary of section 9
-
Урок 101.
00:07:20
Introduction
-
Урок 102.
00:04:51
Validation with data annotations
-
Урок 103.
00:08:38
Fluent Validation
-
Урок 104.
00:06:11
Handling API Error responses
-
Урок 105.
00:08:59
Handling API Error responses part 2
-
Урок 106.
00:05:17
Handling API Error responses part 3
-
Урок 107.
00:07:25
Handling API Error responses part 4
-
Урок 108.
00:12:44
Handling exceptions
-
Урок 109.
00:07:43
Preparing for setting up error handling in the client app
-
Урок 110.
00:04:05
Using an interceptor to handle API error responses
-
Урок 111.
00:07:31
Adding a not found component
-
Урок 112.
00:08:03
Handling 400 errors
-
Урок 113.
00:08:34
Handling 500 errors on the client
-
Урок 114.
00:06:46
Handling the validation error from an invalid GUID
-
Урок 115.
00:04:07
Summary of section 10
-
Урок 116.
00:03:32
Introduction
-
Урок 117.
00:09:25
Setting up Formik
-
Урок 118.
00:04:29
Formik with less code
-
Урок 119.
00:05:55
Validation in Formik
-
Урок 120.
00:09:42
Creating a reusable text input
-
Урок 121.
00:01:40
Creating a reusable text area
-
Урок 122.
00:06:57
Creating a reusable select input
-
Урок 123.
00:09:42
Creating a reusable date input
-
Урок 124.
00:06:22
The date strategy
-
Урок 125.
00:06:25
Using Date-FNS
-
Урок 126.
00:05:43
Hooking up the form submission to Formik
-
Урок 127.
00:02:44
Summary of section 11
-
Урок 128.
00:08:54
Introduction
-
Урок 129.
00:05:21
Adding a user entity
-
Урок 130.
00:03:15
Adding an IdentityDbContext
-
Урок 131.
00:04:53
Configuring Identity in the Startup class
-
Урок 132.
00:06:22
Adding seed users
-
Урок 133.
00:04:22
Creating the user DTOs
-
Урок 134.
00:08:39
Adding an account controller
-
Урок 135.
00:07:23
JSON Web Tokens
-
Урок 136.
00:10:29
Creating a token service
-
Урок 137.
00:07:20
Authenticating to the app
-
Урок 138.
00:05:58
Storing secrets in development
-
Урок 139.
00:02:54
Creating an auth policy
-
Урок 140.
00:04:34
Registering new users
-
Урок 141.
00:04:01
Validating the registration of users
-
Урок 142.
00:04:55
Getting the current user
-
Урок 143.
00:04:18
Summary of section 12
-
Урок 144.
00:02:40
Introduction
-
Урок 145.
00:06:13
Creating a login form
-
Урок 146.
00:03:40
Creating the interfaces and methods
-
Урок 147.
00:04:50
Creating a user store
-
Урок 148.
00:03:27
Displaying errors in the form
-
Урок 149.
00:04:29
Setting the token upon login
-
Урок 150.
00:08:10
Updating the home page and nav bar
-
Урок 151.
00:06:46
Persisting the login
-
Урок 152.
00:03:11
Sending up the token with the request
-
Урок 153.
00:08:43
Adding Modals
-
Урок 154.
00:06:32
Adding the register form
-
Урок 155.
00:08:28
Handling validation errors in the register form
-
Урок 156.
00:03:54
Summary of section 13
-
Урок 157.
00:09:05
Introduction
-
Урок 158.
00:09:32
Configuring the new relationship
-
Урок 159.
00:07:25
Adding an infrastructure project
-
Урок 160.
00:02:38
Updating the create activity handler
-
Урок 161.
00:06:58
Testing the create activity
-
Урок 162.
00:05:05
Loading related data
-
Урок 163.
00:06:30
Shaping the related data
-
Урок 164.
00:10:36
Configuring AutoMapper profiles
-
Урок 165.
00:14:10
Adding the attendance handler
-
Урок 166.
00:10:59
Adding a custom auth policy
-
Урок 167.
00:05:49
Resolving the bug with with the edit handler
-
Урок 168.
00:03:22
Updating the seed data
-
Урок 169.
00:02:26
Summary of section 14
-
Урок 170.
00:02:11
Introduction
-
Урок 171.
00:07:21
Adding the attendees component
-
Урок 172.
00:03:47
Updating the details component
-
Урок 173.
00:10:56
Conditionally rendering the buttons
-
Урок 174.
00:09:41
Adding the store methods to attend
-
Урок 175.
00:14:05
Updating the create and edit methods
-
Урок 176.
00:07:40
Adding a cancel activity method
-
Урок 177.
00:05:55
Adding a popover for attendees
-
Урок 178.
00:00:51
Summary of section 15
-
Урок 179.
00:05:48
Introduction
-
Урок 180.
00:07:45
Adding Cloudinary
-
Урок 181.
00:03:33
Adding the Cloudinary interfaces
-
Урок 182.
00:08:06
Adding the add photo logic
-
Урок 183.
00:03:34
Adding the Photo entity
-
Урок 184.
00:06:04
Adding the Add photo handler
-
Урок 185.
00:04:21
Adding a photos controller
-
Урок 186.
00:09:19
Deleting photos
-
Урок 187.
00:06:21
Setting the main photo
-
Урок 188.
00:06:59
Returning user profiles
-
Урок 189.
00:05:37
Updating the mapping configuration
-
Урок 190.
00:07:10
Returning an attendee DTO
-
Урок 191.
00:02:13
Summary of section 16
-
Урок 192.
00:02:29
Introduction
-
Урок 193.
00:04:17
Creating a profile page
-
Урок 194.
00:06:13
Adding a profile header
-
Урок 195.
00:03:33
Adding the profile content
-
Урок 196.
00:04:54
Getting the profile data
-
Урок 197.
00:04:32
Getting the profile data part 2
-
Урок 198.
00:05:55
Displaying the photos
-
Урок 199.
00:06:02
Conditionally rendering the photo widget
-
Урок 200.
00:03:32
Creating a photo upload widget
-
Урок 201.
00:04:15
Adding a Dropzone
-
Урок 202.
00:09:28
Styling the Dropzone
-
Урок 203.
00:14:10
Adding a react cropper
-
Урок 204.
00:11:01
Adding the photo upload method
-
Урок 205.
00:08:14
Setting the main photo
-
Урок 206.
00:06:41
Deleting photos
-
Урок 207.
00:02:12
Summary of section 17
-
Урок 208.
00:03:40
Challenge introduction
-
Урок 209.
00:06:47
Introduction
-
Урок 210.
00:06:14
Setting up the comment entity
-
Урок 211.
00:02:39
Adding a comment DTO and mapping
-
Урок 212.
00:06:00
Adding the create handler
-
Урок 213.
00:04:16
Adding a list handler
-
Урок 214.
00:09:44
Adding a SignalR Hub
-
Урок 215.
00:03:28
Authenticating to SignalR
-
Урок 216.
00:09:54
Adding SignalR to the client
-
Урок 217.
00:07:36
Connecting to the hub
-
Урок 218.
00:07:11
Sending comments
-
Урок 219.
00:05:27
Adding validation and fix issues
-
Урок 220.
00:10:59
Resolving UTC dates
-
Урок 221.
00:03:35
Summary of section 19
-
Урок 222.
00:03:27
Introduction
-
Урок 223.
00:06:37
Adding a join entity
-
Урок 224.
00:06:17
Adding a handler for following
-
Урок 225.
00:04:01
Adding the controller
-
Урок 226.
00:02:42
Update the profile class
-
Урок 227.
00:11:27
Return a list of followers
-
Урок 228.
00:04:17
Adding the following property to the mapping configuration
-
Урок 229.
00:07:25
Updating the other handlers with the following property
-
Урок 230.
00:05:05
Adding the UI for followers
-
Урок 231.
00:11:14
Adding methods to follow and unfollow
-
Урок 232.
00:08:16
Making the follow button a component
-
Урок 233.
00:10:05
Getting a list of followings
-
Урок 234.
00:01:31
Using MobX Reactions
-
Урок 235.
00:05:12
Summary of section 20
-
Урок 236.
00:08:06
Introduction
-
Урок 237.
00:07:58
Adding a PagedList class
-
Урок 238.
00:09:21
Adding application layer pagination logic
-
Урок 239.
00:08:08
Adding a pagination header
-
Урок 240.
00:05:44
Adding client side pagination
-
Урок 241.
00:06:22
Adding pagination parameters
-
Урок 242.
00:05:24
Adding vertical paging
-
Урок 243.
00:05:24
Adding infinite scrolling
-
Урок 244.
00:07:29
Adding filtering in the API
-
Урок 245.
00:04:22
Client side filtering
-
Урок 246.
00:04:21
Updating the filter component
-
Урок 247.
00:05:45
Adding placeholders
-
Урок 248.
00:11:27
Adding a user profile activities component + challenge
-
Урок 249.
00:01:28
Challenge solution
-
Урок 250.
00:01:28
Summary of section 21
-
Урок 251.
00:02:56
Introduction
-
Урок 252.
00:03:24
Adding Scroll to top for our routes
-
Урок 253.
00:07:24
Adding private routes
-
Урок 254.
00:07:07
Prepping the client app for production
-
Урок 255.
00:07:07
Building the production build of the react app
-
Урок 256.
00:06:16
Running the client app on the dotnet Kestrel server
-
Урок 257.
00:04:24
Adding PostGresQL
-
Урок 258.
00:11:38
Switching to PostGresQL
-
Урок 259.
00:09:18
Setting up Heroku
-
Урок 260.
00:09:37
Deploying the app to Heroku
-
Урок 261.
00:09:03
Security tightening
-
Урок 262.
00:12:06
Content security policies
-
Урок 263.
00:04:18
End of course summary
-
Урок 264.
00:03:37
Introduction
-
Урок 265.
00:05:37
Setting up Facebook login
-
Урок 266.
00:02:08
Connecting Heroku to GitHub
-
Урок 267.
00:09:40
Adding the Facebook JS SDK
-
Урок 268.
00:10:36
Configuring the API endpoint
-
Урок 269.
00:11:38
Debugging the Facebook info
-
Урок 270.
00:07:35
Facebook login finishing touches
-
Урок 271.
00:11:46
Redeploying the app to Heroku
-
Урок 272.
00:03:20
Introduction to Refresh Tokens
-
Урок 273.
00:06:06
Adding the Refresh token domain entity
-
Урок 274.
00:03:15
Updating the JWT token parameters
-
Урок 275.
00:08:30
Updating the account controller
-
Урок 276.
00:04:40
Testing in Postman
-
Урок 277.
00:10:00
Client side configuration
-
Урок 278.
00:05:54
Testing the refresh token in the client
-
Урок 279.
00:02:39
Redeploying the app to Heroku
-
Урок 280.
00:02:40
Introduction to Email verification
-
Урок 281.
00:09:26
Setting up SendGrid
-
Урок 282.
00:07:32
Require a confirmed email to sign in
-
Урок 283.
00:07:32
Updating the register method
-
Урок 284.
00:04:58
Adding the confirm email endpoint
-
Урок 285.
00:03:46
Testing in Postman
-
Урок 286.
00:09:33
Setting up the client for email confirmation
-
Урок 287.
00:08:14
Adding a verify email component
-
Урок 288.
00:04:33
Finishing up and testing
-
Урок 289.
00:07:18
Redeploying the app to Heroku
-
Урок 290.
00:16:45
Updating the project to use .Net 6
-
Урок 291.
00:20:30
.Net 6 new features and how to update the project to use them
-
Урок 292.
00:17:50
Updating the client packages