How bharathwajan/genericecom works
This repository is an e-commerce backend with a small React Native onboarding screen. The principal workflows are product browsing and management, account registration/login, and merchant product-image URL generation. Product access uses a service and repository; authentication issues JWTs; image endpoints generate S3 presigned URLs. The backend also has a scheduled product recommendation task and a gRPC notification client. The README is empty and sampled source is incomplete, so links for unsampled controller, repository, and configuration behavior are limited to what names, calls, and deployment manifests support.
Main entry points: UserRepo.java User repository · SiginAndLoginService.java Login service · ProductsRepo.java Product repository · HomepageController.java Product endpoints
Components 21
API endpoints
- Spring Boot app
ecom/src/main/java/com/generic/ecom/EcomApplication.java - Product endpoints
ecom/src/main/java/com/generic/ecom/controller/HomepageController.java - Image endpoints
ecom/src/main/java/com/generic/ecom/controller/MerchantController.java - Login endpoints
ecom/src/main/java/com/generic/ecom/controller/LoginAndSignIn.java
Product and users
- Product service
ecom/src/main/java/com/generic/ecom/view/Services/ProductService.java - Product repository
ecom/src/main/java/com/generic/ecom/repo/ProductsRepo.java - Product model
ecom/src/main/java/com/generic/ecom/model/Products.java - User repository
ecom/src/main/java/com/generic/ecom/repo/UserRepo.java - User model
ecom/src/main/java/com/generic/ecom/model/Users.java - Product notifier
ecom/src/main/java/com/generic/ecom/view/Schedulers/NewProductNotifierViaEmail.java
Authentication
- Login service
ecom/src/main/java/com/generic/ecom/view/security/SiginAndLoginService.java - User details loader
ecom/src/main/java/com/generic/ecom/view/security/ecomUserDetailsService.java - JWT service
ecom/src/main/java/com/generic/ecom/view/security/JWTService.java - JWT filter
ecom/src/main/java/com/generic/ecom/view/security/customFilters/JWTFilter.java
External services
- S3 URL service
ecom/src/main/java/com/generic/ecom/view/Services/AWSService.java - Amazon S3
- Notification client
ecom/src/main/java/com/generic/ecom/view/Services/NotificationServiceGRPCClient.java - Notification service
- PostgreSQL
Other components
- Customer or merchant
- Onboarding screen
ecomFrontEnd/ecomFrontEnd/app/onboard.tsx
Connections 21
- Customer or merchant → Product endpoints: requests products
- Customer or merchant → Image endpoints: requests image URLs
- Customer or merchant → Login endpoints: registers or logs in
- Product endpoints → Product service: calls
- Product service → Product repository: reads and writes
- Product repository → PostgreSQL: persists products
- Image endpoints → S3 URL service: requests presigned URLs
- S3 URL service → Amazon S3: presigns S3 access
- Login endpoints → Login service: calls
- Login service → User repository: saves users
- Login service → JWT service: generates token
- Login service → User details loader: authenticates via Spring
- User details loader → User repository: loads user
- User repository → PostgreSQL: persists users
- JWT filter → JWT service: validates tokens
- Product notifier → User repository: loads user
- Product notifier → Product repository: loads product
- Product endpoints → Notification client: sends notification
- Notification client → Notification service: gRPC request
- Product model → Product repository: represented by
- User model → User repository: represented by