
Welcome to Spring Boot 3.0 and Spring 6.0 Frontend and Backend Development using the Software lifecycle, SDLC
The Requirements have been attached to this lecture for download and reference.
Install and run MongoDB in a docker container using docker run, detach mode, and port mapping (host port to container 27017), naming the container, and pulling mongo:latest from docker hub.
adopt an agile iterative approach with two-week releases for QA, using daily scrum meetings and a Scrum master to manage work and roadblocks, with Jenkins verifying unit tests.
Examine the 10,000-foot design of a vendor management system and show how a Spring Boot 3 frontend producer writes JSON to RabbitMQ, while a backend consumes it to MongoDB.
Build a spring boot rabbitmq producer for a direct exchange, with queues and bindings, and expose a rest endpoint to send producer messages as json.
Create a direct exchange consumer in Spring Boot, configure RabbitMQ, define queues A and B with bindings, and implement a RabbitListener to process messages.
Build a spring boot 3 producer for a fanout exchange in RabbitMQ. Configure two queues, bindings, and a Jackson message converter to broadcast messages via a REST endpoint.
Learn how topic exchanges route messages to multiple queues using binding keys and pattern-based routing, with a producer sending messages to an exchange and broadcasting to consumers.
Build a Spring Boot topic consumer to receive messages from topic queues using RabbitMQ, with a controller, consumer message model, configuration, and bindings, tested on port 8081.
Build a Spring Boot 3 producer using RabbitMQ's default exchange with two queues, inventory and marketing, bound by queue-name routing keys, via a RabbitTemplate and Jackson JSON converter.
Explore Spring Data get by id using path variable and optional in a Spring Boot 3 API; implement find by id, handle not found, and return json via response entity.
Add an age field and implement get by age between using Spring Data repositories and a query annotation, exposing a /data/age endpoint with minAge and maxAge.
This lecture demonstrates implementing pagination for a find all operation by converting the list to a page, passing a pageable with page and size, and using page requests.
Explore test driven development (TDD) and unit testing with JUnit, learning how requirements drive tests, not code, and how to write failing tests first and then code to pass.
Demonstrate test-driven development to verify the build person utility by creating original and updated persons with a builder, updating by ID in MongoDB, and asserting updated fields while preserving others.
Learn to unit test a mongo repository by mocking with Mockito to avoid real database calls, using in-memory or mock bean strategies for methods like find by name starts with.
Learn to write unit tests for a controller layer using web mvc test, mock mvc, and mockito to verify post requests return a 200 status.
Develop Spring Boot unit tests for a controller with MockMvc, covering post, get by id, get by name, get all, update by id, and delete.
Develop integration tests for a delete by id operation using Postman, verify a 200 status and acknowledged deleted account, and cover get by name starts with and by age between.
Explore the spring front-end model using time leaf templates, with a controller and service calling an api producer via rabbit template, and rest template fetching vendors for display.
Discover Spring Boot Actuator for health and other endpoints to monitor and manage apps, expose health, beans, env, and logs, and enable DevOps visibility across environments.
Post vendor data to a direct exchange using RabbitMQ, configure queues, exchange, bindings, and a message converter, then persist the payload to MongoDB as backend consumes.
Regex for Zip code, Phone Number, and Email
zip code: regexp="^[0-9]{5}(?:-[0-9]{4})?$"
phone number: regexp="^((\\(\\d{3}\\))|\\d{3})[- .]?\\d{3}[- .]?\\d{4}$"
email: regexp="^[\\w!#$%&’*+/=?`{|}~^-]+(?:\\.[\\w!#$%&’*+/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$"
Finish frontend validation by building a field errors map from the binding result, using field names as keys, and render each default message under its input via the model.
Implement a delete by id endpoint in the Spring Boot backend using a path variable and response entity, with exception handling and json status.
Implement exception handling for the get vendors endpoint by adding a try-catch, logging errors, and returning HTTP 500 with a formatted message; test with postman, and prepare front-end updates.
Learn how to translate wireframes into front end HTML, CSS and JavaScript, implement edit and delete vendor actions with IDs, and connect to the backend via swagger documented endpoints.
Implement the frontend edit vendor flow, call the vendor API, retrieve a vendor by id, map JSON to a vendor object, and render the edit page.
Initialize a git repo and push vendor API to GitHub, add a readme, and use Postman to run integration tests on the /vendors endpoint, verifying 200 status and payload fields.
Learn to unit test a Spring Boot frontend controller with Web MVC tests using Mockito, covering home, about, add, edit, delete and post flows with model and binding results.
Initialize a git repository, track and commit frontend source code, connect to a remote on GitHub, and push changes as part of SDLC phase 5; then explore selenium frontend tests.
Learn automated frontend testing with Selenium WebDriver for a locally hosted app. Identify web elements by id, name, css, or xpath, and simulate clicks, form fills, and errors.
Demonstrate frontend selenium testing by fixing a not-clickable edit vendor button on the edit vendor page via scrolling to bottom with a JavaScript executer and validating zip code errors.
Demonstrates frontend selenium testing to edit and delete vendors across pages, using a page object model, zip-code updates, and validation of navigation to the vendor portal.
Deploy the vendor API to Docker by packaging with Maven, creating a Docker file, configuring host and RabbitMQ properties, and exposing port 8081.
This course has 113 videos covering over 21+ hours of content.
You will learn the complete software development life cycle creating a Full Stack Spring Boot 3.0 Application using tools like:
IntelliJ Idea
Docker
Spring Framework 6.0
RabbitMQ in Docker
JUnit (Unit Test and Mocks)
Spring Boot 3.0
MongoDB in Docker
Selenium
Postman (Integration Test)
What will we create:
Understanding of the Software Development Lifecycle. What happens behind the scenes in a Fortune 500 company in the Information Technology department. Gain understanding of the players involved who make up a software team and their roles with respect to the software development lifecycle.
You will create a consumer backend service to consume messages on the queue our application is listening for. We will write that message to our MongoDB database.
You will create the frontend using Spring and ThymeLeaf, HTML, CSS and JavaScript so we can produce messages and put them on the queue.
We will Unit Test our application and create a continuous integration / continuous delivery workspace to verify our code is in a stable build.
We will maintain our code using GitHub.
By the end of the course you will have complete understanding of the software development lifecycle and have complete confidence using the tools in this course to create a full tack application using service oriented architecture in any workplace.