
Learn to set up Redux with React, write unit tests for Redux, reducers, and components using TDD, and apply production practices across Spring Boot, H2, Swagger, Flyway, and Travis deployments.
Create a book rest controller with a get endpoint returning a list of book DTOs built via Lombok builder, exposed at api/v1/books in Spring Boot.
Initialize git in your project, track changes with git status and git add, commit with git commit, and push to GitHub by creating a repository and authenticating.
Automate your build and test workflow with Travis CI and GitHub integration, running gradle assemble and check to produce a deployable artifact for staging and production.
Learn to deploy a Heroku app with Travis CI, including creating a Heroku app, generating an auth token, configuring Travis environment variables, and verifying deployment.
Learn how a React app starts from package.json configurations, renders components with react-dom, and wires index.js to mount the app into the root div, preparing for CI/CD deployment.
Set up continuous integration and deployment for a React app using Travis CI and deploy to Heroku, configuring travis.yml and npm scripts for build and test.
Learn test driven development by writing test cases first, demonstrating the red-green-refactor cycle, then implementing to pass tests and refactoring to improve code quality.
Set up a Java project in IntelliJ with Gradle and JUnit, then drive development by writing calculator tests for add and divide, and handle division by zero.
solve a problem statement with test-driven development to verify if any pair in a list sums to a given magic number, using failing tests, early refactoring, and a hashmap optimization.
Implement a hash map to count list items and identify two numbers that sum to a magic number using tdd, then refactor with extracted methods for readability.
Implement a three-tier Spring Boot architecture by routing requests through controller to the service and repository, define a book data model as a JPA entity, and enable migrations with Flyway.
Learn to manage database migrations with Flyway in a Spring Boot project, including script naming, creating a book table, configuring H2, and validating via migration history.
Develop unit tests for the book repository using data jpa with an in-memory h2 database and flyway, loading data via sql scripts to verify find all and by title.
Implement a book service that interacts with a book repository, use test driven development, and employ mocks and a proxy repository to isolate unit tests, converting book models to details.
Implement a rest api controller using tdd, write tests first, and wire the book service to return book dtos for the get books endpoint.
Configure a Spring Boot app to switch between local H2 and production Postgres using environment-specific property files and profiles, with prod settings activated via spring.profiles.active and environment variables on Heroku.
Provision a Postgres database on Heroku and view its host, port, username, and password, then create application-prod.properties and set url, username, and password via environment variables.
Configure prod profile and environment variables for a Spring Boot app, connect to Heroku-hosted Postgres, resolve dependencies, apply migrations, and seed initial books.
Deploy a Spring Boot app to Heroku with a production Postgres database, using Gradle checks, Travis CI, and Git workflows to push changes. Verify the /api/v1/books endpoint shows two records.
Set up a React environment config to route between localhost and Heroku prod backend, using a hostname-based endpoint map and exporting environment urls for local and prod Spring Boot backends.
This lecture demonstrates Material UI integration in a fullstack project, building a layout with header and book container, including a filter and list, and setting up Material Design.
Create a React layout component in a layout folder using material UI boxes to render a header and children, while validating the children prop with proptypes.
Build a book container in React to manage the book list and filter components using Material UI, create styles with makeStyles, and prepare for Redux-based API data fetch.
Install redux, react-redux, and redux-thunk; create a redux store with middleware and dev tools, import Provider from react-redux, and render the app with the store in React Redux integration.
Explore how a Redux book reducer updates the store state with action payloads, manages a books array, and connects components via React Redux and use dispatch.
Create a book selector to read the redux store’s books from the book reducer and access them in the book container with useSelector, dispatching get book action once via useEffect.
Learn to unit test Redux actions in a React app by mocking Axios and a fake Redux store, verifying the get book action dispatches a books list payload.
Test a Redux reducer in React as a pure function that takes state and action and returns a new state, by supplying initial state and action and asserting the result.
Learn to unit test Redux-connected components by building test utils that render components inside a Redux provider with an initial store state, demonstrated on the book container.
Create a React book list component that receives books as props, validates id, title, description, and release year, and renders the list with book id as the key.
Explore unit testing of React components by building tests for book list and book list item, using React Testing Library, mocking book list item, and validating props and render results.
Show a loader during Http requests to boost user experience and track request status in redux with a promise object (is pending, is fulfilled, is error occurred) booklist actions.
Consume a book fetch promise in a React container, display a loader while pending, and show errors when requests fail, aligning with React TDD.
Implement a case-insensitive endpoint to search books by title in a Spring Boot app, leveraging repository methods, service logic, and controller routing.
Write an integration test for the book search endpoint in Spring Boot, using RestTemplate to fetch by title, verify case-insensitive results return a single record.
Add more book data with h2 datasets and flyway migrations in spring boot, fix failing tests, and align expected book counts for future frontend work.
Refactor front-end code to add named book actions, verify changes with tests, and prepare for a book filter and future pagination.
Implement a book filter view with a title input and search button, fetch books by title, and store results in Redux, while unit testing actions and reducers.
Implement a book reducer and unit tests in a test-driven flow, updating books by title through actions and payloads, with changes reflected in the book list.
Implement a book filter with React Testing Library and Redux, pass a fake title, click search, and verify the get books by title action fires with the input value.
We fixed a failing test by mocking get book by title to return an object with type and payload. Refactoring now proceeds with confidence, underscoring the power of unit tests.
Integrate spring security by adding the spring boot starter security and JWT dependencies, then run the app to see the default login page and cookie-based security, with JWT security planned.
Configure spring security using web security configurer adapter to implement JWT-based authentication, disable csrf, and permit the login endpoint with stateless session management.
Authenticate via the authentication manager, retrieve user details, and generate a jwt token with claims using a secret key, expiring in seven days, returned in a login response.
Run your app and test the login endpoint with postman to obtain a JWT token, then append the bearer token and verify the token on jwt.io using the secret key.
Implement a once-per-request jwt filter to intercept requests, extract the bearer token from the authorization header, and validate it with the secret key.
fixes integration test for spring security by generating a jwt token with jwt utils, setting bearer token in rest template headers, and updating tests with a dummy user.
If you know the basics of java and the spring framework and React, the next thing to do is learn how to setup enterprise level application and how to do test driven development and how to write clean code and What is the ideal workflow for developing full stack application.
Why am I focusing on Test driven development ?
Because TDD is a way to develop highly usable software. Following the TDD process, a developer must focus on the test cases before actually coding anything. ... As a result, the developer is more interested in the interface than in the implementation—and that leads to more usable software
In this course we will learn various things as mentioned below:
How to setup actual enterprise level workflow with CI/CD using Travis CI and deploy both application to Heroku and locally we will connect spring boot application with H2 database and on prod we will connect with Postrgresql.
How to deploy both frontend and backend on server.
How to maintain different environment like DEV,PROD.
How to maintain database migration script with flyway
How to document rest api with swagger.
How to write Unit and Integration testcases for spring boot application.
How to write Unit testcases for Redux side.
How to write Unite testcases for React.
How to secure application with JWT
Learn How to setup Jwt based authentication with spring boot and react
The most important thing that we will learn during this course would be test driven development with Spring boot and React & redux and while developing application we will learn best practice for react side and backend side.
Last and not least we will write production level code not less than that.