How obvxindustry/obvx-backend works
OBVX is a Spring Boot e-commerce REST API for authentication, user and admin management, product and category catalogs, product images, and customer carts. The main workflow is a client request entering a controller, passing through a domain service, and reading or changing PostgreSQL-backed data; product image operations additionally use Supabase Storage. The README documents these capabilities, while sampled source and the SOURCE INDEX support the shown service, repository, JWT, and storage relationships. Some configuration and unsampled controller details are represented only where the README provides evidence.
Main entry points: ProductsService.java Product Management · AuthService.java Authentication · CategoryService.java Category Management · CartService.java Cart Management
Components 25
REST API
- Auth API
src/main/java/obvx/com/backend/controller/AuthController.java - Admin API
src/main/java/obvx/com/backend/controller/AdminController.java - User API
src/main/java/obvx/com/backend/controller/UserController.java - Category API
src/main/java/obvx/com/backend/controller/CategoryController.java - Products API
src/main/java/obvx/com/backend/controller/ProductsController.java - Cart API
src/main/java/obvx/com/backend/controller/CartController.java - API DTOs
src/main/java/obvx/com/backend/dto
Commerce Services
- Authentication
src/main/java/obvx/com/backend/service/AuthService.java - Admin Management
src/main/java/obvx/com/backend/service/AdminService.java - User Profiles
src/main/java/obvx/com/backend/service/UserService.java - Category Management
src/main/java/obvx/com/backend/service/CategoryService.java - Product Management
src/main/java/obvx/com/backend/service/ProductsService.java - Cart Management
src/main/java/obvx/com/backend/service/CartService.java - Image Storage
src/main/java/obvx/com/backend/service/SupabaseStorageService.java
Persistence Model
- Domain Entities
src/main/java/obvx/com/backend/entity - User Repository
src/main/java/obvx/com/backend/repository/UserRepository.java - Product Repository
src/main/java/obvx/com/backend/repository/ProductRepository.java - Category Repository
src/main/java/obvx/com/backend/repository/CategoryRepository.java - Cart Repositories
src/main/java/obvx/com/backend/repository/CartRepository.java
Identity Security
- JWT Filter
src/main/java/obvx/com/backend/config/JwtAuthenticationFilter.java - JWT Service
src/main/java/obvx/com/backend/service/JwtService.java - Security Rules
src/main/java/obvx/com/backend/config/SecurityConfig.java
External Integrations
- Supabase PostgreSQL
- Supabase Storage
Other components
- API Client
Connections 32
- API Client → Auth API: registers / logs in
- API Client → Admin API: admin requests
- API Client → User API: profile requests
- API Client → Category API: catalog requests
- API Client → Products API: product requests
- API Client → Cart API: cart requests
- Auth API → Authentication: delegates
src/main/java/obvx/com/backend/controller/AuthController.java - Admin API → Admin Management: delegates
src/main/java/obvx/com/backend/controller/AdminController.java - User API → User Profiles: delegates
src/main/java/obvx/com/backend/controller/UserController.java - Category API → Category Management: delegates
src/main/java/obvx/com/backend/controller/CategoryController.java - Products API → Product Management: delegates
src/main/java/obvx/com/backend/controller/ProductsController.java - Cart API → Cart Management: delegates
src/main/java/obvx/com/backend/controller/CartController.java - Authentication → User Repository: reads / saves
src/main/java/obvx/com/backend/service/AuthService.java - Authentication → JWT Service: generates token
src/main/java/obvx/com/backend/service/AuthService.java - Admin Management → User Repository: reads / saves
src/main/java/obvx/com/backend/service/AdminService.java - User Profiles → User Repository: reads / saves
src/main/java/obvx/com/backend/service/UserService.java - Category Management → Category Repository: reads / saves
src/main/java/obvx/com/backend/service/CategoryService.java - Category Management → Product Repository: counts products
src/main/java/obvx/com/backend/service/CategoryService.java - Product Management → Category Repository: loads category
src/main/java/obvx/com/backend/service/ProductsService.java - Product Management → Product Repository: reads / saves
src/main/java/obvx/com/backend/service/ProductsService.java - Product Management → Image Storage: uploads / deletes
src/main/java/obvx/com/backend/service/ProductsService.java - Cart Management → Cart Repositories: reads / saves
src/main/java/obvx/com/backend/service/CartService.java - Cart Management → Product Repository: loads product
src/main/java/obvx/com/backend/service/CartService.java - JWT Filter → JWT Service: validates token
src/main/java/obvx/com/backend/config/JwtAuthenticationFilter.java - JWT Filter → User Repository: loads user
src/main/java/obvx/com/backend/config/JwtAuthenticationFilter.java - Security Rules → JWT Filter: installs filter
- Authentication → Supabase PostgreSQL: persists accounts
- Admin Management → Supabase PostgreSQL: persists roles
- Category Management → Supabase PostgreSQL: persists categories
- Product Management → Supabase PostgreSQL: persists products
- Cart Management → Supabase PostgreSQL: persists carts
- Image Storage → Supabase Storage: uploads / deletes
src/main/java/obvx/com/backend/service/SupabaseStorageService.java