Welcome to the companion repository for the book “Full Stack Engineering with Spring Boot & React”.
This repo mirrors the journey of the book: from building a clean backend API, to connecting a frontend, to securing, scaling, and deploying the application.
Each Part of the book has its own folder, and each Chapter is represented as a Git branch so you can follow along step by step.
- Students and self-learners who want to understand end-to-end web development.
- Backend developers curious about frontend, or frontend devs who want to learn backend skills.
- Engineers who want to go beyond “just making it work” and understand why certain design choices are made.
We use Spring Boot 3.x (Java) for the backend and React (JavaScript) for the frontend, while also comparing these choices with alternatives in other stacks (Node.js, .NET, Django, Vue, etc.).
.
├── part1-RESTful_API-SpringBoot # Part I: Building a RESTful Backend
├── part2-Responsive_Frontend-React # Part II: Building a Responsive Frontend
├── part3-Advanced-backend-features
├── part4-Advanced-frontend-features
├── part5-Devops-infra-deployment
- Parts = Folders (major phases of the project)
- Chapters = Branches (each builds on the previous one)
Example:
git checkout part1-RESTful_API-SpringBoot
to see the backend project at the beginning of Part I.
-
Part I - Building a RESTful Backend with Spring Boot
- Introduction to backend architecture
- Defining the Domain Model with JPA
- Creating API Models (DTOs)
- Mapping Between Layers with MapStruct
- Implementing the Repository Layer
- Building the Service Layer for Business Logic
- Exposing Endpoints in the Controller Layer
- Handling Requests and Responses
- Global Exception Handling
- Configuring CORS for Cross-Origin Requests
- Persistence and Database Migrations
- Testing Strategies
- Common Pitfalls and How to Avoid Them
-
Part II - Building a Responsive Frontend with React + Vite
- Introduction to frontend architecture
- Project setup with Vite
- API Integration Layer
- Custom Hooks
- Notification System
- Header Component
- Toolbar for Controls
- Data Display Component
- Modal Forms for Data Entry
- Orchestrating the App with Context API
- Styling with CSS Modules
- Testing and Debugging Strategies
- Common Pitfalls and How to Avoid Them
-
Part III - Advanced Backend Features (Spring Boot)
- Authentication & Authorization with JWT
- Robust Validation & Global Error Handling
- Concurrency & Optimistic Locking
- Advanced Searching with Specifications
- Partial Updates (PATCH with JSON Merge Patch)
- Caching with Redis
- Auditing & Soft Deletes
- File Uploads (Images)
- Observability with Actuator, Metrics, and Tracing
- Rate Limiting & Throttling
- API Versioning & OpenAPI Documentation
- Database Migrations with Flyway & Testing with Testcontainers
- Asynchronous Work & Domain Events
- Hardening & Best Practices Checklist
-
Part IV - Advanced Frontend Features (React)
- Introduction to Advanced Frontend with React
- Redux Toolkit & Axios Integration
- Navigation with React Router
- Enhancing Navigation with UI & UX Features
- Forms & Validation
- Search, Filtering & Sorting
- Pagination in React with Redux & Backend Integration
- File Uploads & Image Thumbnails
- Robust Error Handling & Conflict Resolution
- Role-Based UI & Protected Routes
- Auth QA Checklist & Hardening Pass
-
Part V - DevOps, Infrastructure, and Deployment
- From Local Development to Production Mindset
- Dockerizing the Full Stack App
- Docker Compose for Full Stack
- CI/CD Pipelines
- Deployment Options
- Logging & Monitoring
- Security Hardening
- Scaling & Future-Proofing
- DevOps & Infrastructure Comparison Across Stacks
- Production-Readiness Checklist
-
Part VI - Appendices
- Maven → Gradle Migration
- GitHub Workflow
- IDE Setup & Productivity Shortcuts
- Command-Line Quick Reference
- Spring Boot Annotations Cheat Sheet
- REST API Testing Reference
- Error Troubleshooting Guide
- Database Schema & Sample Data
- Deployment Checklist
- Security Hardening Tips
- Performance Tuning Appendix
- Where to Get Help
- Glossary of Terms
- Next Steps After the Book
Clone this repository:
git clone https://github.com/brianronock/fullstackdev_spring-and-react.git
cd fullstackdev_spring-and-react.
Check out the branch you want to explore:
git checkout part1-chapter1-intro
Each part also has its own README.md
with more detailed instructions.
- As a learner: Follow the book, switch branches as you progress.
- As a teacher: Use the repo to demo each chapter live.
- As a reference: Jump directly to the part or feature you’re interested in.
The Docusaurus scaffold for this project is public, but the actual book manuscript—including raw chapters, tools, images, and other resources—is stored in a private repository.
Learners who clone this repo will see the scaffold and structure but will not have access to the full book text. To access the complete content, please use the live GitHub Pages site:
https://brianronock.github.io/fullstackdev_spring-and-react/
This repo is educational material accompanying the book.
Feel free to fork and experiment. For contributions or errata, open an issue or PR.
✨ By the end, you’ll not only have a working full stack application, but also a deep understanding of why it was built this way — knowledge that transfers to any modern tech stack.