How mohanteja-8319/product-search-automation works
This is a product-discovery and price-comparison application with account management, price alerts, browser push, and an admin console. The main user workflow is to search or compare live marketplace listings, inspect product information, and optionally create an alert that is checked later and can trigger notifications. The graph includes the documented frontend feature areas, but source excerpts do not establish most frontend-to-API calls; those links are omitted. Alert-monitor internals are represented only at the supported subsystem level.
Main entry points: App.jsx Route application · server.js HTTP server · authController.js Auth controller · alertMonitor.js Alert monitor
Components 33
Customer app
- Route application
frontend/src/App.jsx - Browser push worker
frontend/public/sw.js
Product discovery
- Product search
frontend/src/Pages/SearchPage.jsx - Comparison
frontend/src/Pages/ComparisionPage.jsx - Product details
frontend/src/Pages/ProductDetail.jsx - Price history
frontend/src/Pages/PriceHistory.jsx - Recommendations
frontend/src/Pages/Recommendation.jsx - Categories
frontend/src/Pages/CategoriesPage.jsx
Accounts and alerts
- Authentication
frontend/src/Pages/Login.jsx - Profile settings
frontend/src/Pages/Settings.jsx - Wishlist
frontend/src/Pages/Wishlist.jsx - Alert management
frontend/src/Components/PriceAlertsMain.jsx
Backend services
- HTTP server
backend/server.js - Product routes
backend/routes/productRoutes.js - Live search and matching
backend/services/quickCommerceService.js - Auth routes
backend/routes/authRoutes.js - Profile routes
backend/routes/profileRoutes.js - Auth controller
backend/controllers/authController.js - Alert routes
backend/routes/alertRoutes.js - Alert controller
backend/controllers/alertController.js - Alert monitor
backend/services/alertMonitor.js - Push routes
backend/routes/pushRoutes.js - Push controller
backend/controllers/pushController.js - Admin routes
backend/routes/adminRoutes.js - User records
backend/models/User.js - Alert records
backend/models/Alert.js - Push subscriptions
backend/models/PushSubscription.js
Admin console
- Admin pages
frontend/src/admin/pages/AdminDashboard.jsx
Other components
- Shopper
- Admin user
- QuickCommerce API
- Email transport
backend/utils/sendEmail.js - Push delivery
backend/utils/sendPush.js
Connections 38
- Shopper → Route application: uses
- Route application → Product search: routes to
- Route application → Comparison: routes to
- Route application → Product details: routes to
- Route application → Price history: routes to
- Route application → Recommendations: routes to
- Route application → Categories: routes to
- Route application → Authentication: routes to
- Route application → Profile settings: routes to
- Route application → Wishlist: routes to
- Route application → Alert management: routes to
- HTTP server → Product routes: mounts
- HTTP server → Auth routes: mounts
- HTTP server → Profile routes: mounts
- HTTP server → Alert routes: mounts
- HTTP server → Push routes: mounts
- HTTP server → Admin routes: mounts
- Product routes → Live search and matching: calls
- Live search and matching → QuickCommerce API: fetches listings
- Auth routes → Auth controller: dispatches
- Profile routes → Auth controller: dispatches
- Auth controller → User records: reads and writes
- Auth controller → Alert records: deletes owned alerts
- Auth controller → Email transport: sends reset email
- Alert routes → Alert controller: dispatches
- Alert controller → Alert records: reads and writes
- Alert controller → User records: reads
- Alert controller → Alert monitor: runs checks
- HTTP server → Alert monitor: schedules checks
- Alert monitor → Alert records: checks alerts
- Alert monitor → Push delivery: sends notifications
- Alert monitor → Email transport: sends notifications
- Push routes → Push controller: dispatches
- Push controller → Push subscriptions: reads and writes
- Browser push worker → Push routes: subscribes
- Admin user → Admin pages: uses
- Admin routes → User records: reads
- Admin routes → Alert records: counts