How sagarkakkalasworld/devops_maaya_workshop3 works
Maaya Store is a shopping application with a React storefront and a Spring backend. Shoppers browse products, view details, manage a cart, register or log in, and access an admin view; the backend exposes product, order, authentication, and admin endpoints. The graph includes the main UI routes, backend domain stages, persistence, and JWT security. Some frontend-to-backend calls and page behavior were not sampled, so those links are marked unverified rather than asserted as confirmed calls.
Main entry points: App.jsx App routes · AuthController.java Auth endpoints · UserRepository.java User repository · CartContext.jsx Cart state
Components 27
Storefront UI
- App routes
frontend/src/App.jsx - Navigation
frontend/src/components/Navbar.jsx - Product card
frontend/src/components/ProductCard.jsx - Product details
frontend/src/pages/ProductDetails.jsx - Cart page
frontend/src/pages/Cart.jsx - Cart state
frontend/src/context/CartContext.jsx - Registration page
frontend/src/pages/Register.jsx - Login page
frontend/src/pages/Login.jsx - Admin page
frontend/src/pages/Admin.jsx
Identity and Security
- Auth endpoints
backend/src/main/java/com/maayastore/backend/controller/AuthController.java - User service
backend/src/main/java/com/maayastore/backend/service/UserService.java - JWT service
backend/src/main/java/com/maayastore/backend/service/JwtService.java - JWT filter
backend/src/main/java/com/maayastore/backend/security/JwtAuthenticationFilter.java - Security config
backend/src/main/java/com/maayastore/backend/config/SecurityConfig.java
Catalog and Orders
- Product endpoints
backend/src/main/java/com/maayastore/backend/controller/ProductController.java - Product service
backend/src/main/java/com/maayastore/backend/service/ProductService.java - Order endpoints
backend/src/main/java/com/maayastore/backend/controller/OrderController.java - Admin endpoints
backend/src/main/java/com/maayastore/backend/controller/AdminController.java
Persistence
- User records
backend/src/main/java/com/maayastore/backend/entity/User.java - Product records
backend/src/main/java/com/maayastore/backend/entity/Product.java - Order records
backend/src/main/java/com/maayastore/backend/entity/Order.java - User repository
backend/src/main/java/com/maayastore/backend/repository/UserRepository.java - Product repository
backend/src/main/java/com/maayastore/backend/repository/ProductRepository.java - Order repository
backend/src/main/java/com/maayastore/backend/repository/OrderRepository.java - Relational database
backend/src/main/resources/application.properties
Other components
- Shopper
- Store API
Connections 38
- Shopper → App routes: uses
frontend/src/App.jsx - App routes → Product details: routes to
frontend/src/App.jsx - App routes → Cart page: routes to
frontend/src/App.jsx - App routes → Registration page: routes to
frontend/src/App.jsx - App routes → Login page: routes to
frontend/src/App.jsx - App routes → Admin page: routes to
frontend/src/App.jsx - App routes → Navigation: renders
frontend/src/App.jsx - Navigation → Cart state: reads cart
frontend/src/components/Navbar.jsx - App routes → Product card: renders
frontend/src/App.jsx - Product card → Cart state: uses
frontend/src/components/ProductCard.jsx - Product details → Cart state: uses
frontend/src/pages/ProductDetails.jsx - Cart page → Cart state: uses
frontend/src/pages/Cart.jsx - App routes → Store API: fetches products
frontend/src/App.jsx - Product details → Store API: requests details
- Registration page → Store API: registers
- Login page → Store API: authenticates
- Admin page → Store API: requests admin data
- Store API → Product endpoints: routes product requests
- Store API → Auth endpoints: routes auth requests
- Store API → Order endpoints: routes order requests
- Store API → Admin endpoints: routes admin requests
- Auth endpoints → User service: registers through
backend/src/main/java/com/maayastore/backend/controller/AuthController.java - Auth endpoints → User repository: looks up user
backend/src/main/java/com/maayastore/backend/controller/AuthController.java - Auth endpoints → JWT service: creates token
backend/src/main/java/com/maayastore/backend/controller/AuthController.java - User service → User repository: saves and checks
backend/src/main/java/com/maayastore/backend/service/UserService.java - JWT filter → JWT service: validates token
backend/src/main/java/com/maayastore/backend/security/JwtAuthenticationFilter.java - Security config → JWT filter: configures filter
backend/src/main/java/com/maayastore/backend/config/SecurityConfig.java - Product endpoints → Product service: delegates
backend/src/main/java/com/maayastore/backend/controller/ProductController.java - Product service → Product repository: queries and saves
backend/src/main/java/com/maayastore/backend/service/ProductService.java - Order endpoints → Order repository: accesses orders
backend/src/main/java/com/maayastore/backend/controller/OrderController.java - Admin endpoints → User repository: reads users
backend/src/main/java/com/maayastore/backend/controller/AdminController.java - Admin endpoints → Product repository: reads products
backend/src/main/java/com/maayastore/backend/controller/AdminController.java - User repository → User records: persists
backend/src/main/java/com/maayastore/backend/repository/UserRepository.java - Product repository → Product records: persists
backend/src/main/java/com/maayastore/backend/repository/ProductRepository.java - Order repository → Order records: persists
backend/src/main/java/com/maayastore/backend/repository/OrderRepository.java - User records → Relational database: stored in
- Product records → Relational database: stored in
- Order records → Relational database: stored in