﻿1
00:00:00,762 --> 00:00:02,250
‫So now that you have

2
00:00:02,250 --> 00:00:04,410
‫a good overview of how the web works

3
00:00:04,410 --> 00:00:06,290
‫behind the scenes, let's learn

4
00:00:06,290 --> 00:00:08,913
‫about what back-end web development actually is

5
00:00:08,913 --> 00:00:11,796
‫and how it compares to front-end development,

6
00:00:11,796 --> 00:00:14,415
‫because this is a very important distinction

7
00:00:14,415 --> 00:00:17,666
‫in the web development world.

8
00:00:17,666 --> 00:00:20,330
‫So in order to distinguish between

9
00:00:20,330 --> 00:00:21,730
‫the front-end and the back-end

10
00:00:21,730 --> 00:00:23,980
‫of a website and of web development

11
00:00:23,980 --> 00:00:25,619
‫as a general, we still consider

12
00:00:25,619 --> 00:00:27,767
‫the same client-server architecture

13
00:00:27,767 --> 00:00:29,950
‫that we talked about before.

14
00:00:29,950 --> 00:00:32,269
‫So in general terms, front-end development

15
00:00:32,269 --> 00:00:35,830
‫is about everything that happens in the web browser.

16
00:00:35,830 --> 00:00:38,010
‫So it's about designing and building

17
00:00:38,010 --> 00:00:39,940
‫the final website that's gonna

18
00:00:39,940 --> 00:00:42,371
‫be visible to the user, and therefore,

19
00:00:42,371 --> 00:00:44,123
‫the name front-end.

20
00:00:44,960 --> 00:00:46,188
‫The front-end developer uses

21
00:00:46,188 --> 00:00:50,024
‫the basic technologies: HTML, CSS, and JavaScript,

22
00:00:50,024 --> 00:00:54,028
‫which together form the front-end technology stack.

23
00:00:54,028 --> 00:00:56,510
‫Now, many modern front-end developers

24
00:00:56,510 --> 00:00:58,660
‫add more stuff to the front-end stack

25
00:00:58,660 --> 00:01:03,010
‫like React or Angular or Redux or GraphQL

26
00:01:03,010 --> 00:01:05,715
‫or whatever is cool these days.

27
00:01:05,715 --> 00:01:09,150
‫So these technologies make front-end development easier

28
00:01:09,150 --> 00:01:10,950
‫and all these technologies together

29
00:01:10,950 --> 00:01:12,930
‫that a developer or a team decides

30
00:01:12,930 --> 00:01:15,090
‫to use on the front-end, is their

31
00:01:15,090 --> 00:01:17,169
‫front-end stack, okay?

32
00:01:17,169 --> 00:01:19,170
‫And you probably already know most

33
00:01:19,170 --> 00:01:21,320
‫of this stuff anyway, but I still wanna give you

34
00:01:21,320 --> 00:01:24,070
‫a brief overview of how everything fits

35
00:01:24,070 --> 00:01:25,931
‫into the bigger picture here.

36
00:01:25,931 --> 00:01:29,605
‫All right, and now moving on to the back-end.

37
00:01:29,605 --> 00:01:31,890
‫This part of web development is

38
00:01:31,890 --> 00:01:34,313
‫about everything that happens on the web server,

39
00:01:34,313 --> 00:01:36,350
‫so everything that is invisible

40
00:01:36,350 --> 00:01:37,912
‫to the final user and therefore

41
00:01:37,912 --> 00:01:40,768
‫the name back-end, okay?

42
00:01:40,768 --> 00:01:43,624
‫And since we're talking about the server site now,

43
00:01:43,624 --> 00:01:47,800
‫let's actually define what a server really is.

44
00:01:47,800 --> 00:01:50,745
‫Well a basic server is really just a computer

45
00:01:50,745 --> 00:01:52,880
‫that is connected to the internet

46
00:01:52,880 --> 00:01:55,990
‫which, first, stores a website's files

47
00:01:55,990 --> 00:01:58,670
‫like HTML, CSS, and images,

48
00:01:58,670 --> 00:02:01,340
‫and second, runs an HTTP server

49
00:02:01,340 --> 00:02:04,073
‫that is capable of understanding URLs,

50
00:02:04,073 --> 00:02:07,600
‫requests, and also delivering responses.

51
00:02:07,600 --> 00:02:10,167
‫So this piece of HTTP server software

52
00:02:10,167 --> 00:02:13,480
‫is what actually communicates with the browser

53
00:02:13,480 --> 00:02:16,220
‫using requests and responses.

54
00:02:16,220 --> 00:02:18,230
‫Therefore, it is like the bridge

55
00:02:18,230 --> 00:02:20,160
‫between the front-end and the back-end

56
00:02:20,160 --> 00:02:23,140
‫of a website or web application.

57
00:02:23,140 --> 00:02:25,430
‫Now a simple web server like the one

58
00:02:25,430 --> 00:02:28,275
‫I just described is called a static server,

59
00:02:28,275 --> 00:02:30,530
‫because all it can really do is

60
00:02:30,530 --> 00:02:34,660
‫to serve static files to the client via HTTP.

61
00:02:34,660 --> 00:02:37,293
‫If you just need to host a simple website,

62
00:02:37,293 --> 00:02:39,570
‫then this is really all you need.

63
00:02:39,570 --> 00:02:41,900
‫But if you wanna take it to the next level

64
00:02:41,900 --> 00:02:43,950
‫and create dynamic web applications

65
00:02:43,950 --> 00:02:46,365
‫that talk to databases and all that good stuff,

66
00:02:46,365 --> 00:02:49,720
‫we use a server that is also capable

67
00:02:49,720 --> 00:02:51,548
‫of running OR dynamic applications,

68
00:02:51,548 --> 00:02:53,520
‫just like the code that we wrote

69
00:02:53,520 --> 00:02:55,779
‫and executed in the intro section of the course.

70
00:02:55,779 --> 00:02:58,800
‫This is then called a dynamic server,

71
00:02:58,800 --> 00:03:00,500
‫where we have OR app running,

72
00:03:00,500 --> 00:03:02,610
‫an HTTP server, and of course,

73
00:03:02,610 --> 00:03:05,380
‫the files all talking to each other.

74
00:03:05,380 --> 00:03:07,400
‫And in some cases, that's all we need

75
00:03:07,400 --> 00:03:09,323
‫for OR applications, but usually

76
00:03:09,323 --> 00:03:12,310
‫when we build dynamic websites or apps,

77
00:03:12,310 --> 00:03:14,610
‫we will also use a database,

78
00:03:14,610 --> 00:03:17,379
‫which we can access right from our applications.

79
00:03:17,379 --> 00:03:19,342
‫By the way, if the term static

80
00:03:19,342 --> 00:03:21,820
‫and dynamic websites or applications

81
00:03:21,820 --> 00:03:23,894
‫are a bit confusing for you, no problem.

82
00:03:23,894 --> 00:03:26,487
‫We will talk about that right in the next video.

83
00:03:26,487 --> 00:03:28,843
‫Anyway, we can use the database

84
00:03:28,843 --> 00:03:32,004
‫to store stuff like users or application data

85
00:03:32,004 --> 00:03:34,778
‫or text to fill up a website template.

86
00:03:34,778 --> 00:03:38,160
‫In any serious application, there will always

87
00:03:38,160 --> 00:03:40,370
‫be a database and our back-end code

88
00:03:40,370 --> 00:03:42,676
‫will communicate with that data base.

89
00:03:42,676 --> 00:03:45,090
‫So, some usual stuff that is handled

90
00:03:45,090 --> 00:03:47,200
‫on the back-end or the server side

91
00:03:47,200 --> 00:03:50,088
‫as we can also call it to create user profiles,

92
00:03:50,088 --> 00:03:53,406
‫perform log-in's, send emails, handle payment,

93
00:03:53,406 --> 00:03:56,810
‫retrieve and send request data from a database

94
00:03:56,810 --> 00:03:59,850
‫to a client, manipulate data in the database,

95
00:03:59,850 --> 00:04:02,517
‫fill up website templates, and so much more.

96
00:04:02,517 --> 00:04:05,020
‫And we will do many of these exciting things

97
00:04:05,020 --> 00:04:07,233
‫throughout the course, actually all of them really.

98
00:04:07,233 --> 00:04:10,800
‫Now about the technology as you can guess,

99
00:04:10,800 --> 00:04:14,235
‫we are gonna use NodeJS as a dynamic web server

100
00:04:14,235 --> 00:04:17,400
‫and MongoDB as our database,

101
00:04:17,400 --> 00:04:19,294
‫so datas or back-end stack.

102
00:04:19,294 --> 00:04:22,670
‫But there are so many different back-end technologies

103
00:04:22,670 --> 00:04:25,040
‫and stacks available for the back-end.

104
00:04:25,040 --> 00:04:28,025
‫Things like PHP with MySQL database

105
00:04:28,025 --> 00:04:31,123
‫or Python with PostgreSQL database

106
00:04:31,123 --> 00:04:33,750
‫or some people use Ruby on Rails

107
00:04:33,750 --> 00:04:36,120
‫maybe with even some other database.

108
00:04:36,120 --> 00:04:38,430
‫But, since you wanna learn NodeJS

109
00:04:38,430 --> 00:04:40,980
‫well we are gonna use exactly that.

110
00:04:40,980 --> 00:04:43,230
‫And the most popular database that is used

111
00:04:43,230 --> 00:04:46,070
‫with Node is, without a doubt, MongoDB.

112
00:04:46,070 --> 00:04:49,007
‫And, so, that is our choice for a back-end stack.

113
00:04:49,007 --> 00:04:52,237
‫Now, you might have heard the term full stack before,

114
00:04:52,237 --> 00:04:54,180
‫and that simply is the front-end

115
00:04:54,180 --> 00:04:56,710
‫plus the back-end stacks together.

116
00:04:56,710 --> 00:04:59,180
‫So, the developer that does both front-end

117
00:04:59,180 --> 00:05:01,209
‫and back-end development can call himself

118
00:05:01,209 --> 00:05:04,117
‫a full stack developer, but these developers

119
00:05:04,117 --> 00:05:06,410
‫are getting increasingly rare,

120
00:05:06,410 --> 00:05:08,150
‫especially because the front-end

121
00:05:08,150 --> 00:05:11,110
‫is becoming more and more complex these days.

122
00:05:11,110 --> 00:05:14,630
‫Finally, another thing that I wanted to quickly mention

123
00:05:14,630 --> 00:05:17,150
‫is that, as you can see, we're gonna use Node

124
00:05:17,150 --> 00:05:19,400
‫applied to back-end web development

125
00:05:19,400 --> 00:05:21,930
‫and not something like hardware programming.

126
00:05:21,930 --> 00:05:24,670
‫So, you can technically use Node for stuff like

127
00:05:24,670 --> 00:05:27,240
‫flying drones, programming robots,

128
00:05:27,240 --> 00:05:30,300
‫or developing software for IFT devices.

129
00:05:30,300 --> 00:05:32,610
‫But, that is outside the scope of this course.

130
00:05:32,610 --> 00:05:35,670
‫If you want to program IFT devices with Node,

131
00:05:35,670 --> 00:05:38,550
‫well this course is still going to be useful for you,

132
00:05:38,550 --> 00:05:40,650
‫it's just not the focus of the projects

133
00:05:40,650 --> 00:05:42,528
‫that we are gonna build, okay?

134
00:05:42,528 --> 00:05:46,100
‫All right and I guess that summarizes the difference

135
00:05:46,100 --> 00:05:48,425
‫between the front-end side and the back-end side

136
00:05:48,425 --> 00:05:50,734
‫of web development, so that going forward,

137
00:05:50,734 --> 00:05:52,970
‫you have a good idea of the domains

138
00:05:52,970 --> 00:05:55,753
‫where NodeDS is actually used in the real world.

