How singhdhairya17/spring-next-store works
Spring Next Store is a full-stack e-commerce demo: a Next.js storefront and admin UI use a Spring Boot REST API backed by JPA/MySQL. The shopper workflow spans catalog browsing, cart, authentication, and order confirmation; the admin branch covers catalog maintenance and dashboard metrics. The README documents the frontend-to-API connection and major capabilities; sampled backend sources confirm several service and persistence calls, while frontend action wiring and unsampled API internals are represented only where documented.
Main entry points: ProductService.java Product service · CategoryService.java Category service · (dashboard)/page.tsx Admin routes · (user)/page.tsx Shop routes
Components 33
Storefront
- Shop routes
frontend-ecommerce/src/app/(user)/page.tsx - Catalog actions
frontend-ecommerce/src/actions/user/product.ts - Category routes
frontend-ecommerce/src/app/(user)/categories/page.tsx - Cart and checkout
frontend-ecommerce/src/app/(user)/cart/page.tsx - Sign-in and signup
frontend-ecommerce/src/actions/auth.ts - Browser cart
Admin
- Admin routes
frontend-ecommerce/src/app/(admin)/admin/(dashboard)/page.tsx - Product actions
frontend-ecommerce/src/actions/admin/product.ts - Category actions
frontend-ecommerce/src/actions/category.ts - Metrics actions
frontend-ecommerce/src/actions/stats.ts
Spring API
- Auth endpoints
e-commerce/src/main/java/com/dhairyasingh/ecommerce/controller/AuthController.java - Product endpoints
e-commerce/src/main/java/com/dhairyasingh/ecommerce/controller/ProductController.java - Category endpoints
e-commerce/src/main/java/com/dhairyasingh/ecommerce/controller/CategoryController.java - Order endpoints
e-commerce/src/main/java/com/dhairyasingh/ecommerce/controller/OrderController.java - Admin products
e-commerce/src/main/java/com/dhairyasingh/ecommerce/controller/admin/ProductControllerAdmin.java - Admin categories
e-commerce/src/main/java/com/dhairyasingh/ecommerce/controller/admin/CategoryControllerAdmin.java - Admin metrics
e-commerce/src/main/java/com/dhairyasingh/ecommerce/controller/admin/StatsController.java - JWT security
e-commerce/src/main/java/com/dhairyasingh/ecommerce/config/SecurityConfig.java
Commerce Services
- User service
e-commerce/src/main/java/com/dhairyasingh/ecommerce/service/UserService.java - Product service
e-commerce/src/main/java/com/dhairyasingh/ecommerce/service/ProductService.java - Category service
e-commerce/src/main/java/com/dhairyasingh/ecommerce/service/CategoryService.java - Order service
e-commerce/src/main/java/com/dhairyasingh/ecommerce/service/OrderService.java - Stats service
e-commerce/src/main/java/com/dhairyasingh/ecommerce/service/StatsService.java - Upload storage
e-commerce/src/main/java/com/dhairyasingh/ecommerce/service/FileSystem.java - Role service
e-commerce/src/main/java/com/dhairyasingh/ecommerce/service/RoleService.java
Persistence
- Product repository
e-commerce/src/main/java/com/dhairyasingh/ecommerce/repository/ProductRepository.java - Category repository
e-commerce/src/main/java/com/dhairyasingh/ecommerce/repository/CategoryRepository.java - Order repository
e-commerce/src/main/java/com/dhairyasingh/ecommerce/repository/OrderRepository.java - User repository
e-commerce/src/main/java/com/dhairyasingh/ecommerce/repository/UserRepository.java - Role repository
e-commerce/src/main/java/com/dhairyasingh/ecommerce/repository/RoleRepository.java
Other components
- Shopper
- MySQL database
- Upload filesystem
Connections 42
- Shopper → Shop routes: browses
- Shop routes → Catalog actions: loads catalog
- Shop routes → Category routes: opens categories
- Shopper → Cart and checkout: checks out
- Cart and checkout → Browser cart: stores cart
- Shopper → Sign-in and signup: authenticates
- Admin routes → Product actions: manages products
- Admin routes → Category actions: manages categories
- Admin routes → Metrics actions: views metrics
- Catalog actions → Product endpoints: requests products
- Category routes → Category endpoints: requests categories
- Cart and checkout → Order endpoints: confirms order
- Sign-in and signup → Auth endpoints: submits credentials
- Product actions → Admin products: sends changes
- Category actions → Admin categories: sends changes
- Metrics actions → Admin metrics: requests totals
- Auth endpoints → User service: calls
- Auth endpoints → JWT security: issues JWT
- Product endpoints → Product service: calls
- Category endpoints → Category service: calls
- Order endpoints → Order service: saves order
- Order endpoints → Product service: looks up products
- Admin products → Product service: calls
- Admin categories → Category service: calls
- Admin metrics → Stats service: calls
- Product service → Category service: resolves category
- Product service → Upload storage: stores image
- Product service → Product repository: reads and writes
- Category service → Category repository: reads and writes
- Category service → Product repository: updates products
- User service → User repository: reads and writes
- User service → Role service: ensures role
- Role service → Role repository: reads and writes
- Order service → Order repository: reads and writes
- Stats service → Order repository: queries totals
- Stats service → User repository: counts customers
- Product repository → MySQL database: persists
- Category repository → MySQL database: persists
- Order repository → MySQL database: persists
- User repository → MySQL database: persists
- Role repository → MySQL database: persists
- Upload storage → Upload filesystem: writes files