﻿1
00:00:01,140 --> 00:00:04,020
‫Welcome to our biggest project yet.

2
00:00:04,020 --> 00:00:06,123
‫Which is gonna be called WorldWise.

3
00:00:07,230 --> 00:00:09,720
‫And what's special about this one is

4
00:00:09,720 --> 00:00:11,070
‫that we're going to use Vite

5
00:00:11,070 --> 00:00:12,540
‫for the first time

6
00:00:12,540 --> 00:00:14,340
‫to set up this project

7
00:00:14,340 --> 00:00:17,220
‫instead of Create React App.

8
00:00:17,220 --> 00:00:18,990
‫But before we do that,

9
00:00:18,990 --> 00:00:22,443
‫let's first take a quick look at the project.

10
00:00:23,700 --> 00:00:25,320
‫And here it is.

11
00:00:25,320 --> 00:00:28,410
‫So this is the WorldWise application.

12
00:00:28,410 --> 00:00:29,850
‫And for the first time,

13
00:00:29,850 --> 00:00:33,423
‫this actually looks more like a real world product.

14
00:00:34,350 --> 00:00:37,590
‫Now, here we have this page link

15
00:00:37,590 --> 00:00:40,650
‫or this page navigation where we can click

16
00:00:40,650 --> 00:00:44,580
‫and it will then lead us to these different pages.

17
00:00:44,580 --> 00:00:47,730
‫Now, notice how up here in the URL bar,

18
00:00:47,730 --> 00:00:51,420
‫as we move to different pages, it actually changes.

19
00:00:51,420 --> 00:00:55,620
‫So now I'm on the pricing page, and so then it says pricing,

20
00:00:55,620 --> 00:00:59,850
‫but if I go to the product page, then there it says product.

21
00:00:59,850 --> 00:01:01,770
‫And the same on the login page.

22
00:01:01,770 --> 00:01:03,660
‫And if I click here on the logo,

23
00:01:03,660 --> 00:01:06,570
‫then we go back to basically the homepage

24
00:01:06,570 --> 00:01:09,450
‫where we then are at the root URL.

25
00:01:09,450 --> 00:01:12,660
‫So basically, we have these different URLs

26
00:01:12,660 --> 00:01:15,780
‫matched to different views in the application.

27
00:01:15,780 --> 00:01:19,680
‫And so this makes this a single page application.

28
00:01:19,680 --> 00:01:23,070
‫And more about that in the next lecture.

29
00:01:23,070 --> 00:01:25,050
‫But now, let's actually take a look

30
00:01:25,050 --> 00:01:27,213
‫at the heart of the application.

31
00:01:28,451 --> 00:01:29,284
‫And so for that,

32
00:01:29,284 --> 00:01:30,870
‫let's come to the login page.

33
00:01:30,870 --> 00:01:34,320
‫Yeah, this is actually really just a fake login

34
00:01:34,320 --> 00:01:36,480
‫where we just click this button here,

35
00:01:36,480 --> 00:01:40,140
‫which will then take us to the application.

36
00:01:40,140 --> 00:01:41,858
‫So in this application, basically,

37
00:01:41,858 --> 00:01:44,696
‫users can register all the cities

38
00:01:44,696 --> 00:01:47,520
‫that they have ever traveled to.

39
00:01:47,520 --> 00:01:48,780
‫So here on the left side,

40
00:01:48,780 --> 00:01:51,690
‫we have a list of all these cities

41
00:01:51,690 --> 00:01:54,689
‫and also the countries which automatically come

42
00:01:54,689 --> 00:01:56,520
‫from the cities.

43
00:01:56,520 --> 00:01:57,960
‫And notice how actually here,

44
00:01:57,960 --> 00:02:02,880
‫the URL also changes between countries and cities.

45
00:02:02,880 --> 00:02:05,490
‫So this also makes part of the routing

46
00:02:05,490 --> 00:02:07,773
‫that we will learn about in the next lecture.

47
00:02:08,790 --> 00:02:11,520
‫But anyway, here on the right side is then

48
00:02:11,520 --> 00:02:13,260
‫where we have a map

49
00:02:13,260 --> 00:02:17,040
‫and we can go to our current position by clicking here.

50
00:02:17,040 --> 00:02:20,550
‫So this is using the geolocation API in the background.

51
00:02:20,550 --> 00:02:23,460
‫And so for that, we need to give our permission.

52
00:02:23,460 --> 00:02:26,130
‫And then after getting our position,

53
00:02:26,130 --> 00:02:29,970
‫the map will move to our current location.

54
00:02:29,970 --> 00:02:31,740
‫So let's wait for that.

55
00:02:31,740 --> 00:02:32,823
‫And there we are.

56
00:02:34,020 --> 00:02:35,070
‫All right.

57
00:02:35,070 --> 00:02:39,003
‫And now let's see that I went here to Sevila.

58
00:02:39,840 --> 00:02:40,833
‫So I click here.

59
00:02:41,700 --> 00:02:45,180
‫And so then, actually the city name gets fetched

60
00:02:45,180 --> 00:02:47,490
‫from an external API.

61
00:02:47,490 --> 00:02:48,900
‫We get our date,

62
00:02:48,900 --> 00:02:52,320
‫and then I can just say something about my trip

63
00:02:52,320 --> 00:02:55,170
‫and then I add that to the list.

64
00:02:55,170 --> 00:02:59,340
‫So we see then we get this marker here, which we can click.

65
00:02:59,340 --> 00:03:03,090
‫And yeah, it got added to our list right here.

66
00:03:03,090 --> 00:03:07,470
‫And I can also delete cities by clicking here.

67
00:03:07,470 --> 00:03:09,600
‫So you saw here this loading spinner.

68
00:03:09,600 --> 00:03:11,220
‫And the reason for that is

69
00:03:11,220 --> 00:03:14,220
‫that this list of cities is once again,

70
00:03:14,220 --> 00:03:17,414
‫fetched from a fake API just like we used

71
00:03:17,414 --> 00:03:19,353
‫in our previous project.

72
00:03:20,310 --> 00:03:24,000
‫But anyway, we can of course also click on one

73
00:03:24,000 --> 00:03:27,390
‫of these cities and that will then move the map there

74
00:03:27,390 --> 00:03:29,790
‫and it will show us all the details here

75
00:03:29,790 --> 00:03:34,350
‫about the city name, the date we went there and our notes.

76
00:03:34,350 --> 00:03:37,923
‫And even here, this link to the Wikipedia article.

77
00:03:39,030 --> 00:03:39,930
‫Okay.

78
00:03:39,930 --> 00:03:42,780
‫And so that's pretty much it.

79
00:03:42,780 --> 00:03:45,090
‫So that's how this application works

80
00:03:45,090 --> 00:03:48,120
‫and I think this is our nicest application yet

81
00:03:48,120 --> 00:03:50,553
‫and the most real world for sure.

82
00:03:51,420 --> 00:03:53,070
‫So with that being said,

83
00:03:53,070 --> 00:03:56,040
‫let's now actually set up a new application

84
00:03:56,040 --> 00:04:00,144
‫on your computer using Vite for the very first time.

85
00:04:00,144 --> 00:04:02,520
‫So let's minimize this here.

86
00:04:02,520 --> 00:04:04,950
‫And then just as always,

87
00:04:04,950 --> 00:04:07,500
‫we need to open up a new terminal

88
00:04:07,500 --> 00:04:10,380
‫or a command prompt on Windows,

89
00:04:10,380 --> 00:04:15,380
‫and move to the folder where we want to create that project.

90
00:04:15,420 --> 00:04:19,080
‫And so now, instead of using Create React App,

91
00:04:19,080 --> 00:04:22,503
‫we will do npm, so not npx.

92
00:04:23,550 --> 00:04:26,580
‫So npm create vite.

93
00:04:26,580 --> 00:04:27,720
‫And in the future,

94
00:04:27,720 --> 00:04:31,170
‫once you start building your own applications with Vite,

95
00:04:31,170 --> 00:04:34,530
‫you will then use @latest

96
00:04:34,530 --> 00:04:37,320
‫so to use the latest version of Vite.

97
00:04:37,320 --> 00:04:38,550
‫But here in this course,

98
00:04:38,550 --> 00:04:41,010
‫I now want you to use version four

99
00:04:41,010 --> 00:04:44,130
‫so that we are all using the same thing.

100
00:04:44,130 --> 00:04:46,980
‫And that's actually all the command that you need.

101
00:04:46,980 --> 00:04:49,740
‫Now, since you are using this command for the first time,

102
00:04:49,740 --> 00:04:53,220
‫it will ask you to install the Vite package.

103
00:04:53,220 --> 00:04:57,360
‫And so then you just hit enter or Y to confirm that.

104
00:04:57,360 --> 00:05:00,630
‫And afterwards, you will then see this prompt here

105
00:05:00,630 --> 00:05:02,610
‫for the project name.

106
00:05:02,610 --> 00:05:05,599
‫Okay, so since I already used Vite before,

107
00:05:05,599 --> 00:05:08,580
‫that's not showing up here on my screen

108
00:05:08,580 --> 00:05:11,880
‫but you'll have this step here between these two.

109
00:05:11,880 --> 00:05:13,200
‫So just confirm that.

110
00:05:13,200 --> 00:05:15,510
‫That will then quickly install Vite

111
00:05:15,510 --> 00:05:18,333
‫and then here you can enter the project name.

112
00:05:19,410 --> 00:05:23,400
‫So this one, again, is called worldwise.

113
00:05:23,400 --> 00:05:25,890
‫And then here we can select the framework

114
00:05:25,890 --> 00:05:26,973
‫that we want to use.

115
00:05:27,930 --> 00:05:30,600
‫So remember how I showed you in the beginning

116
00:05:30,600 --> 00:05:33,693
‫of the course that Vite is really quite different

117
00:05:33,693 --> 00:05:36,690
‫from Create React App.

118
00:05:36,690 --> 00:05:38,580
‫So Vite is basically more

119
00:05:38,580 --> 00:05:41,730
‫of a modern build tool that also happens

120
00:05:41,730 --> 00:05:45,960
‫to have a few templates for all these different frameworks.

121
00:05:45,960 --> 00:05:48,360
‫So we could even use Vanilla JavaScript

122
00:05:48,360 --> 00:05:50,430
‫but of course we want React.

123
00:05:50,430 --> 00:05:52,200
‫And so with our arrow keys,

124
00:05:52,200 --> 00:05:54,570
‫we can navigate to React,

125
00:05:54,570 --> 00:05:57,210
‫hit enter and then, finally to finish,

126
00:05:57,210 --> 00:05:59,140
‫we just select JavaScript here

127
00:06:00,060 --> 00:06:01,513
‫and then that's it.

128
00:06:02,490 --> 00:06:05,460
‫So now it tells us to go into the folder

129
00:06:05,460 --> 00:06:08,040
‫and to then install the dependencies,

130
00:06:08,040 --> 00:06:10,680
‫but let's not do it that way.

131
00:06:10,680 --> 00:06:12,960
‫So let's instead open up our folder

132
00:06:12,960 --> 00:06:15,123
‫in VS Code and do it from there.

133
00:06:16,830 --> 00:06:19,263
‫So again, quickly renaming it here.

134
00:06:22,440 --> 00:06:26,340
‫Okay, let's make it a bit bigger actually.

135
00:06:26,340 --> 00:06:27,173
‫And then let's

136
00:06:28,050 --> 00:06:29,640
‫open up the terminal.

137
00:06:29,640 --> 00:06:30,690
‫And so from here,

138
00:06:30,690 --> 00:06:34,200
‫we now need to actually install the dependencies manually.

139
00:06:34,200 --> 00:06:37,380
‫So at Create React App, we didn't have to do that.

140
00:06:37,380 --> 00:06:39,240
‫So it would already then contain

141
00:06:39,240 --> 00:06:44,130
‫the note modules folder here, but this one didn't.

142
00:06:44,130 --> 00:06:49,130
‫So let's just type npm install or just npm i for short.

143
00:06:50,040 --> 00:06:52,710
‫And so this will then install all the packages

144
00:06:52,710 --> 00:06:56,580
‫but it will be a lot faster than with Create React App.

145
00:06:56,580 --> 00:07:00,870
‫So there's a lot less packages necessary apparently.

146
00:07:00,870 --> 00:07:03,390
‫So this is going to be a lot faster.

147
00:07:03,390 --> 00:07:05,340
‫But while this is installing,

148
00:07:05,340 --> 00:07:08,160
‫and actually now it already finished,

149
00:07:08,160 --> 00:07:12,390
‫but what I wanted to do now was just to take a quick look

150
00:07:12,390 --> 00:07:14,370
‫at the file structure here.

151
00:07:14,370 --> 00:07:16,350
‫So we have our note modules again

152
00:07:16,350 --> 00:07:19,980
‫which will contain all the libraries necessary.

153
00:07:19,980 --> 00:07:22,020
‫so React, React Dom,

154
00:07:22,020 --> 00:07:23,610
‫and a bunch of other ones

155
00:07:23,610 --> 00:07:25,747
‫that are necessary behind the scenes.

156
00:07:25,747 --> 00:07:28,680
‫Then we have also the public folder again

157
00:07:28,680 --> 00:07:33,680
‫but this time index.html is actually outside that folder.

158
00:07:33,690 --> 00:07:36,090
‫So that's another small difference here.

159
00:07:36,090 --> 00:07:37,860
‫And the reason for that is simply

160
00:07:37,860 --> 00:07:41,610
‫that the developer who maintains this template here

161
00:07:41,610 --> 00:07:45,090
‫thinks basically that this is the best structure.

162
00:07:45,090 --> 00:07:48,450
‫So once again, React really doesn't care about this

163
00:07:48,450 --> 00:07:50,220
‫and it doesn't even know,

164
00:07:50,220 --> 00:07:53,670
‫basically, what the structure here of the folder is.

165
00:07:53,670 --> 00:07:57,000
‫So remember, React really only is concerned

166
00:07:57,000 --> 00:08:00,510
‫about displaying components onto the screen.

167
00:08:00,510 --> 00:08:02,583
‫It doesn't care about the file structure,

168
00:08:03,480 --> 00:08:05,310
‫but of course we do.

169
00:08:05,310 --> 00:08:08,910
‫So let's just take a look here at our source folder.

170
00:08:08,910 --> 00:08:13,020
‫And so here we see that instead of an index.js,

171
00:08:13,020 --> 00:08:16,200
‫we have this main.jsx.

172
00:08:16,200 --> 00:08:19,620
‫So the file extension is now this jsx

173
00:08:19,620 --> 00:08:21,600
‫which as we can see down here,

174
00:08:21,600 --> 00:08:24,870
‫stands for JavaScript JSX.

175
00:08:24,870 --> 00:08:28,350
‫So it's pretty much the same as a JavaScript file

176
00:08:28,350 --> 00:08:32,190
‫but Vite really needs this to be JSX files

177
00:08:32,190 --> 00:08:34,685
‫and not just JS files.

178
00:08:34,685 --> 00:08:38,430
‫So here, the entry point is not index.js,

179
00:08:38,430 --> 00:08:41,070
‫but again, this file called Main.

180
00:08:41,070 --> 00:08:42,660
‫And notice how this one here

181
00:08:42,660 --> 00:08:45,750
‫almost doesn't have any junk at all.

182
00:08:45,750 --> 00:08:48,690
‫So unlike the index.js file

183
00:08:48,690 --> 00:08:51,003
‫that we get from Create React App.

184
00:08:52,590 --> 00:08:53,423
‫All right.

185
00:08:53,423 --> 00:08:58,140
‫Then here, we also have our app.jsx file.

186
00:08:58,140 --> 00:09:01,110
‫As always, this one is just a bit different

187
00:09:01,110 --> 00:09:04,770
‫but let's just, as always, get rid of everything.

188
00:09:04,770 --> 00:09:07,950
‫And then here I will use that snippet

189
00:09:07,950 --> 00:09:10,380
‫that we started using in the previous section

190
00:09:10,380 --> 00:09:13,083
‫to very quickly scaffold a new component.

191
00:09:14,820 --> 00:09:17,040
‫So for now, let's just write the name

192
00:09:17,040 --> 00:09:18,740
‫of the application here.

193
00:09:18,740 --> 00:09:20,883
‫Just so we have something.

194
00:09:21,930 --> 00:09:25,503
‫And then let's also get rid of all this CSS.

195
00:09:26,370 --> 00:09:28,860
‫We will get some new one soon.

196
00:09:28,860 --> 00:09:33,033
‫And then here we need to remove that line of code as well.

197
00:09:34,410 --> 00:09:35,490
‫Okay.

198
00:09:35,490 --> 00:09:39,690
‫And so now we are ready to start the application.

199
00:09:39,690 --> 00:09:41,880
‫However, here is another difference.

200
00:09:41,880 --> 00:09:44,790
‫We don't do that with npm start.

201
00:09:44,790 --> 00:09:47,100
‫So instead, we can check out here

202
00:09:47,100 --> 00:09:49,710
‫that we have this dev script.

203
00:09:49,710 --> 00:09:54,333
‫And so here, we need to run npm run dev.

204
00:09:55,962 --> 00:09:56,970
‫Okay.

205
00:09:56,970 --> 00:10:00,210
‫And so that's running now successfully.

206
00:10:00,210 --> 00:10:04,620
‫But notice how it actually didn't open up a new browser tab.

207
00:10:04,620 --> 00:10:06,543
‫So we need to manually do that.

208
00:10:08,880 --> 00:10:13,880
‫Now, let's make this a lot smaller here like this

209
00:10:14,280 --> 00:10:17,454
‫and then I can just command or control click

210
00:10:17,454 --> 00:10:22,454
‫here on this link and then it opens up our page.

211
00:10:22,650 --> 00:10:24,933
‫And you see it is working great.

212
00:10:27,300 --> 00:10:30,810
‫And as always, let's also bring up our console here

213
00:10:30,810 --> 00:10:33,123
‫which we are going to need all the time.

214
00:10:34,680 --> 00:10:36,090
‫And now to finish,

215
00:10:36,090 --> 00:10:39,600
‫remember how I also told you at the beginning of the course

216
00:10:39,600 --> 00:10:42,990
‫that the great thing about Create React App is

217
00:10:42,990 --> 00:10:44,130
‫that it already comes

218
00:10:44,130 --> 00:10:47,820
‫with all the important developer tools pre-installed.

219
00:10:47,820 --> 00:10:52,350
‫And the most important one of those is by far ESLint.

220
00:10:52,350 --> 00:10:56,040
‫So hopefully you saw throughout this course until this point

221
00:10:56,040 --> 00:10:58,350
‫that ESLint helped us so much

222
00:10:58,350 --> 00:11:02,010
‫and prevented so many bugs from happening.

223
00:11:02,010 --> 00:11:05,400
‫So building a React app without ESLint

224
00:11:05,400 --> 00:11:07,830
‫is a bit like coding half-blinded.

225
00:11:07,830 --> 00:11:10,140
‫So we really don't want that.

226
00:11:10,140 --> 00:11:13,710
‫And so we now need to config ESLint here

227
00:11:13,710 --> 00:11:15,810
‫in our Vite project.

228
00:11:15,810 --> 00:11:18,780
‫So again, we need to do that manually each time

229
00:11:18,780 --> 00:11:21,510
‫that we set up a new project with Vite.

230
00:11:21,510 --> 00:11:23,490
‫So that can be a bit annoying

231
00:11:23,490 --> 00:11:26,640
‫and that's the reason why I told you that for learning,

232
00:11:26,640 --> 00:11:30,693
‫it is just good enough to actually use Create React App.

233
00:11:31,560 --> 00:11:34,380
‫But yeah, now we are using Vite.

234
00:11:34,380 --> 00:11:38,160
‫And so let's then config ESLint.

235
00:11:38,160 --> 00:11:41,643
‫Let me just show you an example here of why we need that.

236
00:11:42,750 --> 00:11:45,300
‫So let's say we define this variable

237
00:11:45,300 --> 00:11:46,890
‫and we are not using it.

238
00:11:46,890 --> 00:11:49,860
‫And so then usually ESLint would warn us

239
00:11:49,860 --> 00:11:52,470
‫by highlighting this variable here

240
00:11:52,470 --> 00:11:53,943
‫with that yellow underline.

241
00:11:55,530 --> 00:11:58,470
‫So that's what we want to get back, basically.

242
00:11:58,470 --> 00:12:01,110
‫So let's open up a new terminal here.

243
00:12:01,110 --> 00:12:03,060
‫So by clicking this button here.

244
00:12:03,060 --> 00:12:03,930
‫And so with this,

245
00:12:03,930 --> 00:12:07,473
‫we keep our application running here in this other process.

246
00:12:08,580 --> 00:12:10,410
‫So to configure ESLint,

247
00:12:10,410 --> 00:12:13,650
‫we need to install a few NPM packages.

248
00:12:13,650 --> 00:12:17,280
‫So that's ESLint itself.

249
00:12:17,280 --> 00:12:21,480
‫Then the Vite ESLint plugin.

250
00:12:21,480 --> 00:12:26,480
‫So vite-plugin-eslint.

251
00:12:26,550 --> 00:12:28,500
‫And finally, we also need to install

252
00:12:28,500 --> 00:12:32,190
‫all the React-specific ESLint rules.

253
00:12:32,190 --> 00:12:37,177
‫So that's eslint-config-react-app.

254
00:12:38,430 --> 00:12:41,100
‫So those are our three packages

255
00:12:41,100 --> 00:12:43,950
‫and then we need to save them as dependencies.

256
00:12:43,950 --> 00:12:47,103
‫So dev dependencies with save-dev.

257
00:12:48,120 --> 00:12:53,013
‫And then here, apparently I forgot the install keyword.

258
00:12:54,540 --> 00:12:56,250
‫And so let's see.

259
00:12:56,250 --> 00:12:59,340
‫So this should now install these three packages.

260
00:12:59,340 --> 00:13:02,970
‫And so next, we need to actually config our project here

261
00:13:02,970 --> 00:13:05,013
‫to integrate with these packages.

262
00:13:06,000 --> 00:13:09,570
‫So the first step was to install those three packages

263
00:13:09,570 --> 00:13:12,570
‫and the second one is to create a new file

264
00:13:12,570 --> 00:13:15,153
‫called .eslintrc.json.

265
00:13:18,780 --> 00:13:20,700
‫And so here we can basically configure

266
00:13:20,700 --> 00:13:23,130
‫the behavior of ESLint.

267
00:13:23,130 --> 00:13:24,030
‫And in this case,

268
00:13:24,030 --> 00:13:27,960
‫what we want to do is to extend the default rules

269
00:13:27,960 --> 00:13:31,833
‫of ESLint with those React rules that we just installed.

270
00:13:32,970 --> 00:13:35,440
‫So just create an object like this

271
00:13:36,930 --> 00:13:41,917
‫and then extends and then react-app.

272
00:13:42,900 --> 00:13:46,020
‫So again, these are the ESLint rules

273
00:13:46,020 --> 00:13:48,030
‫that we just installed before.

274
00:13:48,030 --> 00:13:50,973
‫So basically these ones right here.

275
00:13:52,800 --> 00:13:56,940
‫So with this, we extend ESLint to work with those rules.

276
00:13:56,940 --> 00:14:01,590
‫And then finally, we also need to config our Vite project

277
00:14:01,590 --> 00:14:04,980
‫with this vite.config.js file.

278
00:14:04,980 --> 00:14:07,590
‫So on this file we can configure all kinds of things

279
00:14:07,590 --> 00:14:10,980
‫about development and building of our project.

280
00:14:10,980 --> 00:14:15,810
‫But here, all we need to do is to now add the ESLint plugin

281
00:14:15,810 --> 00:14:17,430
‫to this array.

282
00:14:17,430 --> 00:14:20,283
‫So for that, we first import that here.

283
00:14:21,120 --> 00:14:26,120
‫So import eslint from the vite-plugin-eslint.

284
00:14:27,420 --> 00:14:32,223
‫And then finally, we add that here to our plugins array.

285
00:14:33,300 --> 00:14:37,890
‫Give it a save, and that should then work.

286
00:14:37,890 --> 00:14:40,740
‫So our application got reloaded here a few times.

287
00:14:40,740 --> 00:14:42,450
‫There are no more errors.

288
00:14:42,450 --> 00:14:46,020
‫Here, we can also close this process.

289
00:14:46,020 --> 00:14:50,190
‫And you see that now ESLint is back to working.

290
00:14:50,190 --> 00:14:54,030
‫So we get the error right here in our VS Code

291
00:14:54,030 --> 00:14:56,550
‫and also even that warning down here

292
00:14:56,550 --> 00:15:00,393
‫in our output from the Vite development process.

293
00:15:03,000 --> 00:15:04,080
‫So let's get rid of that

294
00:15:04,080 --> 00:15:06,873
‫because now we know that this is actually working.

295
00:15:07,800 --> 00:15:08,640
‫Great!

296
00:15:08,640 --> 00:15:11,550
‫So with this, we have Vite correctly set up.

297
00:15:11,550 --> 00:15:13,140
‫It is a little bit of work,

298
00:15:13,140 --> 00:15:16,260
‫but you just have to write down somewhere how it works

299
00:15:16,260 --> 00:15:18,210
‫and then do it every time.

300
00:15:18,210 --> 00:15:19,560
‫So that's not too bad.

301
00:15:19,560 --> 00:15:21,420
‫Especially if it's a big project

302
00:15:21,420 --> 00:15:24,450
‫that you will be working on for a long time.

303
00:15:24,450 --> 00:15:28,140
‫But anyway, with this we have our project set up

304
00:15:28,140 --> 00:15:31,350
‫and so now we can start learning about the main concepts

305
00:15:31,350 --> 00:15:33,900
‫that we will talk about in this section,

306
00:15:33,900 --> 00:15:38,643
‫which are routing single page applications and React Router.

