Become a Full Stack Developer with Spring, AWS and Stripe
4.3 (215 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,803 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Become a Full Stack Developer with Spring, AWS and Stripe to your Wishlist.

Add to Wishlist

Become a Full Stack Developer with Spring, AWS and Stripe

Learn how to create a website from scratch with Spring Boot, AWS and Stripe
4.3 (215 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,803 students enrolled
Created by Marco Tedone
Last updated 1/2017
English
Current price: $10 Original price: $75 Discount: 87% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 10 hours on-demand video
  • 1 Article
  • 32 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Create a website from scratch using Spring Boot
  • Create HTML5-style pages with Bootstrap
  • Protect website content with Spring Security
  • Have an application send emails with Spring Email
  • Have an application interact with the database with Spring Data JPA
  • Understand Git, GitHub and various Git Flows
  • Process Credit Card Payments with Stripe
  • Deploy and run an application on Amazon Web Services
  • Perform Auto-Deployments with Ansible
  • Validate HTML Forms
  • Know how to add internationalisation to a website
  • How to upload images to Amazon S3
  • How to setup Logging with Logback
View Curriculum
Requirements
  • Java
  • Have a minimum of programming experience
Description

This course is aimed at Java developers who want to learn how to create a full stack website based on Spring Boot, Spring Security, Spring Email, Thymeleaf, HTML5, CSS3, Javascript and JQuery, Bootstrap and how to deploy and use Amazon Web Services so that the web application is highly available and highly scalable.

By the end of this course, students will have created a website skeleton that can be used times and again to sell ideas quickly. All they'll have to do is to add the actual content they want to sell.

We'll start by introducing all required technologies, we will be looking at Git and the various Git workflows, how to set up your Java IDE and then we'll look at the overall architecture and how to structure our project so that its easily maintainable and deployable to both development and production environments.

We'll create the public part of our website and we'll then secure sensitive content through Spring Security.

We'll create the domain Model to represent our customers and we'll use Spring Data JPA, H2 (for development) and MySQL (for production) to persist our customer data. We will be using Amazon S3 to store customer's profile images.

We'll then look at how to integrate email functionality in our website through Spring Boot Email.

We'll then look at how to integrate credit card processing through Stripe.

Finally we will introduce AWS and the services that we will be using in this course, such as EC2, S3, VPCs, Regions, Availability Zones, Route53, Virtual Private Clouds and then how to deploy our application to the AWS Cloud so that it's highly available and highly scalable.

We'll conclude the course by considering how to leverage the web skeleton that we've put together in this course and next steps to further student's knowledge.

This course is not only about content. There will be extensive coverage of best practices and patterns, automated testing, deployment configuration and configuration management with Ansible.

Who is the target audience?
  • Java developers wishing to learn how to create a web application with Spring Boot and deploy it to AWS
  • This course is also for Java developers who already write web applications but would like to know how to use Spring Boot, Thymeleaf, AWS and Stripe
  • This is not a course for beginners. Students are supposed to have a good knowledge of Java and be quite experienced handing code through a Java IDE (e.g. Eclipse)
Students Who Viewed This Course Also Viewed
Curriculum For This Course
60 Lectures
09:44:50
+
Introduction to Web Technologies
2 Lectures 02:04

Video introduction to the course

Preview 02:00

It's strongly recommended that you complete my free, online introductory course on Web technologies. It can be found here: https://www.udemy.com/introduction-to-web-technologies/

Recommended - Complete my free online introductory course on Web Technologies
00:04
+
Getting Ready...
8 Lectures 01:23:19

In this lecture we will discuss the various Git Workflows and the one that we will be using in this course

The Git Workflows
19:38

In this lecture we will set up Java and Maven

Setting up Java and Maven
03:19

In this lecture we will setup Spring STS. The default IDE will be IntelliJ Ultimate, however once you have completed this lecture you will be able to follow with Spring STS if that's your preference

Setting up Spring STS
14:45

In this lecture we will setup IntelliJ ultimate, which is the IDE of choice for this course. If you don't already have a license, you will be able to install the software with the trial license

Setting up IntelliJ Ultimate
16:56

In this lecture we will see how to set up an AWS account

Setting up an AWS account
03:54

In this lecture we will see how to set up Identity Access Management (IAM) on AWS

Setting up IAM
08:52

In this lecture we will setup a Stripe account. Stripe is a product to handle credit card payments and it offers an API to manage credit card payments.

Setting up a Stripe account
04:48
+
Overall Architecture
2 Lectures 15:11

In this lecture we will go through the application overall architecture. This is important as it will provide us with a point of reference that we will be able to go back to times and again throughout the course

Introducing the DevopsBuddy overall architecture
07:11

In this lecture we will setup the folder structure. 

Setting up the folder structure
08:00
+
Creating the Public Content
9 Lectures 01:37:58

In this lecture we will look at how to setup Bootstrap and JQuery as Maven dependencies and how integrate web jars with Thymeleaf

Setting up Bootstrap and JQuery as Maven dependencies
05:19

In this lecture we will setup a Bootstrap skeleton for the index page. We will look at the Bootstrap plugin for IntelliJ, how to create a Controller to handle the requests and how to write the index page as a plain HTML 5 page with Thymeleaf

Creating the index page placeholder
06:16

In this lecture we will customise the index page to make it look a bit more like our application

Customising the index page
07:11

In this lecture we will look at how to create reusable HTML components (e.g. header / footer) with Thymeleaf fragments

Creating reusable HTML components with Thymeleaf fragments
08:18

In this lecture we will set up internationalisation with Spring Boot. 

Setting up internationalisation with Spring Boot
13:34

In this lecture we will see how to setup logging with Logback

Setting up logging with Logback
11:12

In this lecture we will look at how to create an About page with Bootstrap.

As an exercise, change the about.html page with some information and images about yourself and/or a colleague and/or a friend.

If you get stuck, you can always visit my GitHub repository at: https://github.com/cloudydevops/devopsbuddy and look at the about branch. 

Also, try to change the look and feel of the featurettes, possibly by changing images and / or text.


Creating the About Us page with Bootstrap
13:50

In this lecture we will look at the first half of the Contact Us user journey. In this journey we will learn how to create a Contact Us page with Bootstrap and how to send emails with Spring Boot Email

Creating the Contact Us page and Spring Boot Email - Part 1
15:17

In this lecture we will look at the second half of the Contact Us user journey. In this journey we will learn how to create a Contact Us page with Bootstrap and how to send emails with Spring Boot Email

Creating the Contact Us page and Spring Boot Email - Part 2
17:01
+
Securing our website with Spring Boot Security
10 Lectures 01:37:27

In this lecture we will create a Login form with Bootstrap

Creating the login form
08:25

In this lecture we will create a very simple Payload page, that should be seen only by authenticated users

Creating the payload page
03:24

In this lecture we will add security to the DevopsBuddy application with Spring In Memory Security

Spring In Memory Security
15:00

In this lecture we will discuss the authentication database model. This will form the basis for subsequent lectures when we will be moving security to the database

The Security Authentication database model
03:18

In this lecture we will introduce Spring Data JPA

Introduction to Spring Data JPA
15:33

In this lecture we will discuss Spring Data JPA repositories

Exercise:

- Write additional tests to check what happens when we don't set the Primary Key value in the Role and Plan entities before saving them

- Write additional tests to check what happens when we save a User entity without setting the relationships with Plan and Roles


Creating JPA repositories
15:00

In this lecture we will create the Service Layer

Creating the Service Layer
13:20

In this lecture we will see how to integrate our database security model with Spring Security User Details model

Integrating Spring Data JPA with Spring Security User Details
11:34

In this lecture we will look at how to encrypt plain text with the BCrypt library

Encrypting plain text with BCrypt
04:48

In this lecture we will look at how to create unique indexes with Spring Data JPA

Spring Data JPA - How to create unique indexes
07:05
+
The Forgot My Password User journey
6 Lectures 01:07:33

In this lecture we will see how to externalise configuration information such as the webmaster details. 

Externalising the configuration
04:23

In this lecture we will go through the Forgot My Password user journey and the overall architecture

The Forgot My Password Overview and Architecture
04:05

In this lecture we will create the Repository Layer for the Forgot My Password capability

Creating the Repository Layer
15:13

In this lecture we will create the Service Layer for the Forgot My Password Journey

Preparing the Service Layer
13:00

In this lecture we will make few modifications to the View Layer

Updating the View Layer - Part 1
19:02

In this lecture we will complete the updates to the View Layer for the Forgot My Password Journey

Updating the View Layer - Part 2
11:50
+
User account management
5 Lectures 46:28

In this optional lecture we will look at the FormValidation-UI framework. PLEASE NOTE: This is a commercial product (although it's relatively cheap) and for this reason the content in this lecture is optional. In this lecture I also suggest alternatives but we won't cover their details in this course. 

FormValidation-UI. An excellent framework for Bootstrap form validation
12:24

In this lecture we will introduce the User Creation journey

Introduction to the User Creation Journey
03:21

In this lecture we will create the front end domain model for User Account Management

Creating the Front End domain model
06:23

In this lecture we will create the Basic Subscription Flow

Creating the Basic Subscription Flow
14:39

In this lecture we will be handling the basic subscription POST Request

Handling the Basic Subscription POST Request
09:41
+
Amazon S3 to store profile images
3 Lectures 21:43

In this lecture we will go through what's required to allow users to upload their profile image

Allowing users to upload their account image
03:57

In this lecture we will introduce Amazon S3

Introduction to S3
08:08

In this lecture we will create an Amazon S3 Service

Creating the S3 Service
09:38
+
The Pro Subscription Journey
2 Lectures 19:32

In this lecture we will introduce the Pro Subscription journey

Introduction to the Pro Subscription User Journey
05:35

In this lecture we will create a Stripe Service to handle credit card subscriptions

Creating the Stripe Service
13:57
+
Deploying and Running on AWS
13 Lectures 02:13:35

In this lecture we will look at how to handle exceptions with Spring

Exception Handling
09:51

Install MySQL locally
07:51

In this lecture we will introduce Amazon Web Services and discuss the most popular AWS services

Amazon Web Services Overview
09:20

In this lecture we will discuss the AWS architecture that we will be implementing to deploy DevOpsBuddy to AWS

The AWS architecture for the DevOpsBuddy application
03:18

In this lecture we will setup the Virtual Private Cloud that will host the DevOpsBuddy application

Setting up the VPC
15:04

In this lecture we will setup the VPC that will host the DevOpsBuddy application

Testing Connectivity and Setting up MySQL on RDS - Part1
05:42

This is the second part of the lecture

Testing Connectivity and Setting up MySQL on RDS - Part2
17:14

In this lecture we will run the DevOpsBuddy application on a Single Availability Zone setup. This is to ensure that all layers can talk to each other and that we have a working application

Running in Single Availability Zone Mode
08:09

In this lecture we will be preparing the infrastructure for auto-scaling

Preparing for Auto Scaling
20:08

In this lecture we will implement Auto-Scaling

Implementing Auto Scaling
10:51

In this lecture we will introduce Ansible and see how we can use it to manage our AWS infrastructure as well as deploying the DevOpsBuddy application

Introducing Ansible to operate within a DevOps operating model - Part1
04:14

This is Part 2 of the lecture on Ansible

Introducing Ansible to operate within a DevOps operating model - Part2
17:47

In this lecture we will summarise topics that we have covered, topics that we haven't covered and where to take it from here. 

Conclusions and where to take it from here
04:06
About the Instructor
Marco Tedone
4.2 Average rating
1,060 Reviews
20,137 Students
2 Courses
Lean Enterprise, Microservices and DevOps enthusiast

I'm currently Global Head of Microservices for a leading international bank. Consultant, author, speaker and lecturer, with over 25 years of experience in IT, many of which spent in building high performing organisations and teams. 

I holds a MSc in Computer Science (Merit) and am a Professional Scrum Master as well as an Amazon Certified Solution Architect. My areas of expertise include: Microservices, Lean Enterprise, Agile transformations and frameworks, DevOps, BDD and Testing Automation.

Twitter: @marcotedone     Email: marco@devopsfolks.com