
Develop a real-world eco-friendly blog using Angular, Node.js, and MariaDB with offline support, meta and Open Graph tags, an admin panel for CRUD operations, and server-side rendering.
Explore essential Visual Studio Code extensions for Angular development, including angular files, angular language service, John Papa snippets, auto rename tag, breakage pair colorized, path intelligence, prettier, and eslint.
Explore building the basics of the client app in Angular, covering routes, components, styling with CSS, and services, with notes on Node and Angular versions.
Initialize a local repository and commit changes to manage source control. Generate core blog components—navigation bar, article list, and footer—and wire routing to display the home page content.
Set up article list and about routes in Angular, update the navigation with routerLink, and switch views using the router outlet for seamless page transitions.
Create an article class for blog posts with id, title, key, date, content, description, and a featured image. Populate mock articles and show them in the article list component.
Display and style the article list by rendering each article as a card with an image, title, date, and teaser, then refine CSS for layout, borders, and typography.
Add an article service to fetch articles as an observable and replace direct access in the article list component, wiring mock data and preparing a single-article view.
Create an article component and implement router links to article keys, configure routes to load articles via activated route parameters, and extend an article service to fetch mock articles.
Create a 404 not found page by adding a not-found component, configuring a wildcard route, and redirecting unknown URLs to the home page with clear feedback.
Display a single article on the page by rendering the featured image, title, date, and content using string interpolation and innerHTML, then test by viewing the article in the blog.
Publish your Angular blog built with components, routing, services, and CSS that you created yourself, and then proceed to add meta and Open Graph tags.
Set the title and meta and Open Graph tags for blog pages to inform search engines and social platforms. Use the Facebook sharing debugger to verify tags.
Add a title service and shared title logic to an Angular blog app to set the browser tab title for articles, lists, and about pages, with updates on navigation.
Activate server side rendering with Angular Universal to render on the server and deliver a complete source code to the client, enabling SEO, social sharing, and improved performance on mobile.
Create a universal angular app for server-side rendering using a single command from the angular universal guide, generating a node express server and updated project files.
Explore how Angular Universal renders pages on the server, compare server-side rendered output with the default client app, and run the universal app locally.
Compare server-side rendered versus client-side rendered blog pages, showing server-side rendering delivers faster load times on mobile networks, especially under fast 3G and slow 3G conditions.
Create a new project folder and build a web service with the Express framework, install Express with npm, and start the server while preparing for API calls.
Install nodemon to monitor code changes and automatically restart your node server. After globally installing nodemon with npm, run nodemon server.js instead of node server.js to enable live reloads.
Extend the article service in the Angular client to call rest endpoints using the http client. Tackle cross-origin resource sharing issues and fetch both article lists and single articles.
Implement a CORS policy by installing the course module, configuring origins for localhost:4200 and 4000, and applying app.use with these options to enable cross-origin requests.
Install sequelize and the MariaDB dialect, configure it as an ORM for articles in JavaScript, and initialize, authenticate, and run queries against the database.
Seed the articles table by syncing the table, inserting two mock articles via the article model's create method, and force dropping and recreating the table to prevent duplicate seeds.
Implement and export get article by key to fetch a single article from the database using find one with a key, guided by an optional options object and a callback.
Master the Maria database setup and usage as you connect the Angular client to the web service and database, then prepare for full CRUD operations with an administration dashboard.
Create three new components—the dashboard, article overview, and added article—to build the admin interface. Configure routing and navigation to expose the dashboard and article overview, with authentication later.
Implement publish and unpublish for articles in Angular app, update the client and server, toggle the published state via a dashboard service post request, and configure body-parser on the server.
Add a preview button in the edit article component, implement navigation to a dashboard preview route, and distinguish between published and unpublished articles using the dashboard service.
Implement a delete article feature in the admin dashboard by adding a delete method in the dashboard service and client, with server route integration and user confirmation.
Implement a dashboard article creation flow by adding a post method and using secret.js to create articles, handling title, key, dates, image, description, content, and save-as-draft logic.
Automatically update the article key from the title, applying lowercase and spaces to dashes, on key up and blur, and show a 150-character description count with online/offline status.
Implement authentication to secure the administration dashboard after enabling CRUD ops, environment variables, and iterative improvements to blog components and services.
Create a user model, register users, and enable login to the dashboard with credentials. Introduce JSON web tokens, test API calls with postman, and implement middleware with an angular interceptor.
Learn how to use Postman to set up an API development environment, create collections, and execute a POST request to register a user with a JSON body.
Describe how JSON Web Tokens (JWT) use a public and private key pair (RSA) to sign and verify tokens, including header, payload, and signature, for secure authorization and API access.
Sign the json web token with the private key using the jsonwebtoken library, embedding the user name in the payload, and set a 12-hour rs256 expiry for verification.
Create an isAuthenticated.js middleware to verify JSON web tokens from the authorization header, returning unauthorized if invalid and calling next() to protect dashboard routes.
Define a user model with name and password, bind it to a login form, validate inputs, display 'username or password is wrong' errors, and retrieve a token on successful login.
Implement authentication with JSON web tokens, store hashed passwords, and verify tokens to grant dashboard access; use an Angular interceptor and middleware to streamline security and deploy the app.
Publish your Angular web app on a Windows server by hosting the web service, build the client as a server-side rendered version, and verify with the Facebook sharing debugger.
Install IIS node on Windows Server, download the 64-bit msi, run as administrator to add a new site to IIS, then test localhost/notes and node express samples.
Deploy a Node.js web service on IIS by relocating sources, configuring a web.config, and updating port settings; test endpoints with Chrome and Postman, and publish the Angular client next.
"This course was well designed and gave very in-depth classes on specific features of Angular and Node. I found each section clear and easy to follow and the project really wrapped up everything in a fun to code along project!"
⭐⭐⭐⭐⭐ - Robin Labonde
Welcome the Angular 8 Real World WebApp Development with Node.js & MariaDB course!
In this course, we’ll focus on building a real-world web application with the tools Angular and Node.js provide.
We will build an SEO friendly blog, which means we're going to use Angular Universal to build a server-side rendered front end.
In the back end, we're going to use Node.js for the web service, we store our data in a MariaDB and to map our objects with the database, we’re going to use the object-relational mapping library Sequelize.
And finally, we publish the whole thing on a Windows Server with IISNode.
The web application itself will be a blog that could be extended to a big news or magazine web application.
We start with displaying some articles and later on we'll build an administration dashboard with authentication (we're using JSON Web Tokens to be more specific) and the option to create new articles, modify them, and so on.
Let's have a deeper look at what you are going to learn in this course:
The Basic Blog
In this section, we will start with our Angular project and develop the blog, so that it will work offline - without any web service or database. In essence, you could already publish this blog if you want to add all your blog posts within your Angular app.
Meta & Open Graph Tags
As the title may already imply, here we will add meta tags and open graph tags. So the information that search engines and social media platforms need to find your blog and display your articles properly when they are shared.
Keep in mind though, that these tags won’t necessarily work if you stick with a client-side rendered Angular app. Google promised to be able to crawl client-side rendered Angular web applications, but by the experience of many blogs and developers, we are not there yet.
Apart from that, social media platforms still need proper source code or tags to scrape your site properly.
Angular Universal
A short but important section - we will implement server-side rendering (SSR) here. That’s what Angular Universal is all about. When you finished implementing server-side rendering, your tags will be available in the source of your blog and your pages will also render much faster.
Back end with Node.js
It’s time for the backend. We’ll create a new project, the web service with Node.js. Now the articles will come from the web service.
Database & ORM with MariaDB & Sequelize
We expand the web service and finally connect our web application with a database so that the articles are now stored in a MariaDB. Additionally, we will use Sequelize for the object relational mapping between our models and the database tables.
Administration Dashboard
In essence, the blog works with all layers. We have the client, the web service and the database. But adding new articles and modifying them is a bit cumbersome. So let’s add an administration panel where we get an overview of all articles and where we can create, update and delete them - this means, building all CRUD operations.
Authentication
The administration dashboard works, but until now, everybody could use it. In this section, we change that by adding authentication with JSON web tokens. Also, we’re going to introduce Angular interceptors, route guards and a small middleware.
IISNode
Finally, we are able to deploy our blog. In this section, you’re going to learn how to build and publish the Angular Universal client and the Node web service on a Windows Server with Internet Information Services.
What tools are we using?
All the tools we're going to use in this course are available for free.
Visual Studio Code - A source-code editor developed by Microsoft for Windows, Linux, and macOS. We will use this code editor for the Angular client application as well as the Node.js web service.
HeidiSQL - A free and open-source administration tool we will use and install together with MariaDB. It's perfectly suited to see the data we're going to store in the database.
Postman - A greate choice for API testing. Later during this course, we will use Postman to run API calls against the Node.js web service.
Google Chrome - It's not necessary to use Google Chrome, any web browser with developer tools is useful here. We're going to use the developer tools for its console output and inspecting the HTML of our web application.
Git - This one's totally optional. I recommend using Git as source control. You can use it locally or push your code to a hoster like GitHub. The complete code written in this course is available on GitHub, for instance.
Who is this course for?
This course is suited for students who...
...already have a little experience with Angular
...want to up their game with Angular and Node.js
...learn the skills to build a modern web application with Angular, Node.js, MariaDB and Sequelize from the ground up
...want to create a portfolio website or private blog completely on their own without using any third-party services
Who is the instructor?
Patrick is an experienced web developer who has been working in this field for over 15 years. With several courses on Udemy, over 30.000 students and more than 3.000 reviews, he knows what you are looking for in a course about web development. He works full-time as full stack developer at a market research company in Germany, teaches online courses on Udemy and YouTube, and also gives one-on-one online lectures. Let's see, what other students are saying:
⭐⭐⭐⭐⭐
"Patrick is an incredibly gifted programmer and educator. He writes code effortlessly and does a beautiful job of explaining concepts, the code structure, and how everything interacts with each other. He is patient and supportive and can efficiently work with beginners and people with more advanced skill. If you want to learn any aspects of programming, you MUST contact Patrick. He’s among the best instructors I’ve ever worked with, and I give him my highest recommendation." - Mike
⭐⭐⭐⭐⭐
"Very good, easy pace, and easy to understand! this is the good course for beginner and intermediate developers. Thank you!" -Tri
⭐⭐⭐⭐⭐
"Quick and useful course getting someone upto speed on WCF RESTful services. I like this course as the instructor Patrick just gets to the crux of the topics without padding with unnecessary discussions. When people are limited by time to spend on a course, this is the kind of course that is ideally looked up to. Very good course! Thank you!" - Sundararajan
⭐⭐⭐⭐⭐
"Patrick is a great instructor in that he is organized, knows his stuff, and takes the time to explain everything in detail. Great course for beginning WCF developers!" - Evarardo
⭐⭐⭐⭐⭐
"I like the pace, the simplicity of piece by piece introductions and the author's speaking pace & clarity. very nice!" - Stephen
⭐⭐⭐⭐⭐
"Love the way you go through each step one short video at a time - makes it more rewarding and easier to digest and break down if need be. Also appreciate your thorough responses to others' questions! Great job, I look forward to seeing more videos like this because I am learning a ton from you! Thank for all of your hard work and dedication!" - Adrienne
⭐⭐⭐⭐⭐
"Single Page Application (SPA) has become a very important requirement for web application projects. This course has given me a very good example on how to create a "SPA". The whole process is covered since creating the project, the HTML page, the detailed creation of each file til its deployment. Very good. I recommend it for systems analysts who are starting to use this concept of SPA, just like me. If something in your solution does not work it's because you're doing something wrong. Everything works fine, the instructor is clear and gives us good and complete information. For me, the course was excellent." - Michel
⭐⭐⭐⭐⭐
"As always, a course by Patrick God is a good choice for learning. I had a chance to watch another courses from him and I have to say, I did the right thing choosing this guy.He is very straight forward, speak well, and let me understand quickly all what I need." - Paulo