How yashmerino/ecommerce-platform works
This is a Spring Boot/React ecommerce platform. Users enter through the UI to authenticate and use product browsing/search, cart, order, profile, and seller-product features; the server owns core commerce and coordinates payment and notification services. The README also documents MySQL, Kafka, Redis, JWT authentication, and three UI languages. Sampled code verifies selected product, registration, payment, and notification behavior; other subsystem links are shown only where documented or marked unverified because their wiring was not sampled.
Main entry points: controllers Commerce API · PaymentServiceImpl.java Payment processing · NotificationServiceImpl.java Notification delivery · Main.tsx Storefront routes
Components 27
Web storefront
- UI shell
ecommerce-platform-ui/src/app/App.tsx - Storefront routes
ecommerce-platform-ui/src/app/Main.tsx - Storefront pages
ecommerce-platform-ui/src/app/components/pages - API requests
ecommerce-platform-ui/src/app/api - Auth interceptor
ecommerce-platform-ui/src/app/api/AuthInterceptor.ts - App state
ecommerce-platform-ui/src/app/hooks.ts
Commerce server
- Commerce API
ecommerce-platform-server/src/main/java/com/yashmerino/ecommerce/controllers - Product endpoints
ecommerce-platform-server/src/main/java/com/yashmerino/ecommerce/controllers/ProductController.java - Commerce services
ecommerce-platform-server/src/main/java/com/yashmerino/ecommerce/services - Registration and auth
ecommerce-platform-server/src/main/java/com/yashmerino/ecommerce/services/AuthServiceImpl.java - JWT security
ecommerce-platform-server/src/main/java/com/yashmerino/ecommerce/security - Commerce entities
ecommerce-platform-server/src/main/java/com/yashmerino/ecommerce/model
Payment service
- Payment event listener
ecommerce-platform-payment-service/src/main/java/com/yashmerino/ecommerce/kafka/PaymentEventListener.java - Payment processing
ecommerce-platform-payment-service/src/main/java/com/yashmerino/ecommerce/service/impl/PaymentServiceImpl.java - Stripe integration
ecommerce-platform-payment-service/src/main/java/com/yashmerino/ecommerce/service/impl/StripePaymentServiceImpl.java - Payment records
ecommerce-platform-payment-service/src/main/java/com/yashmerino/ecommerce/model/Payment.java - Payment result producer
ecommerce-platform-payment-service/src/main/java/com/yashmerino/ecommerce/kafka/PaymentResultProducer.java
Notification service
- Notification listener
ecommerce-platform-notification-service/src/main/java/com/yashmerino/ecommerce/kafka/NotificationEventListener.java - Notification delivery
ecommerce-platform-notification-service/src/main/java/com/yashmerino/ecommerce/service/impl/NotificationServiceImpl.java - Message templates
ecommerce-platform-notification-service/src/main/java/com/yashmerino/ecommerce/service/impl - Delivery senders
ecommerce-platform-notification-service/src/main/java/com/yashmerino/ecommerce/service/impl/EmailNotificationSender.java - Notification records
ecommerce-platform-notification-service/src/main/java/com/yashmerino/ecommerce/model/Notification.java
Other components
- Shopper
- MySQL
- Redis cache
- SMTP mail
- Kafka
Connections 26
- Shopper → UI shell: uses
README.md - UI shell → Storefront routes: renders
ecommerce-platform-ui/src/app/App.tsx - Storefront routes → Storefront pages: routes to
ecommerce-platform-ui/src/app/Main.tsx - Storefront routes → App state: reads auth state
ecommerce-platform-ui/src/app/Main.tsx - Storefront pages → API requests: requests data
ecommerce-platform-ui/src/app/components/pages/search/SearchHit.tsx - API requests → Auth interceptor: uses auth
ecommerce-platform-ui/src/app/api/AuthInterceptor.ts - API requests → Commerce API: calls
- Commerce API → JWT security: secured by
- Commerce API → Product endpoints: routes product requests
- Product endpoints → Commerce services: calls product service
ecommerce-platform-server/src/main/java/com/yashmerino/ecommerce/controllers/ProductController.java - Registration and auth → Commerce entities: creates users and carts
ecommerce-platform-server/src/main/java/com/yashmerino/ecommerce/services/AuthServiceImpl.java - Commerce services → MySQL: persists commerce data
README.md - Commerce API → Redis cache: uses caching
README.md - Commerce API → Kafka: publishes service events
README.md - Kafka → Payment event listener: delivers payment requests
README.md - Payment event listener → Payment processing: dispatches event
- Payment processing → Stripe integration: charges through
ecommerce-platform-payment-service/src/main/java/com/yashmerino/ecommerce/service/impl/PaymentServiceImpl.java - Payment processing → Payment records: saves payment
ecommerce-platform-payment-service/src/main/java/com/yashmerino/ecommerce/service/impl/PaymentServiceImpl.java - Payment processing → Payment result producer: publishes result
ecommerce-platform-payment-service/src/main/java/com/yashmerino/ecommerce/service/impl/PaymentServiceImpl.java - Payment result producer → Kafka: sends result event
README.md - Kafka → Notification listener: delivers notification events
README.md - Notification listener → Notification delivery: dispatches event
- Notification delivery → Notification records: saves status
ecommerce-platform-notification-service/src/main/java/com/yashmerino/ecommerce/service/impl/NotificationServiceImpl.java - Notification delivery → Message templates: builds content
ecommerce-platform-notification-service/src/main/java/com/yashmerino/ecommerce/service/impl/NotificationServiceImpl.java - Notification delivery → Delivery senders: selects sender
ecommerce-platform-notification-service/src/main/java/com/yashmerino/ecommerce/service/impl/NotificationServiceImpl.java - Delivery senders → SMTP mail: sends email
README.md