How eazybytes/fullstack-react-springboot works
EazyStore is a React storefront backed by a Spring Boot service, with catalog browsing, account access, cart and checkout, customer profile/order views, contact messaging, and administration. The shown router mounts the application, assigns loaders/actions to several routes, and protects checkout, profile, order, and admin routes. Backend implementation paths are visible in the tree, but their request flow was not excerpted; those cross-layer connections are therefore omitted rather than asserted.
Main entry points: main.jsx App Router · apiClient.js API Client · AuthController.java Auth Controller · ProductListings.jsx Catalog Views
Components 20
Storefront
- App Router
section_23/eazystore-ui/src/main.jsx - Catalog Views
section_23/eazystore-ui/src/components/ProductListings.jsx - Product Detail
section_23/eazystore-ui/src/components/ProductDetail.jsx - Cart and Checkout
section_23/eazystore-ui/src/components/CheckoutForm.jsx - Account Views
section_23/eazystore-ui/src/components/Profile.jsx - Admin Views
section_23/eazystore-ui/src/components/admin/AdminOrders.jsx - Contact Form
section_23/eazystore-ui/src/components/Contact.jsx
Client State
- Cart State
section_23/eazystore-ui/src/store/cart-context.jsx - Auth State
section_23/eazystore-ui/src/store/auth-context.jsx - API Client
section_23/eazystore-ui/src/api/apiClient.js
Backend
- Product API
section_14/eazystore/src/main/java/com/eazybytes/eazystore/controller/ProductController.java - Product Service
section_14/eazystore/src/main/java/com/eazybytes/eazystore/service/impl/ProductServiceImpl.java - Product Store
section_14/eazystore/src/main/java/com/eazybytes/eazystore/repository/ProductRepository.java - Contact API
section_14/eazystore/src/main/java/com/eazybytes/eazystore/controller/ContactController.java - Contact Store
section_14/eazystore/src/main/java/com/eazybytes/eazystore/repository/ContactRepository.java
Identity
- Auth Controller
section_23/eazystore/src/main/java/com/eazybytes/eazystore/controller/AuthController.java - JWT Utility
section_13/eazystore/src/main/java/com/eazybytes/eazystore/util/JwtUtil.java - Customer Data
section_14/eazystore/src/main/java/com/eazybytes/eazystore/entity/Customer.java - Role Data
section_15/eazystore/src/main/java/com/eazybytes/eazystore/entity/Role.java
Other components
- Shopper
Connections 25
- Shopper → App Router: uses
- App Router → Catalog Views: routes to
section_23/eazystore-ui/src/main.jsx - App Router → Product Detail: routes to
section_23/eazystore-ui/src/main.jsx - App Router → Cart and Checkout: routes to
section_23/eazystore-ui/src/main.jsx - App Router → Account Views: routes to
section_23/eazystore-ui/src/main.jsx - App Router → Admin Views: routes to
section_23/eazystore-ui/src/main.jsx - App Router → Contact Form: routes to
section_23/eazystore-ui/src/main.jsx - App Router → Auth State: provides
section_23/eazystore-ui/src/main.jsx - App Router → Cart State: provides
section_23/eazystore-ui/src/main.jsx - App Router → API Client: uses
- Catalog Views → API Client: requests products
- Product Detail → API Client: requests product
- Cart and Checkout → Cart State: uses
- Account Views → Auth State: uses
- Admin Views → API Client: requests admin data
- Contact Form → API Client: submits message
- API Client → Product API: HTTP requests
- API Client → Contact API: HTTP requests
- Product API → Product Service: delegates
- Product Service → Product Store: reads products
- Contact API → Contact Store: stores messages
- API Client → Auth Controller: HTTP requests
- Auth Controller → JWT Utility: creates tokens
section_23/eazystore/src/main/java/com/eazybytes/eazystore/controller/AuthController.java - Auth Controller → Customer Data: uses customer data
section_23/eazystore/src/main/java/com/eazybytes/eazystore/controller/AuthController.java - Auth Controller → Role Data: uses roles
section_23/eazystore/src/main/java/com/eazybytes/eazystore/controller/AuthController.java