How iampradeep-hr/multilingual-ecommerce-search works
Mila? is a multilingual commerce storefront with Spring Boot APIs, a MongoDB catalog, Kafka-backed product ingestion and indexing, Typesense search, and Gemma tag generation via Ollama or an optional remote provider. Shoppers search and filter products and resolve a store location; admins authenticate, manage products, and request rule-based or AI tags. The backend owns those API calls and dispatches queued work. Cart contents remain browser-local; checkout and payment are not implemented. Arrows reflect sampled calls and README-documented integrations; unsampled frontend views and service wiring are not expanded.
Main entry points: ProductCatalogService.java Catalog service · AdminProductController.java Admin endpoints · KafkaProductSubmissionService.java Product submission · commerce-api.service.ts Commerce API client
Components 23
Storefront
- Storefront app
frontend/src/app/app.ts - Commerce API client
frontend/src/app/commerce-api.service.ts
Backend API
- Storefront endpoints
backend/src/main/java/com/jaldi/quickcommerce/StorefrontController.java - Admin endpoints
backend/src/main/java/com/jaldi/quickcommerce/AdminProductController.java - Admin security
backend/src/main/java/com/jaldi/quickcommerce/SecurityConfiguration.java
Catalog and tags
- Catalog service
backend/src/main/java/com/jaldi/quickcommerce/ProductCatalogService.java - Product model
backend/src/main/java/com/jaldi/quickcommerce/Product.java - Mongo catalog store
backend/src/main/java/com/jaldi/quickcommerce/MongoProductCatalogStore.java - Mongo repository
backend/src/main/java/com/jaldi/quickcommerce/MongoProductRepository.java - MongoDB
- Rule tag generation
backend/src/main/java/com/jaldi/quickcommerce/ProductCatalogService.java - Gemma tag service
backend/src/main/java/com/jaldi/quickcommerce/GemmaTagService.java - Ollama / Gemma
- Remote tag bridge
Async product processing
- Product submission
backend/src/main/java/com/jaldi/quickcommerce/KafkaProductSubmissionService.java - Kafka topics
- Ingest worker
backend/src/main/java/com/jaldi/quickcommerce/ProductIngestWorker.java - Index event publisher
backend/src/main/java/com/jaldi/quickcommerce/ProductIndexEventPublisher.java - Index worker
backend/src/main/java/com/jaldi/quickcommerce/ProductIndexWorker.java
Search index
- Search service
backend/src/main/java/com/jaldi/quickcommerce/ProductSearchService.java - Typesense
Other components
- Shopper
- Admin
Connections 29
- Shopper → Storefront app: uses
README.md - Admin → Storefront app: uses
README.md - Storefront app → Commerce API client: calls
frontend/src/app/app.ts - Commerce API client → Storefront endpoints: HTTP requests
README.md - Commerce API client → Admin endpoints: HTTP requests
README.md - Storefront endpoints → Catalog service: calls
backend/src/main/java/com/jaldi/quickcommerce/StorefrontController.java - Admin endpoints → Catalog service: calls
backend/src/main/java/com/jaldi/quickcommerce/AdminProductController.java - Admin endpoints → Product submission: submits products
backend/src/main/java/com/jaldi/quickcommerce/AdminProductController.java - Admin endpoints → Gemma tag service: requests tags
backend/src/main/java/com/jaldi/quickcommerce/AdminProductController.java - Admin security → Admin endpoints: protects
- Catalog service → Mongo catalog store: uses
backend/src/main/java/com/jaldi/quickcommerce/ProductCatalogService.java - Mongo catalog store → Mongo repository: delegates to
backend/src/main/java/com/jaldi/quickcommerce/MongoProductCatalogStore.java - Mongo repository → MongoDB: reads and writes
- Catalog service → Rule tag generation: generates aliases
backend/src/main/java/com/jaldi/quickcommerce/ProductCatalogService.java - Gemma tag service → Ollama / Gemma: generates tags
backend/src/main/java/com/jaldi/quickcommerce/GemmaTagService.java - Gemma tag service → Remote tag bridge: optional provider
backend/src/main/java/com/jaldi/quickcommerce/GemmaTagService.java - Product submission → Catalog service: creates product
backend/src/main/java/com/jaldi/quickcommerce/KafkaProductSubmissionService.java - Product submission → Kafka topics: publishes ingest
backend/src/main/java/com/jaldi/quickcommerce/KafkaProductSubmissionService.java - Product submission → Index event publisher: queues deletion
backend/src/main/java/com/jaldi/quickcommerce/KafkaProductSubmissionService.java - Kafka topics → Ingest worker: delivers ingest
backend/src/main/java/com/jaldi/quickcommerce/ProductIngestWorker.java - Ingest worker → Catalog service: saves product
backend/src/main/java/com/jaldi/quickcommerce/ProductIngestWorker.java - Ingest worker → Index event publisher: publishes product
backend/src/main/java/com/jaldi/quickcommerce/ProductIngestWorker.java - Index event publisher → Kafka topics: publishes index event
backend/src/main/java/com/jaldi/quickcommerce/ProductIndexEventPublisher.java - Kafka topics → Index worker: delivers index event
- Index worker → Search service: indexes or deletes
backend/src/main/java/com/jaldi/quickcommerce/ProductIndexWorker.java - Catalog service → Search service: searches products
backend/src/main/java/com/jaldi/quickcommerce/ProductCatalogService.java - Search service → Typesense: searches and indexes
backend/src/main/java/com/jaldi/quickcommerce/ProductSearchService.java - Storefront endpoints → Product model: returns products
backend/src/main/java/com/jaldi/quickcommerce/StorefrontController.java - Catalog service → Product model: creates products
backend/src/main/java/com/jaldi/quickcommerce/ProductCatalogService.java