Backend Development with Spring Boot
Introduction to Spring Boot and Project
Setup
Overview of Spring ecosystem
Creating a Spring Boot project using Spring Initializr
Application structure and configuration
Running and testing a basic application
Building RESTful APIs
Understanding REST principles
Creating controllers and endpoints
Path variables, request parameters, and request bodies
Returning JSON responses
Data Persistence with Spring Data JPA
Connecting to a relational database
Creating entities and repositories
Implementing CRUD operations
Database initialization with schema/data scripts
Exception Handling and Validation
Global exception handling using @ControllerAdvice
Custom exceptions and error responses
Bean validation using JSR-380 annotations
Frontend Development with React
Introduction to React and JSX
React concepts and component-based architecture
Creating and rendering components
Props, state, and event handling
JSX syntax and rules
Component Lifecycle and Hooks
Class vs functional components
useState, useEffect, and other common hooks
Managing side effects and dependencies
React Router and Navigation
Installing and configuring React Router
Defining routes and navigation links
Route parameters and dynamic pages
Forms and User Interaction
Controlled components and form state
Handling input and validation
Submitting data to backend
Full-Stack Integration with Redux and
API Communication
Introduction to Redux
State management challenges in React
Core concepts: store, actions, reducers
Setting up Redux in a React project
Creating and dispatching actions
Asynchronous Actions with Redux Thunk
Middleware overview
Fetching data from Spring Boot APIs
Handling loading and error states
Connecting Frontend and Backend
Axios for HTTP requests
Fetching and posting data to backend
Using Redux state to manage UI logic
Authentication and Error Handling
Basic authentication flow
Handling protected routes and redirects
Displaying backend validation or error messages
Hands-on Exercises
Summary and Conclusion