
Please note that this app works fine on: Firefox, Safari and Chrome. If you are on Chrome and it loads blank, then please install react dev tools and redux dev tools on Chrome. You need Chrome and these dev tools to follow the course.
https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en
https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd?hl=en
Please also note that this is a known issue in the React/Redux community: https://github.com/reduxjs/redux/issues/2359
I'll be investigating how to configure the store for Internet Explorer and Edge, but for now please use Chrome (with extensions) or Firefox (MacOS and Windows) or Safari (MacOS)
Model a project as a JPA entity with ID, name, identifier, description, and start and end dates, plus created at and updated at; enable CRUD via a repository.
Explore how server validation moves from a 500 to a descriptive 400 by using @Valid and BindingResult on a project object, returning actionable json to the client.
Explore building server-side validation errors as a field-to-message json map using binding result and field errors, then refactor for reuse and ensure persistence.
Learn to read a project by its unique identifier using JPA. Expose a GET endpoint that uses the identifier from the URL and handle not-found cases via service logic.
Create a project folder with a ProjectItem component and render it inside the dashboard in App.js. Build a layout header that uses application state to toggle login and logout options.
Fetch and display projects in a React-Redux dashboard by calling get projects API, pass project data as props from the dashboard to project items, and render the list from state.
Hi team; forgot to create branch25, my apologies! please use the commit ID b13741f to check the code committed for this lecture
Diagnose a strange update behavior where error messages linger after submitting valid data. Wipe errors from the Redux state on successful submissions so the user interface clears.
Refactor delete operation and proxy setup in package.json to clean up project routes, enable a localhost 8080 proxy, and add a confirmation prompt to prevent accidental deletion.
Explore designing a project task service to persist tasks and preserve the one-to-many link between backlog and project tasks, with a robust project sequence, and defaults for priority and status.
Fixes a null pointer by defaulting project task priority to three when no UI value is sent, and resolves sequence updates and a project identifier typo for reliable persistence.
Enforce validation when locating a task by project sequence by confirming the backlog exists, the task exists, and the task belongs to the correct project, with explicit not-found handling.
Implement onChange and submit for a controlled add project task form, binding inputs and validating happy path to send a new task to the server and update the MySQL database.
Learn to surface project tasks from the app state into the backlog interface by wiring backlog props, mapping tasks to a project task component, and preparing for dynamic display.
Learn to update a project task by turning the update form into a controlled React component, loading data from the server, wiring onChange, and building a Redux submission payload.
Implement a user registration flow by wiring the user details interface, encoding passwords with bcrypt, persisting users via the repository, and exposing a public register endpoint for Json web token.
This lecture shows how to implement a Spring user validator to enforce password length and confirm password matching during registration, wire it in the controller, and handle duplicate exceptions.
Learn to secure login by storing a JSON web token in local storage, set the token in headers, decode expiration, and route to the dashboard while the token stays valid.
Learn to handle login form errors, finalize logout wiring, and manage expired json web tokens by clearing local storage, updating redux state, and redirecting to the main page.
Coming Soon
Feb 29th, 2024: Course Update IN PROGRESS - PLEASE STAY TUNED - This course will be re-released at no cost to current students with the newest versions of: Spring Boot, React & Redux! Join today so that you don't miss the update
If you know the basics of java and the spring framework, the next thing to do is to keep on practicing! Building apps with real life features is a great next step in your journey to becoming a developer. The main benefits of this is that it sharpens your skills and helps you build your portfolio for prospective employers. In this course, we will build a prototype of a personal project management tool using Spring boot 2.0 in the backend, ReactJS and Redux on the front end.
These are some of the cool things we will work on:
We will build our REST APIs with Spring boot for CRUD operations
We will create our front end using ReactJS and Boostrap
And will use Redux and Thunk to manage the state of our application in the front-end
We will secure our application using JWT tokens
Last but not least we will deploy our application to Heroku’s free tier. This is a great opportunity to get practical experience with two amazing technologies that are highly desirable by prospective employers.