WEBVTT

1
00:00.800 --> 00:02.240
Hi everyone.

2
00:02.240 --> 00:06.040
Welcome to the new course about NestJS

3
00:06.520 --> 00:17.560
In this course, we will build the real time social media application using the WebSocket.

4
00:17.600 --> 00:29.200
Okay, now you might hear somewhere, in order to create some real time stuff, we need to use the websockets.

5
00:29.520 --> 00:30.960
But why?

6
00:32.320 --> 00:32.760
Why?

7
00:32.760 --> 00:34.720
We need to use the WebSockets.

8
00:35.040 --> 00:41.000
So for that reason, in this course I will use the strong foundation for you.

9
00:41.040 --> 00:48.800
Okay, I will teach you the core concept of the websockets and fundamental about them.

10
00:52.760 --> 00:55.440
Now let's look at the content of this course.

11
00:55.600 --> 01:05.840
In the first session we will understand the WebSockets fundamentals, what difference between the http

12
01:06.320 --> 01:15.680
and WebSockets protocol and how we can build the chat application using the normal http protocol.

13
01:16.520 --> 01:26.840
After this thing, you will understand the some limitation about the http protocol and you will answer the

14
01:26.840 --> 01:28.320
question why?

15
01:29.080 --> 01:31.160
Okay why we need the websockets

16
01:32.080 --> 01:37.120
After that we will go to the TCP handshake process.

17
01:37.760 --> 01:42.520
What exactly about that and after that

18
01:42.520 --> 01:53.240
We need to upgrade from the http protocol to WebSocket protocol using the http handshake process.

19
01:53.760 --> 01:55.960
I will show you what exactly about that.

20
01:56.680 --> 01:57.200
Okay.

21
01:57.600 --> 01:59.760
So this is the fundamental section.

22
02:00.040 --> 02:07.200
After this session you will We understand the core concept of WebSocket and how it works behind the

23
02:07.200 --> 02:07.760
scenes.

24
02:08.480 --> 02:11.560
Okay, this is a very useful section.

25
02:11.840 --> 02:13.520
Please don't skip that.

26
02:15.080 --> 02:17.960
After that, we need to practice a little bit.

27
02:18.000 --> 02:18.640
Right.

28
02:18.680 --> 02:28.400
We need to understand how we can open the WebSocket connection, how we can work to send and receive

29
02:28.440 --> 02:29.040
data.

30
02:29.080 --> 02:29.600
Okay.

31
02:30.080 --> 02:38.080
And the very important lesson about here will be the what exactly about the socket.

32
02:38.480 --> 02:38.960
Okay.

33
02:39.480 --> 02:41.320
I will show you in this section.

34
02:45.160 --> 02:54.160
And after we already learned the fundamentals, let's create the application using the Socket.io library

35
02:55.920 --> 02:56.440
okay.

36
02:57.040 --> 03:03.120
In this session I will explain for you why we need this socket io, instead of just using the normal

37
03:03.400 --> 03:03.720
websocket

38
03:03.720 --> 03:12.480
Look at how we can interact between the socket.io like send and receive data.

39
03:12.840 --> 03:13.400
Okay.

40
03:15.440 --> 03:22.640
I will show you, uh, what the product is and also build a chat application.

41
03:23.080 --> 03:23.600
Okay.

42
03:24.480 --> 03:31.840
And after that, we need to understand the room, how we can create a group chat.

43
03:32.240 --> 03:32.720
Okay.

44
03:33.560 --> 03:43.040
After that, we will understand the namespace and how we can show the some user online in the application.

45
03:44.400 --> 03:54.160
So after this section you will understand how to work with Socket.io library okay.

46
03:55.520 --> 04:05.080
Now after that we need to learn about Nestjs fundamentals.

47
04:07.160 --> 04:19.640
Now, if you never learn about the NestJS before, in the next section right here, I will show you.

48
04:21.800 --> 04:23.520
About NestJS

49
04:23.560 --> 04:24.040
Okay.

50
04:24.080 --> 04:25.480
How to learn that

51
04:25.920 --> 04:36.160
What is the core concept of the NestJS like providers or inversion of controls, and how we can apply them

52
04:36.200 --> 04:37.560
in NestJS

53
04:37.840 --> 04:44.960
And what exactly about dependency injection and how we can work with modules?

54
04:45.520 --> 04:46.000
Okay.

55
04:46.400 --> 04:49.520
And some very important stuff over here.

56
04:50.760 --> 04:52.720
So that about the core concept.

57
04:53.160 --> 04:59.760
After that we need to learn about one more fundamental will be the data transfer object.

58
05:01.400 --> 05:11.720
DTO okay, so in this section I will show you how we can work with the DTO effectively.

59
05:12.040 --> 05:12.680
Okay.

60
05:13.600 --> 05:18.080
So the data transfer object is a very important section.

61
05:18.480 --> 05:22.800
Please don't skip that okay.

62
05:24.360 --> 05:25.160
Many

63
05:25.200 --> 05:30.440
Backend framework out there using the technique is called data transfer object.

64
05:31.520 --> 05:35.480
And I will show you how we can work with them in this section.

65
05:38.560 --> 05:39.080
Okay.

66
05:41.720 --> 05:50.840
And in future when we build the real world project we only apply the transfer object everywhere okay.

67
05:50.880 --> 05:53.560
So for that reason make sure you will learn about that.

68
05:54.920 --> 05:58.800
After that we need to set up the project for social media.

69
06:01.680 --> 06:10.120
And right here you can see we have so many modules over here like authentication and authorization are

70
06:10.120 --> 06:11.400
Of course in this core.

71
06:11.560 --> 06:18.040
I will show you how we can generate the JSON web token to do the authentication.

72
06:18.080 --> 06:18.600
Okay.

73
06:20.000 --> 06:24.240
And one more important thing will be the reflector.

74
06:24.280 --> 06:25.840
What exactly about us?

75
06:26.400 --> 06:37.360
I will show you how we can assign the some metadata into the specific methods using the reflector techniques.

76
06:40.080 --> 06:40.640
Okay.

77
06:42.560 --> 06:47.040
And after that, let's work with the Post.

78
06:48.320 --> 06:53.640
This is a very important module of the social media okay.

79
06:53.680 --> 07:02.850
And also I will show you how we can upload the media files right, now in the upload.

80
07:02.930 --> 07:03.930
Media file

81
07:03.970 --> 07:05.170
I will show you.

82
07:05.850 --> 07:07.570
Set up the cloudinary.

83
07:08.170 --> 07:08.690
Okay.

84
07:10.530 --> 07:14.490
This is the most production application right now.

85
07:15.050 --> 07:17.170
I will show you how to do that.

86
07:18.410 --> 07:18.610
How?

87
07:18.610 --> 07:20.970
We can upload multiple files.

88
07:21.010 --> 07:21.490
Okay.

89
07:21.730 --> 07:25.330
And how to add the media file to most.

90
07:27.850 --> 07:32.650
And very important will be the pagination. Since

91
07:32.850 --> 07:36.730
We will use the real time social media API.

92
07:38.610 --> 07:45.330
We will not apply the normal pagination technique like skip and limits.

93
07:45.490 --> 07:45.890
Okay.

94
07:45.930 --> 07:48.930
Instead of I will show you the one more thing.

95
07:48.930 --> 07:52.330
This will be the cursor pagination.

96
07:52.850 --> 07:53.250
Okay.

97
07:53.290 --> 07:54.890
What exactly about that?

98
07:55.130 --> 07:56.770
I will show you in this section.

99
07:58.130 --> 08:00.970
The reason we need a cursor pagination.

100
08:00.970 --> 08:09.490
Because in Later, when we work with front end, we want it will infinite scroll, right?

101
08:10.610 --> 08:15.970
So for that reason we need to use the technique cursor pagination.

102
08:19.170 --> 08:25.090
After that we need to build the reaction module.

103
08:25.970 --> 08:28.650
Okay I will show you how we can think about them.

104
08:30.050 --> 08:30.570
Okay.

105
08:31.170 --> 08:35.010
How we can create the reaction schema.

106
08:35.490 --> 08:38.890
Think about the schema structure of that.

107
08:42.330 --> 08:44.970
After that will be the comment.

108
08:45.010 --> 08:51.690
I will show you how we can create the comment for the post over here.

109
08:55.610 --> 08:57.810
And we have a user module.

110
08:57.810 --> 08:59.850
And also we have a friends.

111
09:00.170 --> 09:09.250
I will show you how we can send the friend request, how we can accept them, cancel and reject that.

112
09:11.210 --> 09:11.770
Okay.

113
09:14.010 --> 09:24.250
And right here, very important section will be the conversation and message. In any social media application.

114
09:24.290 --> 09:28.090
It always have a conversation and message.

115
09:28.130 --> 09:28.650
Okay.

116
09:29.050 --> 09:32.650
How we can talk with other friends.

117
09:32.810 --> 09:35.530
How we can send a message with them.

118
09:35.810 --> 09:36.330
Okay.

119
09:36.370 --> 09:44.930
I will show you in this section, what exactly about the conversation, why we need them, how we can

120
09:44.930 --> 09:51.130
create some private conversation or the group conversations.

121
09:51.730 --> 09:52.250
Okay.

122
09:52.490 --> 09:59.210
How we can add the some member into the group chat and remove them also.

123
09:59.450 --> 10:00.010
Right.

124
10:01.250 --> 10:05.810
So after that we need to build the message module.

125
10:06.370 --> 10:10.210
How we can send a message inside the conversations over here.

126
10:11.530 --> 10:11.930
Okay.

127
10:11.970 --> 10:15.650
What is the relationship between the message and conversation?

128
10:15.690 --> 10:19.970
I will explain very detailed in that section.

129
10:23.650 --> 10:27.810
And also update message or delete messages okay.

130
10:28.490 --> 10:30.770
Or seen message over here.

131
10:31.930 --> 10:41.730
And now after we already done with the core module of the social media application, we need to understand

132
10:41.730 --> 10:47.810
what exactly about the WebSocket gateways to handle the some real time stuff.

133
10:48.450 --> 10:56.970
In this section, I will show you what is exactly about the gateway in NestJS, how we can apply them

134
10:57.250 --> 10:59.970
in the real world project.

135
11:01.530 --> 11:15.490
And one more important thing Is how we can think about the socket data structure to send for the client.

136
11:15.570 --> 11:16.050
Okay.

137
11:16.250 --> 11:20.610
This is a very important skill as a backend developer.

138
11:21.970 --> 11:26.650
I will show you how we can think from the front end perspective.

139
11:27.090 --> 11:35.490
Okay, I will show you how the front end can consume the data about the server.

140
11:35.890 --> 11:36.250
Okay.

141
11:36.290 --> 11:42.770
And from that we will build some socket data and send to the client.

142
11:45.610 --> 11:46.170
Okay.

143
11:46.730 --> 11:57.930
I want to show you that because in later when you work with your project you can apply them okay.

144
11:58.410 --> 12:08.010
Instead of just showing you send some data and you will not understand why we need to send that data.

145
12:08.330 --> 12:12.730
I will show you how we can think independently.

146
12:13.450 --> 12:13.930
Okay.

147
12:16.010 --> 12:22.450
After that, we need to handle some real time for the message over here.

148
12:22.810 --> 12:35.370
And also handle the real time for post, like create post, okay, or upload the media okay, or add

149
12:35.410 --> 12:38.850
reactions into the post, all of that

150
12:38.890 --> 12:40.970
We need the real time, right?

151
12:42.090 --> 12:51.050
And after that we need to real time for the comment like create comment, update or delete comment.

152
12:52.010 --> 12:55.450
After that we do real time for gateway.

153
12:55.450 --> 13:02.170
also right, like send friend request accept them.

154
13:02.210 --> 13:05.090
Okay everything in this.

155
13:06.450 --> 13:07.130
section

156
13:08.610 --> 13:12.570
After that, we will build some notification system.

157
13:12.970 --> 13:13.530
Okay.

158
13:14.210 --> 13:14.450
How?

159
13:14.450 --> 13:19.170
We can create a schema or create a notification.

160
13:19.690 --> 13:27.410
And also I will show you how we can apply the techniques call global module in this section.

161
13:30.530 --> 13:33.570
After that we need to handle the post privacy.

162
13:33.930 --> 13:34.450
Okay.

163
13:37.330 --> 13:50.850
When we create the post I want, it can change the privacy from like public to friends or private.

164
13:51.170 --> 13:51.570
Okay.

165
13:51.610 --> 13:54.290
That's about the privacy.

166
13:55.090 --> 14:00.210
So that's it. That is the contents of this course.

167
14:02.050 --> 14:06.370
And so I will see you in this course.