Scaffolding Spring Boot and Angular Web Apps with JHipster

This course is designed to teach you the importance of using scaffolding for creating your web application and why JHipster can be an excellent choice to provide this scaffolding.
Course info
Rating
(15)
Level
Intermediate
Updated
Dec 12, 2017
Duration
2h 31m
Table of contents
Course Overview
Getting Started With the Basics of JHipster
Installing the JHipster Generator
Creating a Project Using the JHipster Generator
Customizing Security in a JHipster Project
Implementing Client Code in a JHipster Project
Implementing Server Code in a JHipster Project
Deploying a JHipster Project to a Server Environment
Description
Course info
Rating
(15)
Level
Intermediate
Updated
Dec 12, 2017
Duration
2h 31m
Description

Building a new web application with modern tooling has always presented a challenge. You need to address many development concerns like continuous delivery, security and testing; yet, these concerns are often given a lower priority when compared to the development of features. In this course, Scaffolding Spring Boot and Angular Web Apps with JHipster, you will see how JHipster addresses these concerns right at the time of project creation, leveraging the popular Angular framework for the client implementation and Spring Boot framework for the server implementation. You will learn how to generate a web application that includes tooling from development build scripts to production docker configurations. Then, you will see how easy it is to add a new feature to the generated project. Finally, you will exercise the configuration and deployment of the application as a production artifact. When you have finished the course, you should have a foundational understanding of what JHipster is providing you so that you can begin using it for the scaffolding on your next web application.

About the author
About the author

Michael is a Senior Technical Architect at NVISIA. He's worked in technology for almost twenty years for a variety of clients across several different industries. He has a great passion for teaching and mentoring.

More from the author
Getting Started with Spring Batch
Beginner
1h 45m
May 7, 2018
More courses by Michael Hoffman
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone, my name is Michael Hoffman, and welcome to my course, Scaffolding Spring Boot and Angular Web Apps with JHipster. Along with being an author here at Pluralsight, I'm also a principle consultant at Solstice, based out of beautiful Chicago, Illinois. Building a new web application using modern tooling has always presented a challenge. You need to address a lot of development concerns, such as what frameworks to use, the configuration of the application, and scripts for builds and deployments. Yeah, you need to balance addressing these concerns with the priority of developing new features. In this course, we're going to walk through a web application scaffolding generator by the name of JHipster. You'll see why it's one of the best options for starting your next new web application, as it addresses development concerns early, and allows for the development of new features right out of the gate. Some of the major topics that we're going to cover include installation of the JHipster generator, creation of a new project through JHipster, customization of the project's security, implementation of the client and server code for a new feature, and finally, the deployment of the project using a production configuration. By the end of this course, you'll know enough to successfully leverage JHipster for generating your next web application. Before you begin the course, you should have some familiarity with Java, JavaScript, the Spring boot framework, and the Angular framework. I hope you join me on this journey to learn JHipster, with the Scaffolding Spring Boot and Angular Web Apps with JHipster course at Pluralsight.

Creating a Project Using the JHipster Generator
Hello, my name is Michael Hoffman, in this module I'll demonstrate project creation using the JHipster generator. As the generator is going to prompt you for decisions on what you want created, the goal of this module is for you to understand the impact of these decisions on the final product. JHipster makes many decisions on the scaffolding for you, but not all of them. The tool gives you the opportunity to choose from different options around several key decisions. First, you'll need to define your application meta data. You'll be able to select the type of application you want, enter the application name, and enter the application package name. Next, you need to decide on your method for authentication. You'll be able to select between stateful and stateless options. Then, you'll need to tell JHipster what type of database you're planning to use. JHipster supports both SQL and NoSQL database types. Next, you'll get to select between Gradle and Maven as your server-side build tool. Then, you need to select the client-side framework for your application. You'll have the option of choosing the Angular version 4 framework, or the Angular JS version 1 framework. Finally, you can choose additional test libraries on top of the unit test frameworks that JHipster provides by default. Given this list, you should have some confidence that JHipster is covering all of these important facets of the project for you. Now let's start up our command line session, and see how the generator creates a project.

Customizing Security in a JHipster Project
Hello, my name is Michael Hoffman. In this module I'll be demonstrating the first step for adding a new feature to the JHipster generated project. I generated a project in the last module called patient portal. The business case is to allow patients to interact with their physicians in a practice. Eventually this is going to be a full functioning application, but to start with I just want a feature that allows patients to manage their appointments. In this module, we will be focusing on the first step for this new feature. I need a user to be able to log in to the application. The user is a patient in the practice, and they're going to need to enter login information, including their username and password, to gain access to the authenticated portion of the website. As we continue in the course, we will add the ability for this logged in patient to request appointments with their physician. We will also add the ability for the patient to view the appointment requests that they've made. Before we can start working on patient login, let's get the application server started.

Implementing Client Code in a JHipster Project
Hello, my name is Michael Hoffman. In this module, I'll be demonstrating the next step for adding a new feature to the JHipster generated project. We're going to start the actual construction of the new feature. Just to recap, the business case is to allow patients to interact with their physicians in a practice. Eventually, this is going to be a full functioning portal, but to start with, I just want a feature that allows patients to manage their appointments. In the previous module, you saw the steps needed to change a security aspect in the JHipster generated project. This was a good exercise as it should have warmed you up to some of the basics of making a change to the code base. We're going to put that new security role name to use in this module. To start with, I want to create a form that allows a patient to request an appointment. The user will need to be logged in and have the new patient role. The second task is to provide a view of all the appointments a user has made. I'm going to keep the data for this form very simple because we want to maintain focus on what JHipster has provided. In this module, I'll be focusing on only the client-side implementation of these tasks. I'll cover the server-side in the next module. Let's start by running webpack again, so that you can get some additional details about it.

Implementing Server Code in a JHipster Project
Hi I'm Michael Hoffman. In this module I'll be demonstrating the implementation of server-side code to complete the new feature that we started in the previous module. I'm going to complete the coding for the new feature, but let's quickly recap. The business case is to allow patients to interact with their physicians in a practice. It's eventually going to be a full functioning portal, but to start with we just want a feature that allows patients to manage their appointments. From a log-in perspective, I already have made changes to modify the existing user role to be a patient role. On the server side, I'll be showing you how JHipster handles security concerns, including the log-in. While I initially stubbed out the API, I'm going to replace it with full functionality. The first step will be to add support for persisting new appointments. I'll be implementing the REST controller, service, repository, and database script for appointments. With appointment persistence in place, it will be fairly easy to then replace the API for returning all appointments. Let's start by adding the new appointment schema to our Liquibase scripts.