1
00:00:01,360 --> 00:00:02,193
<v Jonas>All right.</v>

2
00:00:02,193 --> 00:00:05,570
So this is the third and final part

3
00:00:05,570 --> 00:00:10,543
of implementing the functionality of uploading or recipes.

4
00:00:12,100 --> 00:00:15,920
And let's start by adding yet another recipe

5
00:00:15,920 --> 00:00:18,810
so that I can show you something that is still missing

6
00:00:18,810 --> 00:00:20,740
from our controller.

7
00:00:20,740 --> 00:00:23,360
So actually, two things.

8
00:00:23,360 --> 00:00:28,360
So, let's say this one here, test avocado.

9
00:00:28,820 --> 00:00:29,653
Okay.

10
00:00:29,653 --> 00:00:34,350
Just so we have a different name and watch what happens here

11
00:00:34,350 --> 00:00:38,480
to the URL as we upload this recipe.

12
00:00:38,480 --> 00:00:40,810
So actually nothing will change.

13
00:00:40,810 --> 00:00:42,563
So, take a look at that.

14
00:00:44,660 --> 00:00:45,493
Okay.

15
00:00:45,493 --> 00:00:48,000
So recipe was successfully uploaded

16
00:00:48,000 --> 00:00:51,163
and we also still need to remove this window.

17
00:00:52,510 --> 00:00:53,440
Right?

18
00:00:53,440 --> 00:00:56,470
But anyway, here is the recipe that we just uploaded

19
00:00:57,330 --> 00:00:59,940
but the URL did not change.

20
00:00:59,940 --> 00:01:04,430
And also it did not yet add this new recipe

21
00:01:04,430 --> 00:01:07,120
to our bookmarks, okay?

22
00:01:07,120 --> 00:01:08,993
So of course it is bookmarked,

23
00:01:10,338 --> 00:01:11,960
all right, as you see here

24
00:01:11,960 --> 00:01:14,583
and as you can also see down here.

25
00:01:15,950 --> 00:01:20,707
But we didn't yet rerender this bookmarks panel, right?

26
00:01:22,200 --> 00:01:25,230
So there are two things that we need to fix.

27
00:01:25,230 --> 00:01:28,720
So we need to rerender this bookmarks view

28
00:01:28,720 --> 00:01:32,910
and we also need to change the ID here in the URL

29
00:01:32,910 --> 00:01:36,543
because watch what happens if I reload this page now.

30
00:01:37,780 --> 00:01:42,110
So then we are back to the old recipe that was there before.

31
00:01:42,110 --> 00:01:46,223
So, because that's the recipe that is associated to this ID.

32
00:01:47,300 --> 00:01:51,590
So let's go back to our controller and fix these things

33
00:01:51,590 --> 00:01:55,023
and also put back here, toggling the window.

34
00:01:55,860 --> 00:01:59,210
So, let's do that right here

35
00:01:59,210 --> 00:02:02,800
after displaying the success message we also want to render

36
00:02:05,470 --> 00:02:07,543
the bookmark view.

37
00:02:09,520 --> 00:02:12,670
And so that will then basically add this new element

38
00:02:12,670 --> 00:02:17,210
to the bookmarksView.render.

39
00:02:17,210 --> 00:02:21,533
So model.state.bookmarks.

40
00:02:22,890 --> 00:02:23,780
Okay.

41
00:02:23,780 --> 00:02:25,750
And we are not using update here

42
00:02:25,750 --> 00:02:28,660
because we really want to insert a new element.

43
00:02:28,660 --> 00:02:33,660
And for that we use always render and not the update method.

44
00:02:33,690 --> 00:02:36,110
Now, the second thing that we wanted to do

45
00:02:36,110 --> 00:02:39,620
is to change the ID into URL and for that,

46
00:02:39,620 --> 00:02:41,843
we can use the history API.

47
00:02:45,080 --> 00:02:50,080
So let's say change ID in the URL.

48
00:02:52,380 --> 00:02:56,470
So we can say window.history.

49
00:02:56,470 --> 00:02:59,880
So that is the history API of the browsers.

50
00:02:59,880 --> 00:03:01,890
And then on this history object,

51
00:03:01,890 --> 00:03:05,417
we can call the pushState method.

52
00:03:05,417 --> 00:03:08,890
And so this will basically allow us to change the URL

53
00:03:08,890 --> 00:03:11,220
without reloading the page.

54
00:03:11,220 --> 00:03:13,840
Now, pushState takes three arguments.

55
00:03:13,840 --> 00:03:16,380
And this first one here is called a state

56
00:03:16,380 --> 00:03:18,290
which doesn't really matter.

57
00:03:18,290 --> 00:03:19,613
You can just specify null.

58
00:03:20,460 --> 00:03:22,760
Then the second one is the title

59
00:03:22,760 --> 00:03:25,370
which is actually also not relevant.

60
00:03:25,370 --> 00:03:27,570
So we can just use an empty string.

61
00:03:27,570 --> 00:03:30,310
And then the one that actually is important

62
00:03:30,310 --> 00:03:33,473
is the third one, because this one is actually the URL.

63
00:03:34,800 --> 00:03:37,810
And so here we can simply put the hash

64
00:03:37,810 --> 00:03:41,623
and then the ID that we want to put onto the URL.

65
00:03:43,370 --> 00:03:48,163
So that is @model.state.recipe.id.

66
00:03:49,630 --> 00:03:51,690
And that's actually it.

67
00:03:51,690 --> 00:03:54,760
And we could also do all kinds of other stuff

68
00:03:54,760 --> 00:03:59,480
with the history API, like for example going back and forth

69
00:03:59,480 --> 00:04:02,420
just as if we were clicking the forward

70
00:04:02,420 --> 00:04:04,800
and back buttons in the browser.

71
00:04:04,800 --> 00:04:07,313
So we could do like this.

72
00:04:08,240 --> 00:04:10,993
Of course, it doesn't make sense in this situation,

73
00:04:12,020 --> 00:04:13,650
but maybe in some other situation you

74
00:04:13,650 --> 00:04:16,110
might find this one helpful.

75
00:04:16,110 --> 00:04:19,743
So automatically going back to the last page.

76
00:04:20,620 --> 00:04:24,300
So that should work now but let's not test it yet

77
00:04:24,300 --> 00:04:26,760
because the next thing that we want to do

78
00:04:26,760 --> 00:04:30,320
is to refactor these to our methods here,

79
00:04:30,320 --> 00:04:31,930
these two functions.

80
00:04:31,930 --> 00:04:36,040
So getJSON and sendJSON are almost the same right now.

81
00:04:36,040 --> 00:04:39,950
And so we can basically put them together just

82
00:04:39,950 --> 00:04:43,160
in one function called AJAX,

83
00:04:43,160 --> 00:04:46,030
because both of them are being done

84
00:04:46,030 --> 00:04:48,533
for doing an AJAX request.

85
00:04:51,280 --> 00:04:52,523
So just like this.

86
00:04:55,450 --> 00:04:59,060
And in this one we'll receive the URL

87
00:04:59,060 --> 00:05:00,850
and also the upload data

88
00:05:00,850 --> 00:05:04,760
but we will set this one to undefined by default.

89
00:05:04,760 --> 00:05:08,280
And so with this, when we call this AJAX function

90
00:05:08,280 --> 00:05:13,060
with only the URL, then of course there is no upload data.

91
00:05:13,060 --> 00:05:14,233
And then in that case,

92
00:05:15,140 --> 00:05:19,023
we can simply define the fetchPro as only this.

93
00:05:20,030 --> 00:05:21,880
So let's actually do that.

94
00:05:21,880 --> 00:05:25,963
So conditionally defining this fetchPro variable.

95
00:05:27,460 --> 00:05:32,460
So fetchPro and let's test if uploadData does exist.

96
00:05:35,350 --> 00:05:40,023
So if it does exist, then fetchPro should become this.

97
00:05:42,440 --> 00:05:45,063
So lets grab that, put that here.

98
00:05:50,190 --> 00:05:52,443
And otherwise, it will simply be this.

99
00:05:55,830 --> 00:05:57,210
And that's it.

100
00:05:57,210 --> 00:06:00,680
Now of course I could have used an if else statement,

101
00:06:00,680 --> 00:06:04,330
but then I would have had to declare this here

102
00:06:04,330 --> 00:06:06,430
as a, let variable outside

103
00:06:06,430 --> 00:06:09,570
and then change that variable in both the blocks.

104
00:06:09,570 --> 00:06:11,113
And that's not really nice.

105
00:06:12,429 --> 00:06:15,940
And so now we can, basically copy everything else here.

106
00:06:20,036 --> 00:06:21,860
And we don't need this one anymore

107
00:06:21,860 --> 00:06:23,960
and this should go all the way to the top.

108
00:06:25,850 --> 00:06:27,223
And that's actually it.

109
00:06:29,120 --> 00:06:31,723
So lets comment this one out.

110
00:06:36,260 --> 00:06:40,053
Just one final look, but everything looks good here.

111
00:06:41,070 --> 00:06:46,070
And so here now we can no longer import this one.

112
00:06:47,275 --> 00:06:48,725
But let's just keep it there.

113
00:06:50,700 --> 00:06:52,553
And we simply import AJAX.

114
00:06:57,060 --> 00:07:00,323
So here and here,

115
00:07:01,220 --> 00:07:04,133
and then down here for upload the recipe,

116
00:07:06,830 --> 00:07:07,663
the same thing.

117
00:07:09,610 --> 00:07:11,323
Okay, so let's try that.

118
00:07:12,890 --> 00:07:15,033
And we see that we still get the recipe.

119
00:07:17,050 --> 00:07:18,610
We also get to search.

120
00:07:18,610 --> 00:07:23,610
And now finally, let's add another test23 recipe here.

121
00:07:24,380 --> 00:07:26,550
Let's just change it up a little bit.

122
00:07:26,550 --> 00:07:29,893
And now again, take a look what happens to the ID here.

123
00:07:32,100 --> 00:07:35,760
So, you saw that it actually changed.

124
00:07:35,760 --> 00:07:38,280
And so, now the idea for new recipe

125
00:07:38,280 --> 00:07:40,483
is exactly that one that we have here.

126
00:07:41,350 --> 00:07:45,430
And also, it should now be in your bookmark

127
00:07:45,430 --> 00:07:46,913
and indeed it is.

128
00:07:48,350 --> 00:07:53,350
Okay, and so now if we reload this page, then you see

129
00:07:54,310 --> 00:07:57,933
that we are back at this recipe that we just created.

130
00:07:58,920 --> 00:07:59,840
Great.

131
00:07:59,840 --> 00:08:02,950
But now finally, let's use our keys

132
00:08:02,950 --> 00:08:07,950
or key in order to actually mark this recipe here

133
00:08:08,480 --> 00:08:12,890
as our own recipe by displaying like a small icon here.

134
00:08:12,890 --> 00:08:14,640
And so for that, we need to attach

135
00:08:14,640 --> 00:08:17,993
our key to all the API queries.

136
00:08:19,370 --> 00:08:22,890
So, we can add the key to this one here,

137
00:08:22,890 --> 00:08:27,210
simply by adding the key and of course also to this one.

138
00:08:27,210 --> 00:08:28,783
So the one which has the ID.

139
00:08:29,840 --> 00:08:32,953
So again at the end, question mark and then the key.

140
00:08:34,800 --> 00:08:38,313
Okay, so let's simply get this one here.

141
00:08:41,030 --> 00:08:42,160
So...

142
00:08:45,219 --> 00:08:47,300
This one is for the search results.

143
00:08:47,300 --> 00:08:49,630
Let's add this here.

144
00:08:49,630 --> 00:08:51,670
And here we already have a parameter.

145
00:08:51,670 --> 00:08:54,840
So here, it is then and.

146
00:08:54,840 --> 00:08:57,950
So, search &amp;key, but then

147
00:09:01,320 --> 00:09:02,260
Yeah, for this one.

148
00:09:02,260 --> 00:09:05,813
So for loading the recipe, there is nothing yet there.

149
00:09:07,500 --> 00:09:10,123
And so we can simply add our KEY like this.

150
00:09:11,520 --> 00:09:13,910
And so now by adding this KEY,

151
00:09:13,910 --> 00:09:16,170
especially in the search results,

152
00:09:16,170 --> 00:09:19,770
it will then load all the recipes including the ones

153
00:09:19,770 --> 00:09:22,470
that contain or own key.

154
00:09:22,470 --> 00:09:25,210
So if I search for avocado now

155
00:09:25,210 --> 00:09:30,160
because I have, well not here in the demo, but in this one.

156
00:09:30,160 --> 00:09:33,950
So I created a recipe which contains avocado.

157
00:09:33,950 --> 00:09:36,220
And so if I search for avocado now

158
00:09:37,464 --> 00:09:41,610
that should then contain this recipe that I just created.

159
00:09:42,760 --> 00:09:46,120
All right, now we now want to mark this

160
00:09:46,120 --> 00:09:48,620
as our own recipe again,

161
00:09:48,620 --> 00:09:51,713
here in the search results and also here.

162
00:09:53,460 --> 00:09:55,400
And so let's do that.

163
00:09:55,400 --> 00:09:58,110
And just as a side note again,

164
00:09:58,110 --> 00:10:00,690
if you're using your own API key

165
00:10:00,690 --> 00:10:03,950
then of course you will not see this recipe here

166
00:10:03,950 --> 00:10:08,110
because this recipe is linked to my API key.

167
00:10:08,110 --> 00:10:12,370
So as we see right here.

168
00:10:12,370 --> 00:10:14,120
So this is the key that I am using.

169
00:10:17,140 --> 00:10:20,410
All right, and the same hear in the results.

170
00:10:20,410 --> 00:10:22,230
So here in all the results you will see

171
00:10:22,230 --> 00:10:26,120
that my own one has the key.

172
00:10:26,120 --> 00:10:27,253
So this first one,

173
00:10:28,570 --> 00:10:31,550
right, so TEST AVOCADO, it has my key,

174
00:10:31,550 --> 00:10:33,823
but the other ones of course do not.

175
00:10:36,470 --> 00:10:39,350
But anyway, let's noW go to the recipe view

176
00:10:39,350 --> 00:10:41,450
and also the preview view.

177
00:10:41,450 --> 00:10:43,810
So the one responsible for these results

178
00:10:43,810 --> 00:10:46,860
and add the logic there to actually display

179
00:10:48,280 --> 00:10:49,763
that small icon there.

180
00:10:51,270 --> 00:10:55,423
So, we don't need this one anymore and neither this one.

181
00:10:59,800 --> 00:11:02,233
So recipeView and PreviewView.

182
00:11:04,370 --> 00:11:09,370
So the code for that is somewhere there at the top.

183
00:11:12,000 --> 00:11:12,833
Here it is.

184
00:11:12,833 --> 00:11:14,123
So user generated.

185
00:11:15,310 --> 00:11:19,120
And I guess, I wrongly deleted some code here earlier.

186
00:11:19,120 --> 00:11:21,860
So let's go back to the HTML

187
00:11:23,900 --> 00:11:27,283
and copy it back like this.

188
00:11:35,320 --> 00:11:37,603
And now the indentation is messed up.

189
00:11:40,260 --> 00:11:44,533
Then here, we need to replace that with icons once again.

190
00:11:46,470 --> 00:11:49,800
And so now, all we will do with this element here

191
00:11:49,800 --> 00:11:52,270
is to basically add the hidden class

192
00:11:52,270 --> 00:11:55,070
if there is no key on the recipe,

193
00:11:55,070 --> 00:11:58,730
but if there is a key then we will add no class.

194
00:11:58,730 --> 00:12:00,480
And so then it will become visible.

195
00:12:02,450 --> 00:12:03,520
Okay.

196
00:12:03,520 --> 00:12:07,667
So that's simply, this.data.key.

197
00:12:10,030 --> 00:12:14,023
So if there is a key, then we want to add no class at all.

198
00:12:15,010 --> 00:12:19,930
But if there is no key, then we add the hidden class.

199
00:12:19,930 --> 00:12:23,413
Okay, and now the same here in the previewView,

200
00:12:24,900 --> 00:12:27,250
and actually here, we don't even have that yet.

201
00:12:29,180 --> 00:12:32,210
So, let's actually grab the same code

202
00:12:32,210 --> 00:12:37,210
from the recipeView because it is almost the same.

203
00:12:39,020 --> 00:12:41,140
And let's just see that here to see

204
00:12:41,140 --> 00:12:42,543
where we have to paste it.

205
00:12:43,880 --> 00:12:47,833
Well, it's not here, so let's just paste it anywhere.

206
00:12:51,560 --> 00:12:54,020
So let's put it right here.

207
00:12:54,020 --> 00:12:56,430
And then it's probably gonna called

208
00:12:57,860 --> 00:13:00,173
the preview user generated.

209
00:13:01,330 --> 00:13:03,653
All right, or actually,

210
00:13:04,670 --> 00:13:07,313
I think that it is inside of this div here.

211
00:13:08,240 --> 00:13:10,973
So let's move that down a little bit.

212
00:13:12,440 --> 00:13:14,810
Fix the indentation here once again

213
00:13:14,810 --> 00:13:16,210
to make it easier to see

214
00:13:21,010 --> 00:13:22,303
just like this.

215
00:13:24,270 --> 00:13:26,883
All right, and so let's now try it out.

216
00:13:28,900 --> 00:13:32,603
So, let's search for avocado here again,

217
00:13:33,740 --> 00:13:36,180
and then here it is.

218
00:13:36,180 --> 00:13:39,610
And you see that now we have this icon here.

219
00:13:39,610 --> 00:13:43,623
While if we click some other recipe then, it's not there.

220
00:13:45,080 --> 00:13:46,240
All right.

221
00:13:46,240 --> 00:13:49,120
Now it's only still missing here,

222
00:13:49,120 --> 00:13:53,170
but that is because we actually never added this key

223
00:13:53,170 --> 00:13:54,453
to the search data.

224
00:13:55,580 --> 00:13:57,403
So let's go back to our model.

225
00:13:58,530 --> 00:14:01,293
And so here in the load search results,

226
00:14:02,780 --> 00:14:04,450
this is where we create the data

227
00:14:04,450 --> 00:14:06,833
that will then be put in the state.

228
00:14:07,700 --> 00:14:11,480
Right, so state.search.results will become

229
00:14:11,480 --> 00:14:13,010
these objects here.

230
00:14:13,010 --> 00:14:16,470
And so that only contains ID, title, publisher

231
00:14:16,470 --> 00:14:19,350
and image, but not the key.

232
00:14:19,350 --> 00:14:21,230
And so let's grab this code

233
00:14:21,230 --> 00:14:23,890
that we used here in order to add the key

234
00:14:23,890 --> 00:14:28,173
to the recipe object and do that here as well.

235
00:14:30,750 --> 00:14:35,450
Right, then here, we just have to change this to rec,

236
00:14:35,450 --> 00:14:37,623
just like all the others here.

237
00:14:38,490 --> 00:14:41,083
And then with that, we should be good to go.

238
00:14:42,440 --> 00:14:43,563
So let's see.

239
00:14:46,000 --> 00:14:48,880
Search for avocado one more time.

240
00:14:48,880 --> 00:14:50,363
And now it is there.

241
00:14:51,602 --> 00:14:52,435
Do you see?

242
00:14:53,300 --> 00:14:54,133
Great.

243
00:14:55,460 --> 00:14:58,070
So again, this one does not have the icon

244
00:14:58,070 --> 00:15:00,980
while this one here, of course now has.

245
00:15:00,980 --> 00:15:01,883
So right here.

246
00:15:02,960 --> 00:15:04,410
Beautiful.

247
00:15:04,410 --> 00:15:06,530
So this is just great.

248
00:15:06,530 --> 00:15:10,500
Let me know close this here and create one final,

249
00:15:10,500 --> 00:15:15,290
more real recipe here for pizza that we have been using

250
00:15:15,290 --> 00:15:16,123
all the time.

251
00:15:17,100 --> 00:15:21,460
So let me get rid of all of these weird bookmarks.

252
00:15:21,460 --> 00:15:23,580
Oh, and you see that also here,

253
00:15:23,580 --> 00:15:26,690
we now have this icon, right?

254
00:15:26,690 --> 00:15:30,820
And so that's the beauty of using the same preview here

255
00:15:30,820 --> 00:15:33,453
in the results and also for the bookmarks.

256
00:15:34,610 --> 00:15:35,630
Right?

257
00:15:35,630 --> 00:15:38,893
So that makes everything really more reusable.

258
00:15:42,790 --> 00:15:43,943
What's happening here?

259
00:15:46,210 --> 00:15:47,263
Okay.

260
00:15:49,360 --> 00:15:51,180
Just getting rid of all of them

261
00:15:51,180 --> 00:15:55,173
because these recipes are not really that interesting.

262
00:15:56,490 --> 00:16:01,490
So let's now add a super pizza.

263
00:16:01,750 --> 00:16:04,973
Then the URL, let's make it jonas.io.

264
00:16:06,160 --> 00:16:10,333
So that's HTTPS, jonas.io.

265
00:16:11,230 --> 00:16:14,763
Then let's go to Unsplash and grab some image from there.

266
00:16:16,440 --> 00:16:21,163
Just to make this again, a little bit more real world.

267
00:16:22,150 --> 00:16:24,893
So this one here looks quite nice.

268
00:16:26,320 --> 00:16:29,573
So let's right click and copy image address.

269
00:16:31,544 --> 00:16:32,773
Okay.

270
00:16:38,310 --> 00:16:41,513
Then here, Jonas Schmedtmann,

271
00:16:43,000 --> 00:16:48,000
prep time 75 minutes, two servings.

272
00:16:48,130 --> 00:16:52,343
And here let's just use one kilogram of flour.

273
00:16:54,780 --> 00:16:59,250
Then some tomato sauce and the rest doesn't really matter.

274
00:17:02,900 --> 00:17:05,500
Okay, so it looks correct.

275
00:17:05,500 --> 00:17:08,803
Let's upload it and it was successful.

276
00:17:09,860 --> 00:17:12,123
And here we get the super pizza.

277
00:17:14,290 --> 00:17:19,290
Let's see here, and indeed we can update our servings here.

278
00:17:20,340 --> 00:17:23,040
We are in the Bookmarks.

279
00:17:23,040 --> 00:17:27,810
And if I now search for pizza, then here, it appears right

280
00:17:27,810 --> 00:17:31,280
at the first position with this beautiful image.

281
00:17:31,280 --> 00:17:33,860
And so, that means that our application

282
00:17:33,860 --> 00:17:35,683
is now basically finished.

283
00:17:36,690 --> 00:17:40,150
I just spotted a small bug here.

284
00:17:40,150 --> 00:17:42,620
So in this ingredient description,

285
00:17:42,620 --> 00:17:45,530
remember that we replaced all the spaces.

286
00:17:45,530 --> 00:17:49,730
And so with that we lost the space between tomato sauce.

287
00:17:49,730 --> 00:17:51,940
So let's quickly go fix that

288
00:17:51,940 --> 00:17:54,490
but I will not add another recipe.

289
00:17:54,490 --> 00:17:56,680
So we're not going to test this.

290
00:17:56,680 --> 00:18:01,113
All I will do is to fix this problem down here.

291
00:18:02,400 --> 00:18:06,703
So instead of this replaceAll here, let's do it differently.

292
00:18:08,130 --> 00:18:11,740
So I will split the string into multiple parts,

293
00:18:11,740 --> 00:18:13,770
which will then return an array.

294
00:18:13,770 --> 00:18:15,840
And then I will loop over that array

295
00:18:15,840 --> 00:18:17,683
and trim each of the elements.

296
00:18:18,690 --> 00:18:20,763
So map to create a new array.

297
00:18:21,760 --> 00:18:23,730
Let's just call it element here

298
00:18:23,730 --> 00:18:28,730
and then just return element.trim, just like this.

299
00:18:29,370 --> 00:18:33,683
Okay, and so now if we add just something to test here.

300
00:18:34,940 --> 00:18:38,557
So adding some spaces here and maybe here, and here.

301
00:18:44,720 --> 00:18:47,820
And so you see this work just fine now.

302
00:18:47,820 --> 00:18:52,820
Oh, now we have two recipes for some reason.

303
00:18:52,860 --> 00:18:55,140
Not sure why that was, but you see

304
00:18:55,140 --> 00:18:58,393
that the spaces that are inserted there, they are gone.

305
00:18:59,740 --> 00:19:02,360
Okay, let's remove this one here.

306
00:19:02,360 --> 00:19:04,493
I don't want to see that again.

307
00:19:05,570 --> 00:19:10,470
And so, yeah, our application is now feature complete.

308
00:19:10,470 --> 00:19:13,690
So if we check out our flowchart's part three,

309
00:19:13,690 --> 00:19:18,690
everything here is now implemented and that's just awesome.

310
00:19:19,270 --> 00:19:23,010
So congratulations for going through this huge,

311
00:19:23,010 --> 00:19:27,040
huge project together with me and making it all the way

312
00:19:27,040 --> 00:19:27,923
to the end.

313
00:19:28,760 --> 00:19:32,320
And now in the next final lecture of the section,

314
00:19:32,320 --> 00:19:35,840
I will just quickly show you how we can write documentations

315
00:19:35,840 --> 00:19:39,810
for functions in order to make other people understand

316
00:19:39,810 --> 00:19:41,750
our code a little bit better,

317
00:19:41,750 --> 00:19:43,860
and then and just like before,

318
00:19:43,860 --> 00:19:46,240
I have some final suggestions for you.

319
00:19:46,240 --> 00:19:48,490
So like, features and improvements

320
00:19:48,490 --> 00:19:50,040
that you will be able to implement

321
00:19:50,040 --> 00:19:53,970
on yourself if you want to practice your skills.

322
00:19:53,970 --> 00:19:55,903
So I hope to see you there soon.

