This course is really important because it develops end to end application, interesting capabilities with baked in key concepts of security, caching and testing. [MUSIC] This course contains the big picture. It assumes the student has some familiarity now with Angular, Rails, ActiveRecord, Mongoid, but needs to go through it at least one more time, except this time we're going to do it end-to-end as opposed to concentrating on a particular area for a lengthy period of time. And the course is written as a code-along, while we develop a full end-to-end application that concentrates on information, images, and maps, with also emphasis on authorization, authentication, web caching, and yes testing, integration testing, that includes the UI. Each module does focus on an area of the application within the stack, and each lecture ends up with at least one or more commits to the get repository. So the student has a chance to check out what the lecture is going to be about, code along with the lecture, and then compare their solution to what was developed in the lecture. [MUSIC] In module one, we'll get the big picture. What are all the technologies involved? We'll get the students' development environment set up, ready to go. And then we'll cover a quick review of the topics that were in courses one to three by developing a quick rails applications and deploying it to the Roku. Module two is a quick review of Angular. And as well as we'll cover the different development environments of how we might develop Angular application in concert with the Rails application. Leveraging as a pipeline, or possibly external development environments, or a hybrid of the two. In Module 3, we will focus on testing. It's not the only module there'll be for testing. Testing will be throughout the entire specialization. However, this is where we focus on the different testing types that we're going to perform and how we're going to construct those tests. Taking care of database issues and understanding how to build model specs, request specs for the API, and feature specs for the UI. Because of the end-to-end application aspects of the course, it focuses a lot on testing. The tests allow us to focus what we're developing on right now and they verify that our features work as we plan them and they also work as regression tests for when we add new features to see if they break. In Module 4, we'll bring in some security topics. Authentication and authorization, as well as start to build out the domain model. So you can think of Module 4 as taking the simple application that the student develops in Modules 1 and 2, and reimplement them using the domain model of the end-to-end application, except this time we bake in security while we're building them. When we finish Module 4, the domain model that we have is primarily information and relationships. Module 5, we get into image handling. Where we'll handle uploading, whether we're going from a file system, or actually taking a picture on a cell phone, cropping that to a standard aspect ratio, saving it to the back-end server, where it will be scaled into different image sizes like thumbnail, medium to large. And then build a convenient viewer that we can page through the different images available in the system. In Module 6, we'll look at geolocation, where we'll take either a partial address or a Latin long and get a fully resolved address from a free Google account that the student will setup. And to stay within free metered constraints of the free account, we'll use Mongo to build a persistent cache of the answers that come back from Google. So that if we have a very common address that's asked for by all of our users, we don't have to go to Google but yet once, and then our information is available in our Mongo persistent cache store. In Module 7 we'll get a little bit more aggressive with UI layouts and design a new page in our application that has different areas that are going to work in concert with one another. If you're viewing a thing in one area of the display, all the other areas will render something different about that same thing. It will add components that display textual information, lists of information, and images of information in the different area displays. And then in Module 8 we'll add maps. At that point, we know the information we need, we know it's Latin long, we know where it's going to fit into our application. And we can concentrate on the maps and just think of it as a different rendering of the information that's of concern. So instead of just printing out a Latin long, we show a pin on the map that indicates where it is in the world. [MUSIC] They should think of this as either a part time job, or an internship, which is exactly how it's formed. And you can fast forward through that part time job and internship, depending on the student's background. But the opportunity is there. I see students coming into the class being of about three different molds. A seasoned developer might come in and check out the final commit in a module and then advance to the assignment, and then circle back for details that they may be light in. The intermediate developer that wants to see everything put together end-to-end, probably should take the time to go through each of the lectures before advancing to the assignment. And then your novice developer, not only should you go through the lectures, but you should check out each of the lecture commits. And then try to code along with the lecture, and try to come up with a solution that's consistent with what the lecture is talking about. And maybe try a few things. And then, of course, a mixture of the two, where we might have a web developer with a limited Rails background, or vice versa. [MUSIC] So, when the student goes through the course, hopefully, they realize that I put this material together with the mind set that they were starting a new career, or they're trying to advance in their career as a Rails Angular Fullstack developer. The course is its current length because of feature goals that we wanted in our end application and the breadth of all of the technologies that are part of this specialization. And as I went through to summarize them all, many things would come into my head of this is important, this is interesting, this is a gotta have. Because as I thought of the student going to their first job interview, or going to, or taking on their next assignment, that there was a chance that within this specialization, that they can encounter this information. So, hopefully, when they look at the material as an opportunity of how they could spend their time productively learning Rails and Fullstack applications as opposed to just a to-do on their list of, hey, let's go get a certificate of here and there.