1
00:00:02,710 --> 00:00:08,680
So welcome to Building Modern Web Applications Engo This, of course, should be a great deal of fun

2
00:00:08,680 --> 00:00:10,860
and we're going to cover an awful lot of material.

3
00:00:11,170 --> 00:00:13,720
But first, let me tell you a little bit about myself.

4
00:00:13,990 --> 00:00:19,090
My name is Trevor Solla and I've been working in the software development field for more than 20 years.

5
00:00:19,540 --> 00:00:24,070
I've done work for tiny clients, little projects that are only a thousand dollars or so.

6
00:00:24,400 --> 00:00:30,130
And I've worked on projects for very large clients, including Hewlett-Packard and Sprint and many,

7
00:00:30,130 --> 00:00:34,510
many others all across North America, parts of Europe and the Caribbean.

8
00:00:34,840 --> 00:00:38,350
And I've also been teaching at the university level for more than 20 years.

9
00:00:38,350 --> 00:00:42,680
And I've taught in computer science and I've also taught in English literature.

10
00:00:42,700 --> 00:00:49,060
I wasn't sure what to study in university, so I studied lots and lots of things and I do have a PhD,

11
00:00:49,390 --> 00:00:50,700
but don't hold that against me.

12
00:00:50,710 --> 00:00:55,600
I have been working in the private sector and know how software development should work, and that's

13
00:00:55,600 --> 00:00:57,310
the sort of thing we'll be covering in this course.

14
00:00:57,610 --> 00:00:59,110
And what are we going to be doing?

15
00:00:59,680 --> 00:01:02,980
Well, we're going to learn the fundamentals of the go programming language.

16
00:01:03,430 --> 00:01:08,680
And I'm of the firm belief that the best way to learn how to work in any given programming language

17
00:01:08,680 --> 00:01:16,030
is to build something, not just to learn about loops and if statements and so forth by themselves.

18
00:01:16,420 --> 00:01:19,990
You have to do a little bit of that and we will do a little bit at the beginning of this course.

19
00:01:20,320 --> 00:01:24,580
But you do actually build something of value and that's what we're going to do.

20
00:01:24,590 --> 00:01:26,350
And I'll show you that application in a moment.

21
00:01:27,400 --> 00:01:32,290
So we're going to learn how to build a Web application using best practices in the go programming language.

22
00:01:32,290 --> 00:01:36,520
And we're also going to learn how to deploy this application to a live server and to make sure that

23
00:01:36,520 --> 00:01:37,820
server is secure.

24
00:01:38,380 --> 00:01:41,290
So let's have a look at the application we're going to build.

25
00:01:42,420 --> 00:01:44,330
I'll switch over to my favorite Web browser.

26
00:01:44,830 --> 00:01:50,380
Here is a site for a fictional bed and breakfasts, which I have called the Fort Smith Bed and Breakfast.

27
00:01:50,680 --> 00:01:54,940
And we're going to build a little website consisting of, I don't know, half a dozen pages or so.

28
00:01:55,540 --> 00:01:57,340
We'll do it in HTML5.

29
00:01:57,340 --> 00:01:59,370
We're also going to learn how to use bootstrap.

30
00:01:59,380 --> 00:02:04,630
We'll start with bootstrap for and then much later in the course, we'll upgrade to bootstrap five because

31
00:02:04,630 --> 00:02:08,050
bootstrap five Beta was released while I was putting the course content together.

32
00:02:08,350 --> 00:02:13,930
So you learned the things like how to do a navigation bar with drop down menu items, how to build individual

33
00:02:13,930 --> 00:02:20,110
pages, and also because this is a bed and breakfast site, you should be able to search for and book

34
00:02:20,110 --> 00:02:21,330
a room in this.

35
00:02:21,340 --> 00:02:22,600
So we'll be able to do that.

36
00:02:22,930 --> 00:02:24,940
So we'll be able to look for an arrival date.

37
00:02:24,970 --> 00:02:32,640
I'll choose something and say July to July the 8th search and it tells me two rooms are available.

38
00:02:33,160 --> 00:02:38,050
I want to book the major suite and I can fill this form out and book the reservation.

39
00:02:39,100 --> 00:02:43,090
And we'll also do things like contact pages with an embedded map and things like that.

40
00:02:43,090 --> 00:02:45,820
And authentication will be able to log in.

41
00:02:45,820 --> 00:02:48,070
So pretend that you're the property owner.

42
00:02:48,280 --> 00:02:53,500
I can log in with the username and password that are type that write.

43
00:02:55,510 --> 00:03:02,110
Submit and once they've logged in, I can go to the back end to the dashboard for the property owner

44
00:03:02,410 --> 00:03:05,560
and look at things like how many new reservations do we have?

45
00:03:05,680 --> 00:03:07,600
Let me browse all the reservations.

46
00:03:07,720 --> 00:03:14,790
Let me look at an individual reservation and make changes to it, if necessary, to open and close dates.

47
00:03:14,800 --> 00:03:21,250
So if I don't want to rent the major suite from the 16th to the 18th of January, then I can save those

48
00:03:21,250 --> 00:03:22,330
changes and it's blocked.

49
00:03:22,330 --> 00:03:25,210
Those off will also be sending email.

50
00:03:25,220 --> 00:03:31,480
We'll be doing all the things you have to do with a Web application and this will be done, written

51
00:03:31,480 --> 00:03:31,970
and go.

52
00:03:31,990 --> 00:03:35,860
So here is the finished source code for this application.

53
00:03:36,310 --> 00:03:38,380
Now a word of caution.

54
00:03:39,520 --> 00:03:45,340
I am going to make mistakes as I developed this application and I am not going to edit those mistakes

55
00:03:45,340 --> 00:03:50,080
out of the lectures because when you're programming, you make mistakes.

56
00:03:50,080 --> 00:03:55,090
And there's nothing more frustrating than watching someone teach you how to program.

57
00:03:55,090 --> 00:03:57,410
And they appear to be an absolute genius.

58
00:03:57,670 --> 00:04:02,410
I'm not going to do that because honestly, any software developer spends a good portion of his or her

59
00:04:02,410 --> 00:04:07,240
day fixing either their own mistakes or somebody else's mistakes because we're human.

60
00:04:07,630 --> 00:04:14,740
But when we write our code, we're also going to write, as you'll see right here, for example, tests

61
00:04:14,740 --> 00:04:20,950
for all of our code to make sure that when we write our code that it's going to do exactly what we expect

62
00:04:20,950 --> 00:04:21,400
it to do.

63
00:04:21,400 --> 00:04:25,780
And go has a robust testing environment built right into the language.

64
00:04:26,050 --> 00:04:28,020
So we'll be covering that sort of thing as well.

65
00:04:28,780 --> 00:04:30,650
So there's a fair bit of material to cover.

66
00:04:30,670 --> 00:04:34,900
We have 150 plus lectures in this course and around 30 hours of content.

67
00:04:35,320 --> 00:04:39,970
And I'll be adding to this as necessary when new functionality comes out.

68
00:04:39,970 --> 00:04:42,130
And I'll do my best to keep this course up to date.

69
00:04:42,790 --> 00:04:48,910
And if you encounter something that makes no sense or you discover that I've made a mistake somewhere

70
00:04:48,910 --> 00:04:49,580
in a lecture.

71
00:04:49,870 --> 00:04:54,280
Feel free to contact me and I'll make the necessary revisions to put the content up the way that it

72
00:04:54,280 --> 00:04:54,790
should be.

73
00:04:54,940 --> 00:04:59,740
Because, as I said, we all make mistakes and that includes people recording lectures.

74
00:05:00,640 --> 00:05:05,970
One other note, I am not a videographer and you're not going to find any fancy animations at the beginning,

75
00:05:05,970 --> 00:05:08,490
near the end of each lecture, because I don't think that's of much value.

76
00:05:08,500 --> 00:05:10,390
I'm not trying to market this content.

77
00:05:10,630 --> 00:05:16,960
I'm trying to teach people how to build applications using Goldwing and to do so in a way that makes

78
00:05:16,960 --> 00:05:18,040
absolute sense.

79
00:05:18,550 --> 00:05:19,380
So let's get started.
