How majnun917/buy-01 works
Buy-01 is an Angular storefront backed by independently deployable Spring Boot services. The main journey is browsing product listings and details, with seller workflows for authentication, product management, and image upload. User authentication and profile management, product catalog operations, and media storage are distinct backend stages; the product service verifies media ownership through its media client. The README describes JWT, role-based access, uploads, and independent deployment. Some frontend API wiring and gateway routing were not shown, so those links are marked unverified.
Main entry points: gateway API Gateway · app.routes.ts App Routes · auth.service.ts Auth Client · seller-dashboard Seller Dashboard
Components 23
Storefront
- App Routes
frontend/src/app/app.routes.ts - Login / Register
frontend/src/app/features/auth - Product Browsing
frontend/src/app/home - Seller Dashboard
frontend/src/app/seller-dashboard - Profile
frontend/src/app/profile/profile.component.ts - Auth Client
frontend/src/app/core/auth/auth.service.ts - Token Storage
frontend/src/app/core/auth/auth-storage.service.ts - Media Client
frontend/src/app/core/media.service.ts
Identity
- Auth API
backend/user-service/src/main/java/buy_01/user_service/controller/AuthController.java - Profile API
backend/user-service/src/main/java/buy_01/user_service/controller/UserController.java - Account Logic
backend/user-service/src/main/java/buy_01/user_service/service/AuthService.java - User Store
backend/user-service/src/main/java/buy_01/user_service/repository/UserRepository.java
Product Catalog
- Product API
backend/product-service/src/main/java/buy_01/product_service/controller/ProductController.java - Catalog Logic
backend/product-service/src/main/java/buy_01/product_service/service/ProductService.java - Product Store
backend/product-service/src/main/java/buy_01/product_service/repository/ProductRepository.java - Media Client
backend/product-service/src/main/java/buy_01/product_service/client/MediaClient.java
Media Handling
- Media API
backend/media-service/src/main/java/buy_01/media_service/controller/MediaController.java - Media Logic
backend/media-service/src/main/java/buy_01/media_service/service/MediaService.java - Media Metadata
backend/media-service/src/main/java/buy_01/media_service/repository/MediaRepository.java - Image Files
backend/media-service/src/main/java/buy_01/media_service/service/MediaService.java
Service Platform
- API Gateway
backend/gateway/src/main/java/buy_01/gateway - Service Discovery
backend/discovery-server/src/main/java/buy_01/discovery_server/DiscoveryServerApplication.java
Other components
- Shopper / Seller
Connections 27
- Shopper / Seller → App Routes: navigates
frontend/src/app/app.routes.ts - App Routes → Login / Register: routes to
frontend/src/app/app.routes.ts - App Routes → Product Browsing: routes to
frontend/src/app/app.routes.ts - App Routes → Profile: guards route
frontend/src/app/app.routes.ts - App Routes → Seller Dashboard: guards route
frontend/src/app/app.routes.ts - Login / Register → Auth Client: uses
- Profile → Auth Client: uses
- Seller Dashboard → Media Client: uploads images
- Auth Client → Token Storage: stores token
frontend/src/app/core/auth/auth.service.ts - Auth Client → API Gateway: calls API
- Product Browsing → API Gateway: requests catalog
- Seller Dashboard → API Gateway: manages products
- Media Client → API Gateway: calls API
- API Gateway → Auth API: routes requests
- API Gateway → Product API: routes requests
- API Gateway → Media API: routes requests
- Auth API → Account Logic: delegates
backend/user-service/src/main/java/buy_01/user_service/controller/AuthController.java - Profile API → Account Logic: delegates
backend/user-service/src/main/java/buy_01/user_service/controller/UserController.java - Account Logic → User Store: reads and writes
backend/user-service/src/main/java/buy_01/user_service/service/AuthService.java - Product API → Catalog Logic: delegates
backend/product-service/src/main/java/buy_01/product_service/controller/ProductController.java - Catalog Logic → Product Store: reads and writes
backend/product-service/src/main/java/buy_01/product_service/service/ProductService.java - Catalog Logic → Media Client: checks media
backend/product-service/src/main/java/buy_01/product_service/service/ProductService.java - Media Client → Media API: checks ownership
- Media API → Media Logic: delegates
backend/media-service/src/main/java/buy_01/media_service/controller/MediaController.java - Media Logic → Media Metadata: reads and writes
backend/media-service/src/main/java/buy_01/media_service/service/MediaService.java - Media Logic → Image Files: stores files
backend/media-service/src/main/java/buy_01/media_service/service/MediaService.java - Service Discovery → API Gateway: service discovery