You're welcome to Heroic Academy

Select your country of residence below to continue

The Complete Java Masterclass

Master Java by building real-world projects. Learn JavaFX, Spring Boot, REST APIs, and more!

Created by Denis Panjuta

Close

Course Contents

Day 1: Introduction to Java and JDoodle and Basics

How to get the most out of this course!

Follow your Daily Success with out Check Off List!

Java Development Career Path - Why Learning Java is a Great Investment

JOIN THE COMMUNITY! - LINKS -

Intro

Introduction to Java

Quick overview of JDoodle

Displaying Text on The Screen Intro

Hello World - Displaying Text

Understanding the Predefined Code

Common Errors you can run into

Search for errors and fix them with Gen AI

Let's Practice: Fun with Print Statements

Debugging Basics - How to Solve Errors

Additional java features

print vs println - comments and escape sequences

(Optional theory) Java Under the hood

Numbers and basic Math

(Optional) Getting Started with JDoodle

Introduction

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Displaying Text with Java and Escape Sequences

Day 2: Variables and Data Types in Java

Intro

Variables Intro and Naming Conventions

Declaring and Initializing variables

Datatypes Quick Overview

Datatypes For Whole Numbers

Datatypes For Floating Point Numbers Float and Double

Datatype Char

Datatype Boolean

Datatype String

Declaring multiple variables at once

Arithmetics with variables

TypeCasting Implicit and explicit

Let's Practice: Shape Transformation

Variables and Data types

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Variable Manipulation and Data Types in Java

Day 3: Handling User Input and Simple Calculation

Intro

Introduction to Handling User Inputs

User Input with Text and the Scanner Class

User Input with Numbers and simple addition

Next Line Buffer behaviour

Let's Practice: Calorie counter pro

Solution Calories Counter Pro

Overview of Operators

Modulo Operator

Unary, Increment, Decrement Operators

Relational Operators

Compound Operators

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Handling User Input and Simple Calculations

Day 4: String Manipulation and Comparison

Intro

Strings Overview

Strings Creation and Concatenation

Strings length and charAt method

String Comparison with == Comparing References

String Comparison with equal and equalIgnoreCase

String Comparison with compareTo - lexicographically

Cutting strings using substring()

String replace, toUpperCase, toLowerCase

String format with strings and numbers

Operator Precedence and Associativity

Java Basics - Part 2

Let's Practice: Simple Interest Calculator

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: String Manipulation and Comparison in Java

Day 5: Setting up the Java Development Environment

Intro

DISCLAIMER: KEEP AN EYE ON YOUR VERSION

Overview JDK and IDE

(Optional) Advanced knowledge about JDK

Installing the JDK and Java Environment Variable

Programming Java Without any IDE just the text editor

Why IDE?

Installing IntelliJ IDEA

Some cool features of IntelliJ IDEA

Autocompletion and closing a project

Starting from an empty project and unused Variables

Renaming refactoring

Let's Practice: Budget Tracker Plus

Budget Exercise Solution

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Budget Tracker Plus in Java

Day 6: Control Statements - If, Else, and Ternary Operators

Intro

Control Statements in Java overview

If Statement

Nested If Statement

Logical Operators

Let's Practice: Chatbot

If Statements Exercise Chatbot

If Else Control Statements

Nested If Else Control Statements

If Else If Else

If Else If Else - Understanding the Flow using Breakpoints

Ternary Operators

Let's Practice: Galaxy Weather Advisor

Control Statements

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Galaxy Weather Advisor

Day 7: Switch Statements and Enums in Java

Intro

Presentation of the Day - Switch Control Statement

Basic Switch Statement

Default and break

Break and fall through

If Statements vs Switch Statements

Switch Statements with Char

Switch Statements with Strings

Enums and Switch

Why Enums

Switch within switch and prep for exercise

Let's Practice: Text based Adventure

Text based Adventure Game with Switch Statement

Java Switch Statements

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: The Ultimate Adventure Game Using Switch Statements

Day 8: Loops - For, While, and Do-While Loops

Intro

Loops Introduction Presentation For Loop

For Loops

Let's Practice: Star Pyramid Builder (Beginner)

Nested For Loops

Pyramids with for loops

Interview Question Fibonacci Sequence

Job Interview question: Fibonacci sequence

While Loop

Do While Loop

Break Keyword in Loops

Continue Keyword in Loops

Labels and break and continue

Let's Practice: Controlling loops

Loops

Interview Question Harshad Number

Job Interview Question: Harshad Number

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Simple Calculator with Loops

Day 9: Introduction to Arrays

Intro

Introduction to Arrays

Declaring, Initializing, Accessing and Modifying arrays

Array Length and For Loops to iterate through arrays

Enhanced For Loop - For Each Loop

Sum, min and max of an array

Let´s Practice: Rearranging Array Challenge

Rearranging Array Challenge Solution

Arrays Class and common methods

Arrays toString and sort Methods

Array binarysearch method

CopyOf and by value vs by reference

Arrays Fill and equals

Java Arrays

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Array Shuffle and Operations

Day 10: Working with 2D Arrays

Intro

2D Arrays overview

2D Arrays - Declaration, initialization and iteration

2D Arrays - Easier initialization

2D Arrays - Enhanced for loops

2D Arrays - get the largest number

2D Arrays - get the sum of all items in a 2d array

2D Arrays - Exercise

Job Interview Question: Diagonal Sum

ArrayList Intro

ArrayList and its methods

Let's Practice: Space Travel Simulator

Quiz: Strings & Arrays

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Space Travel Simulator with 2D Arrays

Day 11: Methods and Their Uses

Intro

Presentation Methods intro

Void Method

Void Methods with parameters

Sandwichmaker 3000

Pass by Value vs Pass by reference

Method that returns something

Subtract Method

Generating random numbers

Intro Word Scramble Game

Building a Word Scramble Game

Interview Question: Validate an Email address

Methods

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: TODO List Application with Methods

Day 12: Recursive Methods and Call stacks

Intro

Recursive Methods Intro

Recursive Methods in action - Factorial

Recursive Methods base case and recursive case

Recursive Methods common error - infinite recursion

Creating our secret language app - atbash method

Creating our secret language app - encoding

Creating our secret language app - decoding

Let's Practice: Atbash cipher

Understanding the Method Call stack

Understanding the Method Call stack with debugging

Method stack with recursive methods and overdoing it

For loop alternative for factorials

Visualising high memory usage

Alternative solution

Magic Mirror Exercise

Let's Practice: The Magic Mirror: Reflecting Strings with Recursion

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: String Reverser Using Recursion

Day 13: Exercises on Arrays and Number Handling

Intro

Exercise 1 - Remove duplicate elements from an array

Solution and Explanation

Exercise 2 - Number of Digits

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 14: Binary Search and Number Guessing Game

Intro

Binary Search explanation

Binary Search Introduction and how it works

Game Introduction

Numbers Guessing Game Solution

Explanation and Example Interaction

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

- DOWNLOAD SOURCE - Get your Downloadables here!

Day 15: Project: Todo App in Java

Intro

The Problem Statement. What do we want from the Todo App

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 16: Object-Oriented Programming Basics

Intro

Introduction to OOP presentation

Creating our first class

Creating our first class method

Using Member Variables

Function vs Method

Default Constructor

Parameterized Constructor

The this keyword

Let's Practice: Working with array of Objects

Constructor Overloading

The public, default, and private access modifiers

Setters and understanding why they are important

Let's Practice: Generating Math Quizzes

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Student Grades Tracker Using Classes

Day 17: Understanding the this keyboard Static Methods

Intro

Understanding the This keyword better

getInstance vs Reference with this

Method Chaining

Using Objects as Parameters

Copy Constructor

The static keyword

Why can't a non-static method be called from a static method

Let's Practice: Dice Rolling Adventure

Dice Game Exercise Solution

Java Constructors and Object Initialization

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Employee Info Tracker Using this and Static Methods

Day 18: Inheritance and the Super keyword

Intro

Inheritance overview

First steps in inheritance

Super keyword presentation

Super keyword with constructors

Super keyword with methods

Multi-Level Inheritance

Multi-Level Inheritance demo

Method overriding

Method overriding demo

Protected access specifier

Packages and all Access specifiers

Let's Practice: Word Guessing Game

Java Inheritance & OOP Concepts

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Basic Animal Class with Inheritance

Day 19: Polymorphism and Abstract classes vs Interfaces

Intro

OOP3 Polymorphism Intro

Hierarchical Inheritance in action

Why Polymorphism

Static Polymorphism Method Overloading

Dynamic Polymorphism Method dispatching

(Optional) Runtime Polymorphism

Abstraction - Abstract and Interface

Abstraction in Action - Payment Processing

Interface syntax

Interface in action

Abstract classes vs Interfaces

Abstract classes vs Interfaces - real world example

Encapsulation

More on OOP Concepts & Polymorphism

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Vehicle Operations Using Polymorphism

Day 20: Course Project Overview

Intro

Presentation about the project - what you will gain

Project: Bank Account Management System

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Now I know basic Java, before we get further, what else do I need to know?

Day 21: Collections Framework Introduction

Intro

Collections Framework Intro

The Depths of Arraylists heritage

Overview of List Classes

LinkedList vs ArrayList - Speed Test

Vector vs ArrayList vs Sync Arraylist - Speed Test

Stack

Set overview

Hashset

Hash Table, LinkedHashSet, and TreeSet

Java Collections Framework

Interview Question: Duplicates with index difference

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Unique Names Tracker Using a HashSet

22: Queue and Map interface

Intro

Queue and Map Presentation intro

PriorityQueue

ArrayDeque

Map interface and its classes

TreeMap

Hashmap

LinkedHashmap

HashTable and Concurrenthashmap

Iterator Interface

Java Collections Framework

22: Queue and Map interface

Java Collections Framework

Let's Practice: Word Frequency Counter

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Basic Task Queue Using ArrayDeque

23: Exception Handling in Java

Intro

Exception Handling Presentation

Try and Catch

Using multiple Catch Blocks

Finally keyword

Rethrowing and Propagation Intro

Throw Keyword

ReThrowing Exceptions

Exception Propagation

Combining Exception Propagation with Exception rethrowing

Custom exceptions intro

Creating custom exceptions

Creating Custom Exceptions2

Let's Practice: Password Validator

Exception Handling

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Simple Division with Exception Handling

Day 24: Java I/O - Working with Files and Streams

Intro

Java IO Intro

ByteArrayInputStream

Output Classes Intro

Try with resources and write text to a file using FileOutputStream

Try with resources with two resources and write text to a file using BufferedOut

Storing data in all kinds of data types using DataOutputStream

Input Classes Intro

Reading data types from a file using DataInputStream

Reading data from a txt file using BufferedInputStream

File Write Intro

Buffered vs Unbuffered Stream Speeds

Handling Files with the File Class

Checking if file exists and create it if not

Renaming Files with the File Class

Deleting a file using the file class

Creating Folders Directories Paths using the File Class

Displaying all files within a folder using the File Class

Serialization and Deserialization Intro

Serialization in action

Deserialization in action

Final Thoughts about De-Serialization and the transient keyword

Managing Serialization

Let's Practice: Simple Password Manager

Java I/O

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

ADVANCED EXERCISE: Writing and Reading from a File

Day 25: FXML and JavaFX Introduction

Intro

FXML Intro

Java Based UI vs FXML in larger projects

Understanding XML and more about FXML

Understanding the FXML in the generated file

Using Layouts within Layouts VBox and HBox in FXML

Using Comments in XML

MVC overview

Events in FXML and Alert onMouseEntered

Gridpane

styling and alignment

Style property

Alignment property

Why CSS makes sense

Borderpane in FXML

style.css styling our ui

More styling and hover effect

Let's Practice: Display a Confirmation & Alert Dialog

FXML and JavaFX Introduction

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 26: JavaFX and Basic UI Components

Intro

JavaFX Overview

Gradle and GroupID

Running our first GUI App

JavaFX File Structure overview

JavaFX Basics - Stage, Scene, Pane

Understanding the HelloApplication.java file

Loading a Resource of fxml type

Creating our own UI with java code

Lambda Expressions theory

Lambda Expressions Calculator

Lambda Expressions vs MultiOperations Implementations

Lambda Expressions why use lambdas

Lambda Expressions as Parameters

Single Argument Lambda expressions

Let's Practice: Adding Buttons on the screen

JavaFX and Basic UI Components

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 27: JavaFX Layout and Scene Builder

Intro

JavaFX Shapes Presentation

JavaFX Adding a Rectangle to a pane

JavaFX Adding a Circle and Line to a pane

JavaFX Layout Types

JavaFX Layout HBox

JavaFX Layout VBox

JavaFX Layout Stackpane

JavaFX Layout FlowPane

JavaFX Layout GridPane

BorderPane

Installing Scene Builder

Drag and Drop UI and connect it to our app

Modifying which event will be triggered and how FXML, Controller and Scene Build

Creating a Form with Scene builder

Let's Practice: Creating TextFields

Let's Practice: Creating a Basic Form

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 28: Event Handling and Data Binding in JavaFX

Intro

Handling Keyboard events intro

Building a JavaFX Project from scratch and understanding how the files interact

Using Key Events and EventHandlers as well as EventListeners

Mouse Events intro

Get the Mouse Position via Events

Databinding Intro

Databinding in action - UI Setup

Databinding in action

Move from one Scene to another

Retrieving the stage during runtime

Let's Practice: Moving Shapes using keystrokes

Changing Ball colour based on position

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 29: Animations in JavaFX

Intro

Intro Animations

Translate Transition intro

Translate Transition project prep

Translate Transition move an item via animation

Chain Animations

Start and stop animations with a button click

Fade Transition

Rotate Transition

ScaleTransition

Sequential- and ParallelTransition

Using ImageViews

Loading the image

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 30: Building a To-Do Application with JavaFX

Intro

Why building the To-Do App is a good idea

What we will build today

Role of the launcher class

Setting up the project from scratch

Understanding Gradle

Intro to MaterialFX and implementing it

Adding MaterialFX to Scene Builder

Fixing an error in the module-info.java file

Setting up the Main Class with the Theme and Stylesheet

Setting up our main interface

Setting up the task card and task controller

Setting up the main Controller and Testing the App with Dummy Data

Styling the ToDo App with CSS

DOWNLOAD SOURCE - Get your Downloadables here!

Day 31: Building a To-Do Application with JavaFX

DOWNLOAD SOURCE - Get your Downloadables here!

Day 31: Adding Features to the To-Do Application

Intro

What we will build today

Intro to DTOs

Creating a DTO TaskDTO

Changing the architecture of our app

Color Tasks based on status demo

Add Task Intro

Setting up the task dialog UI

Displaying the new task dialog

Adding Tasks via the dialog

Styling the dialog

View Task Dialog Intro

View Task Dialog Prep

Adding an ID to our Tasks

Displaying Task in Dialog

Adding Comments and viewing them

Updating Tasks

Updates to the TaskCardController class

What's next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 32: Enhancing To-Do Application - Sorting and Filtering

Intro

Intro for the sorting mechanism

Adding Sorting by Status

Adding Filter by Status Logic

Saving and Loading our Tasks permanently

Adding a Delete Feature

Understanding Observable, Listener and Callable

Outro

Day 33: Git and GitHub Integration

Intro

Version Control and Git Overview

Installing Git on Windows

Configure git user details

Git Commands

GitHub Intro

Git Commands Basics in action

Git Branches and Merging

SSH and connecting git to github

SSH and connecting git to github demo

Connecting our Project to github

Let the IDE share your project to github

Commit and Push in IDE

Git

What´s next?

Day 34: Dependency Injection in Spring

Intro

Spring Intro

Where is spring used

Types of Dependency Injection (DI)

Constructor Dependency Injection

Setter Dependency Injection

More on Setter DI

When to use Constructor DI and when Setter DI

Java Spring

Let´s practice: Smart Home Automation

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 35: Beans and Inversion of Control (loC) with Spring Boot

Intro

Introduction to Beans and IoC

Lifecycle of beans

Understanding Beans IoC and ApplicationContext better

Advantages of using ApplicationContext

Spring Initializr and ApplicationContext Beans

Making a class a bean, and retrieving it from context

Clean Spring project and more beans

AutoWired - Field Dependency Injection

Clean IoC Architecture with CommandLineRunner and Spring Boot

Spring Beans

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 36: Autowiring and Component Scanning in Spring

Intro

Autowiring Intro

Autowiring Modes

Autowiring by Type

Autowiring by Name

Autowiring by Constructor

No Autowiring - Manual Wiring

@Component and @Service

@Configuration and @ComponentScan

@Configuration and @ComponentScan in Action

Let's Practice: Personalised Welcome Message

Autowiring

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 37: Generics and Bounded Types

Intro

Generics and Type Parameter

Why not just use an ObjectPrinter

Bounded Generics

Generic Methods

Generic Methods - swap items in an array

Generic Methods with multiple generic parameters

Bounded Type Parameters in Generic Methods

Let´s Practice: Generic Stack

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 38: Dependency Injection and @Qualifier in Spring

Intro

What we will cover today

Field Injection with @Autowired

Understanding DI Hierarchy

Constructor DI vs Field DI

@Qualifier vs @Primary intro

Understanding @Service and @Qualifier demo

@Primary demo

What even is a service?

Interview Question: Peeking Iterator with Field Injection

Dependency Injection

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 39: Spring Boot and MVC ChatApp

Intro

Spring vs Spring Boot presentation

Spring Boot Auto Configuration, Setup and @PostConstruct

The Power of @PostConstruct

Spring MVC Explained

CommandLineRunner

MVC ChatApp - Models and Service

MVC ChatApp - Controller and Testing

Let's Practice: Text Based Chat

Spring MVC web under the hood

Spring Boot

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 40: Introduction to Web Development and REST APIs

Intro

Introduction to Web Development HTTP GET, POST, PUT, DELETE and API

Understanding HTTP Response codes

REST, Restful, Restless, CRUD

HTTP vs HTTP Methods, REST vs API

Our First REST API Server localhost 8080

HTTP Status Codes and ResponseEntity

@Controller vs @RestController and a bit of JSON

Using @PathVariable

Using @RequestParam for Query Parameters

Using @RequestParam and @PathVariable and when to use what

What are Tomcat Servers

Let's Practice: Listing User Profiles

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 40: JSON Processing and Lombok Annotations

Intro

Day 41: JSON Processing and Lombok Annotations

Intro

Intro for the day and Postman

Installing Postman and quick test

JSON Basics, Jackson and ObjectMapper

JSON Serialization with ObjectMapper and Jackson

JSON Deserialization with ObjectMapper and Jackson

Modify JSON dynamically using ObjectNode and JSONNode

Lombok Annotations

@JsonProperty and @JsonPropertyOrder

@JsonIgnore and @JsonInclude

Lombok @Setter and @Getter

Lombok @ToString, @NoArgsConstructor, @AllArgsConstructor, @EqualsAndHashCode

Let's Practice: Personal Expense Tracker

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 42: CRUD Operations with SpringBoot RESTful services

Outro

SpringBoot RESTful services POST and PUT

Post request and @RequestBody

POST with Postman

Storing Products in a JSON and Updating our Request

Get Products and Get Product by ID

PUT operation - Updating the database

Delete operation CRUD

Let's Practice: Product Management API

RESTful API

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 43: Expense Tracker Application

Intro

Expense @Data Class

Loading the Expenses

Filtering by Category like a pro using stream map

Refactoring, Filtering and Making Services

Testing our other endpoints

FindById

AtomicLong and Adding Items with PUT

Updating with PUT

Deleting Expenses

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 44: Spring Data Access and H2 Databases

Intro

Spring Data Access Intro

Spring Data Access Advantages

JDBC and JPA

Hibernate

Understanding different Database Types and H2 Database

Intro to H2 Databases

Setting up our H2 Project and application.yml

Setting up an Entity

Repository, Service, Controller and Testing

Testing the h2 console

Spring Data Access

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 45: Integrating PostgreSQL with Expense Tracker

Intro

H2 for our Expense Tracker Intro

Adding dependencies and the application.yml to our expense tracker app

Adding the Entity and the Repository

Neon PostgreSQL Database overview

Connecting to a PostgreSQL Cloud Database

Outro

Day 46: Spring Security Basics and User Authentication

Intro

Spring Security Intro. Authentication, Authorization etc

Security Config Class

Setting up Security Config Class and testing authentication

Requestmatchers permitAll for public pages

Customizing UserDetailsService for Authentication

Creating an inmermory User and checking out bcrypt

Managing User Roles

Password encryption and hashing with bcrypt

Adding Password encryption and hashing with bcrypt

Logout, Sessions, Cookies and more

Implementing Logout to our demo

Security Vulnerabilities

Let's Practice: Employee Management System

Introduction to Spring Security

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 47: Session Management and JWT Authentication

Intro

Session Management Intro

Session Demo

Session Timeout Demo

State vs Stateless Authenticatin JWT, etc.

Stateless Authenticatin using JWT

JWT in Action with Postman and rundown of JwtUtil einschub

JWT in Action with Postman and rundown of JwtUtil

JwtAuthFilter rundown

Let's Practice: Casting Votes

JWT Authentication with Spring Security

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 48: User Sign-Up and JWT Integration

Intro

User Sign UP and Log in Intro

Setting up the H2 In Memory DB

Sign up controller and Service Intro

Sign up new user

Adding JWT to our Signup and login - Intro

Adding JWT to our Signup and login - demo

Login via database user data - demo

Day summary

Concepts Learned in Implementing User Sign-Up and Authentication

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 49: Advanced JWT Implementation and Security Configuration

Intro

Intro Security for our Expense tracker

Adding the SecurityConfig to our Expense Tracker

AuthController Overview

AuthController Implementation

JWTUtil class overview

JWTUtil class implementation

JWTAuthFilter intro

Setting up the AppUser, Repository and signup endpoint

Setting up the UserDetailServiceImpl

JwtFilter

Adding the Filter before Spring security authenticates

Creating the User Login Flow intro

Creating the AuthServiceImpl class

Separating the concerns

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 50: Role-Based Access Control (RBAC) and Final Touches to Expense Tracker

Intro

Expense Tracker Final Touches RBAC intro

RBAC and middleware

Mapping Users to expenses Part 1

Mapping Users to expenses part - Part 2

Adjusting the Controller

Testing user-based database access

Implementing RBAC - Intro

Prepping UserRoles and hardcoding Admin

AdminService and AdminController

Future Scope

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 51: Expense Tracker Authentication with JavaFX

Intro

Expense Tracker Authentication with JavaFX Intro

Setting up JavaFX Project and HTTPClient

Setting up MaterialFX

Setting up Login, Signup and Loading Views and Controllers

Setting up Preferences that hold the JWT Token

Moving between Login and Signup Scenes

Creating the HTTPResonse sendPostRequest method

Finalizing actual signup via our UI and creating the AuthService class

Adding the login feature

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 52: Expense Tracker: Rendering User expense (expense-ui)

About the Day

Creating the Main UI

Adding Fields to the Expense Table

Explaining the Edit and Delete buttons

Fetching Expenses from API

Handling Authentication Failure

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 53: Expense Tracker: Add Expense UI (add-expense-ui)

About the Day

Designing the Add Expense View

Handling Form Validations

Calling API to add expense

Updating the main screen

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 54: Expense Tracker: Editing Expense UI (edit-expense-ui)

Assignment! Practice your skills!

Connecting the Edit Expense view

Calling API to Edit expense

Showing Alert on Delete button press

Article: JavaFX Alerts

Calling delete API and updating the Main Screen

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 55: Expense Tracker: Viewing Statistics (stats-ui)

Assignment! Practice your skills!

Creating the Statistics view

Fetching data from backend and updating stats

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 56: Expense Tracker: Building and Sharing (production)

Assignment! Practice your skills!

Uploading backend to github

Deploying the backend using Railway

Updating baseUrl in the User Interface

Final Touches

Building the jar file and sharing

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 57: Final Day: Threads and Concurrency

About the day

Introduction to threads

Creating and managing threads

Thread Synchronization

Thread Communication

Concurrency Utilities

Using Concurrent Collections

Avoiding common thread issues and Best pratices

Let´s Practice: Dining Philosophers

What´s next? - DOWNLOAD SOURCE - Get your Downloadables here!

Day 58: Final Day: Practice 1: Java Basics

About the Day

Swap 2 variables without using a 3rd variable

String Compression

Find the largest sum subarray

Rotate Array

Array Permutations

Top K frequent elements

Parking Lot Design

Day 59: Final Day: Practice 2: Java Advanced

About the Day

Recap

LinkedList Cycle

Anagram Checker

Article: Binary Tree, Heap and PriorityQueue

Call Center Simulation

Understanding Graphs, BFS & DFS

URL Crawler

Day 60: Final Day: Practice 3: Spring ad SpringBoot

About the Day

Recap

Circular dependency with DI

Handling multiple Beans

Custom Error Handling

Answering advanced questions

What you will learn and gain

  • Master Java from A to Z: Begin with the basics of Java programming and progress to advanced concepts.
  • Understand object-oriented programming (OOP) and its core principles--classes, inheritance, polymorphism, and more.
  • Build real-world projects including a fully functional To-Do App and REST APIs.
  • Develop desktop applications using JavaFX for sleek, responsive user interfaces.
  • Work with Spring Boot to build robust, scalable web applications and microservices.
  • Learn data handling and file processing in Java, including working with databases using Spring Data and H2.
  • Master concurrency, threads, and asynchronous programming for creating high-performance applications.
  • Dive into cybersecurity to learn how to secure your applications and data.
  • Work with RESTful APIs: Learn to design, build, and consume REST APIs using Spring Boot.
  • Version control with Git & GitHub: Collaborate effectively and manage your codebase.
  • Clean code and best practices: Learn to write high-quality, maintainable code

What our students are saying

Welcome to the Complete Java Masterclass, the only course you need to master Java development from the ground up. This comprehensive program is designed to take you from a complete beginner to an advanced-level Java developer by combining a perfect balance of theory, practical projects, and professional-level best practices.

We will begin with Java fundamentals--variables, data types, control statements, and loops--ensuring a solid understanding of the language basics. As we progress, you'll learn the ins and outs of object-oriented programming, error handling, collections, file handling, and much more.

By the time you finish this course, you'll be equipped to build desktop applications with JavaFX, create REST APIs with Spring Boot, work with databases, implement cybersecurity practices for scalable, real-world applications.

What makes this course unique?

  • Project-based learning: You'll build multiple real-world projects, such as a To-Do Application and a full-featured Expense Tracker with Spring Boot, which will help you apply your knowledge in real-world scenarios.
  • Modern development practices: You'll learn how to develop professional-grade applications using Spring Boot, JavaFX, and REST APIs, ensuring you're up-to-date with industry standards.
  • Comprehensive curriculum: Covering everything from basic Java syntax to multi-threading, dependency injection, everything you need to become a Junior developer.
  • Supportive community and instructor: I'm here to help. Throughout the course, I'll be answering questions and providing feedback on your code and projects to ensure you stay on track and succeed.

Who is this course for?

  • Aspiring software developers who want to learn Java and build professional applications.
  • Existing developers looking to switch to Java or deepen their knowledge of Java and Spring Boot.
  • Students and professionals wanting to build desktop applications with JavaFX or create web services with Spring Boot.
  • Java beginners with no prior experience who are eager to master one of the most widely used programming languages.

Course content:

You'll learn Java through a structured path of 60 days, with each day introducing key topics and practical exercises:

  • Day 1-15: Learn Java fundamentals, control statements, loops, arrays, and user input handling.
  • Day 16-20: Dive into object-oriented programming (OOP) with inheritance, polymorphism, encapsulation, and interfaces.
  • Day 21-25: Explore the Java Collections Framework, Exception handling, and best practices for clean, maintainable code.
  • Day 26-30: Build desktop applications with JavaFX, using powerful UI components and animations.
  • Day 31-40: Work with Spring Boot to build robust web applications and RESTful APIs. Learn Git, manage versions, and publish.
  • Day 41-50: Integrate databases, create secure applications, Implement session management, Implement Stateless and Scalable authentication, Role Based Access Control, and Making a robust backend microservice
  • Day 51-60: Making REST calls from Java desktop apps, Handling Authentication from Desktop apps, Creating an interactive expense tracker UI, Creating Sharable JAR file and using your own app

Project Highlights:

  1. To-Do Application: Build a feature-rich task manager with JavaFX, learning how to develop interactive desktop applications with clean and maintainable code.
  2. Expense Tracker: Develop a scalable, secure Expense Tracker using Spring Boot and REST APIs, where you'll manage data and user authentication.
  3. Building REST APIs: Master API creation with Spring Boot, integrating database connectivity and security features.

Your satisfaction guaranteed:I'm so confident in the quality of this course that I offer a 30-day full money-back guarantee. If you're not completely satisfied, you can get a full refund--no questions asked.Get started today!This course is your way to mastering Java programming and stepping into the world of professional software development. Whether you want to build desktop applications, REST APIs, or learn the latest in Java development practices, this is the course for you.Join now and start your journey to becoming a Java developer!

Requirements

  • No prior programming experience is required; I will teach you everything from the beginning.
  • A PC or Mac with internet access and a Java development environment (we'll set this up together).
  • Optional: IntelliJ IDEA (for the integrated development environment portion of the course) and Visual Studio Code.

Who this course is for:

  • Aspiring software developers who want to learn Java and build professional applications.
  • Existing developers looking to switch to Java or deepen their knowledge of Java and Spring Boot.
  • Students and professionals wanting to build desktop applications with JavaFX or create web services with Spring Boot.
  • Java beginners with no prior experience who are eager to master one of the most widely used programming languages.

Frequently Asked Questions

What is Heroic Universal Concept All About?

Heroic Universal Concept International is an ICT firm and a vision-driven movement aimed at harnessing the ingenuity of young people with the use of motivational and ICT tools, thereby helping them achieve their ultimate goal.

We offer ICT services and champion talent development programmes for young people.

Is your training online or physical?

Our training is online. We have hundreds of downloadable tutorial videos on different ICT courses hosted in our website.

As soon as you pay and register, you will be given access to the tutorial videos. You can download them and commence training, offline.

While you're learning, I will be guiding you from here whenever you need my assistance.

Where is your location?

We're based in Kasoa, Ghana and Lagos, Nigeria but our training is online. So, you can access our courses from anywhere you are while we will be coaching you from here.

Do you have a physical class?

No, we don't.

Our training is 100% online.

What is your mode of teaching?

We teach with tutorial videos.

We have hundreds of downloadable tutorial videos on various ICT courses in our website.

You will have access to download them and learn with them as soon as you register for your desired course.

We made all the tutorials downloadable to help you save data and be free from challenges of poor internet connection.

Do you have online community where your students converge to exchange ideas?

We have Heroic Students WhatsApp group where our students converge and exchange ideas.

Information about Heroic Academy and other Heroic innovations are discussed in the group.

Do you mentor your students?

Sure, I do absolutely!

I'm always available Whenever my students need my attention.

I supervise their projects and tackle their challenges.

Can ICT courses be learnt online effectively?

Of course! The more convenient way to learn ICT skills these days is online.

There are some courses you may never have the opportunity of learning if you're waiting for opportunity to learn them physically.

Professionals are fast moving online. Very few of them will still have time to teach physically.

Programming is one of those skills you can easily learn online.

All you need is a good and experienced coach, and I'm here to help.

Is programming difficult?

It depends on who is coaching you and the time you dedicate to learning it.

If you're being coached by a very experienced and gifted coach, if you give it enough time, programming will be fun for you.

However, if you're struggling to learn by yourself or you're being coached by an inexperienced coach, you will find programming difficult.

Can I learn coding with my phone?

Yes, you can start learning with your phone if you don't have a laptop. Just buy a phone external keyboard, I will direct you on how to use it to start programming.

How do you mentor your students?

I mentor my students by; answering their questions and helping them solve some problems whenever they call my attention.

If my student need my attention, I usually ask them to send me a screenshot of the issue or a zip file of their work to enable me analyse their job and debug the error.

I usually make a new video to point out their errors if the situation is complex.

How can you convince me that you're genuine?

Chat me on Whatsapp via +2348037747461 and express your concern.

I will try my best to clear all your doubt.

I'm not used to online training, I'm afraid it won't work for me.

Online training is great when a gifted teacher is handling it. Look for a gifted teacher. You will be missing opportunity to acquire great skills if you ignore online training.

Some skills are not common. Online training make them accessible.

If you have tried online training before and it didn't work for you, try again, this time, concentrate on getting a good teacher.

I tried my best to simply my lectures. You can chat me to see my students testimonials. They're testifying that I made my courses very simple.

Don't you think that poor internet connection can disrupt online training?

I made all my tutorials downloadable to win against poor internet connection.

You can download all your tutorials when the internet connection is ok and learn offline without worrying about network fluctuations.

What if I insist on one-on-one training. What's your advice?

Online training would have made learning a lot easier for you but if you insist on physical training, you have to take the pain of looking for someone or centers where the skills are taught.

The centers might not be close to you, so be ready to spent heavily on transportation.

I wrote an article where I compared online and physical training. You can chat me on Whatsapp to request for it.

I'm interested, how do I get started?

Go ahead and order for the course. If you need assistance, chat me on Whatsapp via +2348037747461.

Will I get certificate after the training?

Of course. Our organization is registered. We give our students certificate on completion.

I'm interested in the courses but I don't have money

If you can't afford the expensive courses, there are some cheap courses you can start from.

Just pay for the ones you can afford and get started instead of waiting.

You will gradually raise money to pay for the rest.

Are all your tutorial videos downloadable?

All the tutorials the Admin of this platform, Uche Joe created by himself are downloadable but the tutorials created by other expert partners created might not be downloadable.

However, you will surely enjoy the learning process.

You may also like

See all coursesarrow_forward