1
00:00:02,270 --> 00:00:06,345
What is Full Stack Web Development?.

2
00:00:06,345 --> 00:00:11,565
Let me clarify to you a few terms so that we start with a common understanding

3
00:00:11,565 --> 00:00:18,035
of full stack web development as applied in this specialization.

4
00:00:18,035 --> 00:00:22,415
We often hear people talking about the front end and the back end.

5
00:00:22,415 --> 00:00:27,000
The front end is where we are delivering the content to the user,

6
00:00:27,000 --> 00:00:32,335
typically in a browser where the user accesses the information.

7
00:00:32,335 --> 00:00:36,740
This is where we use technologies like HTML,

8
00:00:36,740 --> 00:00:41,475
CSS and JavaScript to render the content for the user.

9
00:00:41,475 --> 00:00:48,380
This information delivery is supported behind the scenes by

10
00:00:48,380 --> 00:00:57,180
a back end support which is typically implemented these days using technologies like PHP,

11
00:00:57,180 --> 00:01:02,770
Java, ASP.NET, Ruby, Python or NodeJS.

12
00:01:02,770 --> 00:01:08,320
We often hear people talking about the three-tier architecture for web development.

13
00:01:08,320 --> 00:01:14,260
In this approach, the entire web application is organized into three different layers.

14
00:01:14,260 --> 00:01:20,580
The presentation layer which is concerned with delivering the information to the user.

15
00:01:20,580 --> 00:01:23,390
So, this is usually the UI related

16
00:01:23,390 --> 00:01:26,780
concerns that are dealt with at the presentation layer.

17
00:01:26,780 --> 00:01:29,840
The business logic layer on the other hand is concerned

18
00:01:29,840 --> 00:01:32,760
more about the data, the data validation,

19
00:01:32,760 --> 00:01:39,285
the dynamic content processing and generating the content to be delivered to the user.

20
00:01:39,285 --> 00:01:42,545
This is backed up behind the scenes

21
00:01:42,545 --> 00:01:46,090
with the data persistence layer or the data access layer.

22
00:01:46,090 --> 00:01:52,085
So, this is concerned with how we store and interact with the data,

23
00:01:52,085 --> 00:01:58,620
typically in the form of a database and access this data through an API.

24
00:01:58,620 --> 00:02:03,020
Exploring this further, let us see what is implemented

25
00:02:03,020 --> 00:02:08,145
typically in the traditional web development in each of these three layers.

26
00:02:08,145 --> 00:02:13,520
The business logic layer is usually implemented these days using technologies like Ruby,

27
00:02:13,520 --> 00:02:19,250
Python, PHP, Java, C++ or ASP.NET.

28
00:02:19,250 --> 00:02:25,520
This business logic layer is interacting behind the scenes with

29
00:02:25,520 --> 00:02:28,340
the persistent data typically stored in

30
00:02:28,340 --> 00:02:34,465
a relational database and accessed by the business logic layer.

31
00:02:34,465 --> 00:02:37,415
The business logic layer is also concerned

32
00:02:37,415 --> 00:02:41,015
with the rendering of information to the front side,

33
00:02:41,015 --> 00:02:44,415
typically, in the form of server-side rendering this case.

34
00:02:44,415 --> 00:02:47,540
So, the HTML, CSS and JavaScript is generated on

35
00:02:47,540 --> 00:02:52,530
the server-side and then sent over to the client-side in the form of a web page.

36
00:02:52,530 --> 00:02:58,870
In this approach, we need specialists in each of these three layers.

37
00:02:58,870 --> 00:03:06,465
So, a front-end specialists typically would be well-versed in HTML, CSS and JavaScript.

38
00:03:06,465 --> 00:03:10,310
The business logic specialist would be

39
00:03:10,310 --> 00:03:14,975
well-versed in one of the technologies that is used for

40
00:03:14,975 --> 00:03:17,375
implementing the business logic and then you need

41
00:03:17,375 --> 00:03:24,275
a data specialist who will be well-versed in the relational database management system.

42
00:03:24,275 --> 00:03:29,480
There is an increasing trend towards using a single language

43
00:03:29,480 --> 00:03:34,510
to implement the entire stack, this being JavaScript.

44
00:03:34,510 --> 00:03:38,300
So, you could have the front-end implemented, for example,

45
00:03:38,300 --> 00:03:43,805
as a single page application using frameworks like Angular or React.

46
00:03:43,805 --> 00:03:46,520
You have the server-side or

47
00:03:46,520 --> 00:03:51,130
the business logic layer being implemented using technologies like NodeJS,

48
00:03:51,130 --> 00:03:53,425
which is also dependent on JavaScript.

49
00:03:53,425 --> 00:03:58,430
Then you have the data storage itself being implemented using technologies

50
00:03:58,430 --> 00:04:03,960
like MongoDB which stores data in the form of JSON documents.

51
00:04:03,960 --> 00:04:11,525
The information exchange between the server-side and the client-side is usually done

52
00:04:11,525 --> 00:04:19,760
using JSON as the format and the server-side supports a REST API endpoint.

53
00:04:19,760 --> 00:04:25,065
We will cover all these technologies as part of this specialization.

54
00:04:25,065 --> 00:04:27,870
So, as you go through this specialization,

55
00:04:27,870 --> 00:04:31,370
you will see that on the presentation layer side,

56
00:04:31,370 --> 00:04:33,795
we will cover Bootstrap 4,

57
00:04:33,795 --> 00:04:39,665
an Angular or React for implementing front-end applications.

58
00:04:39,665 --> 00:04:42,350
Then on the business logic layer,

59
00:04:42,350 --> 00:04:45,154
we will be using NodeJS and NodeJS modules

60
00:04:45,154 --> 00:04:51,230
and Express for implementing the business logic layer.

61
00:04:51,230 --> 00:04:54,920
We'll also consider back end as a service and then

62
00:04:54,920 --> 00:04:59,760
the data support implemented using MongoDB.