
Learn to build a complete secure full stack Java application with Spring Boot and React, including a pet care system with JWT-secured RESTful APIs, Hibernate, and Spring Security.
Set up your Java development environment by installing a Java 17+ JDK and an IDE such as IntelliJ or Eclipse, and align with Spring Boot 3 and Spring Framework 6.
Explore Spring Boot, a Spring framework extension that auto-configures projects, includes an embedded web server, and provides starter dependencies to quickly build and deploy production-ready applications.
Explore how the Spring framework lightens Java development by reducing boilerplate through dependency injection and inversion of control, enabling modular apps with Spring Boot, Spring Data, and Spring Security.
Explore how Spring Boot Starter simplifies dependency management by automatically pulling in transitive dependencies for web and security. Learn how the Spring Boot Starter parent coordinates versions in Maven.
Enable Spring Boot dev tools to auto-reload changes, eliminating manual restarts. Reflect updates in browser like hot module replacement by configuring the dev tools dependency and build automatically in IntelliJ.
Explore how Maven, a project management tool, builds Java projects, manages dependencies via the pom file, resolves conflicts, runs tests, and packages distributable artifacts.
Discover how Maven manages dependencies for Spring Boot projects and pulls in boot starter web, tomcat, Lombok, and other libraries from the central repository.
Master java full stack development with spring boot and react: working with lombok demonstrates auto generating getters, setters, and both all-args and no-args constructors for clean pojos.
set up mvc structure by creating model, service, controller, and repository packages for the product domain. implement product service and controller, plus a product repository interface.
Explore how the controller handles client requests using a rest controller and request mapping, returning a list of products via a get mapping to the front end.
Define a Spring service bean and inject it into the controller to get products, returning the product list from the service.
Learn to design a product service interface and implement it via a service class, defining get all products, get product by id, and add, update, delete operations with uniform naming.
implement CRUD operations for products using a repository in Spring Boot, including save, find by id, update, delete, and get by id, with post, put, and delete mappings.
Test a spring boot rest api with postman to verify get all products, find by id, delete by id, and update endpoints on port 9192. Learn how to fix endpoints by using the request body for updates, applying the correct request param for the id, and adding a new product via post to finish the spring boot crash course.
Set up your development environment for React by installing Node.js and a text editor like VSCode. Follow instructions step by step to install Node.js and VSCode on your operating system.
Set up and explore a brand-new vite + react project in vscode, manage dependencies, scripts like npm run dev, and inspect the entry points and structure from index.html to src.
discover how React components form the building blocks of a UI, encapsulating markup, styles, and behavior, and build your first component as a functional example.
Refactor the products display into modular components by creating a product data module and a reusable product list, then map external data to render lists with Bootstrap styling.
Learn to implement interactive event handlers in a React list, logging clicked products to the console and highlighting the active item with a dynamic Bootstrap 'active' class using useState.
Explore inspecting the react component tree, observe how useState tracks clicked item indices, update active states on click, and navigate the component hierarchy from app to product list and items.
Review core react concepts like setting up a react app, managing state, handling events, composing components, applying bootstrap, and connecting data services using jsx interpolation with curly braces.
Discover how Hibernate acts as an orm and jpa implementer, mapping annotated Java classes to tables and handling data access with minimal boilerplate.
Build a pet care marketplace that connects veterinarians and pet owners via account management and appointment workflows, with admins overseeing veterinarians and bookings.
Ensure your development environment is ready by validating IntelliJ and VS Code setup for Java and JavaScript development, then proceed to the final project.
Generate a spring boot project with start.spring.io, choose maven, java, and dependencies like jpa, mysql, and web, then open it in your editor for pet owners and veterinarians.
Learn how to model three user roles—patient, admin, and veterinarian—by creating a common superclass user with shared attributes and adding a vet-specific specialization, while outlining admin and patient roles.
Explore core OOP concepts and inheritance, where a subclass extends a superclass to inherit properties, with examples like user, admin, and patient, plus JPA and Hibernate mapping relevance.
Apply inheritance mapping to user entities using hibernate and jpa annotations, enabling joined table strategy across admin, patient, and veterinarian with a shared primary key.
Configure the entity’s primary key generation with identity strategy in JPA/Hibernate, then run the project and resolve JDK and database URL issues by updating the property file.
Configure project properties—database url, credentials, mysql driver, and dialect; choose hibernate ddl auto options (create, update, create-drop) while mapping a four-table user inheritance (user, admin, patient, veterinarian).
Test creating a user through the user controller and service, wiring with constructor injection, and persisting via a JPA repository, validated with postman in a single API flow.
Register users via a single form, where a gateway checks the user type and delegates to a domain factory to create a veterinarian, admin, or patient and save to database.
Orchestrate the user factory to create vets, patients, and admins via dedicated factories, map common attributes with a user attribute mapper, and keep specialization transient to honor inheritance.
Implement the user factory by mapping frontend attributes to the user entity, validating email uniqueness, and delegating to veterinarian, patient, or admin factories by user type.
Use constructor injection and bean annotations to simulate a user factory, not the full pattern, map registration data to a veterinarian's specialization, and save via a repository.
Wire patient and admin creation using a patient repository and user attribute mapper. Inject dependencies with Lombok's @RequiredArgsConstructor, extend JPA repositories, and persist via repository saves.
Implement DTO to control what data is sent to the client after user creation. Avoid exposing the password and direct database models by selecting only the necessary user fields.
Learn how data transfer objects simplify web app data exchange by encapsulating data, reducing network traffic, and decoupling service and presentation layers for stable APIs.
Explore Spring's ResponseEntity to customize http responses—set status codes, headers, and body—and return a generic api response object for client data.
Implement a generic entity converter with model mapper to map entities to DTOs and vice versa, handling polymorphic user subclasses like vet, owner, patient, and admin.
Fine-tune the user creation flow to return accurate http status with response entity, showing 409 conflict when email exists and centralizing messages and url mappings.
Understand versioned api naming patterns for resources like users and appointments, using endpoints such as /api/v1/users and /users/update, and avoid conflicts by prefixing actions per resource.
Update a user by id using a dedicated find by id method, handle not found with a resource not found exception, and return a DTO confirming the user updated successfully.
Test and update the user api using postman by creating a collection, sending register and update requests, and validating data for patients and veterinarians in a pet care project.
Develop the user API by adding get by id and delete endpoints, map the user to a DTO, implement try-catch for errors, and connect the controller to front end calls.
Implement a get all users endpoint by converting database entities to user DTOs in the service and exposing a get all users API in the controller for front-end access.
Model an appointment api where patients and veterinarians share a single user table and container; logins fetch appointments by user id, with sender patient and recipient veterinarian.
Implement the appointment API by creating an appointment model with id, start time, appointment time, appointment date, created at, reason, appointment number, status enum, and links to patient and recipient.
Implement appointment creation and deletion in Spring Boot by validating users, setting status to waiting for approval, assigning appointment number, and using JPA find by id and appointment number.
Implement the appointment update method by locating the existing appointment, enforcing waiting-for-approval status, and applying date, time, and reason updates with robust existence checks.
Create the appointment controller in a spring boot app by configuring a rest controller with /appointments and a get all appointments endpoint, including robust response handling and error management.
Learn to build the appointment controller to book an appointment, get by id, update, and delete appointments in Spring Boot, handling API responses and resource not found errors.
Demonstrates testing the appointment API with Postman, booking an appointment via API/v1/appointments, validating request params, and diagnosing a circular dependency during save.
Explore pet API, focusing on the pet and appointment entities, their relationship, and how pet types like cat, dog, and fish use properties such as color, breed, name, and age.
Create the pet entity class with id, name, type, color, breed, and age. Map a many-to-one to appointment and a one-to-many to pets, using cascade all and adjacent properties.
Create the pet service interface and implementation, a pet controller and repository, and integrate create, read, update, and delete operations for pets, including saving lists for appointment bookings.
Refactor the appointment service to accept a book appointment request with a list of pets, associate each pet with the appointment, and persist changes transactionally.
Explore the user image API on the dashboard to upload, update, or remove a profile image, and follow step-by-step implementation in IntelliJ.
Implement a photo service class in spring boot by wiring photo and user repositories, handling uploads, converting bytes to blob, saving, updating, and deleting photos.
Test the photo API with Postman by uploading, updating, getting by id, and deleting photos linked to users, ensuring file name tracking and uniform endpoints.
Develop the review API with a star rating component and feedback box, letting patients rate doctors after completed appointments, with one patient per doctor and one patient rating many doctors.
Implement a review service in Spring Boot by creating a review service interface and a concrete class, enabling save, update, and get average rating for veterinarians, with paginated user reviews.
Implement a Spring Boot review update endpoint using a review update request with stars and feedback, keyed by review id, returning a success response and handling not found errors.
Implement update and delete methods for reviews in the surface class and controller, break relationships with users before deletion, and throw appropriate errors with feedback strings.
In this comprehensive course, we will start by providing an overview of the Spring framework and Spring Boot, delving into its fundamental concepts and highlighting its significance as a leading framework for Java application development.
Subsequently, we will explore the fundamentals of React, a widely favored front-end development library. Following this, we will embark on a detailed exploration of Java full-stack application development, culminating in the creation of a fully functional end-to-end Java web application.
This will involve harnessing the capabilities of Spring Boot 3, Spring Security 6, Spring Data JPA, Hibernate, and React. Additionally, the course will cover the implementation of JWT Authentication, encompassing features such as login/logout, user email verification, and password reset functionality, among others. Throughout the course, participants will gain practical experience in integrating the aforementioned technologies to develop a robust and scalable application.
Emphasis will be placed on best practices for seamless integration and efficient utilization of these tools. The curriculum will also address key considerations for security, performance optimization, and overall application architecture.
By the end of the course, students will have acquired a comprehensive understanding of full-stack application development, empowering them to create sophisticated, modern web applications that align with industry standards and best practices. This immersive learning experience will equip participants with the skills and knowledge necessary to excel in Java full-stack development roles.