How ihsanandrinal/hs-code-search-engine works
This is a React HS-code commodity search app backed by Algolia, with a Node/Express API that can search the index and request Claude tariff analysis. The main user flow is browser search and facet filtering against Algolia, followed by optional per-result analysis through the Heroku API. CSV indexing is a separate data-preparation path. The repository contains two near-identical backend/indexer pairs; the excerpts show their behavior, but not which deployment is active beyond the frontend’s explicit Heroku analysis URL.
Main entry points: App.jsx Search and results UI · heroku-backend/server.js Heroku API · server/server.js Server API · index_data.js Heroku indexer
Components 11
Search interface
- Search and results UI
client/src/App.jsx - React entry point
client/src/index.js
Backend APIs
- Heroku API
heroku-backend/server.js - Server API
server/server.js
Index preparation
- Heroku CSV data
heroku-backend/hs_codes.csv - Heroku indexer
heroku-backend/index_data.js - Server CSV data
server/hs_codes.csv - Server indexer
server/index_data.js
Other components
- Trade user
- HS-code index
- Claude API
Connections 17
- Trade user → React entry point: opens app
client/src/index.js - React entry point → Search and results UI: renders
client/src/index.js - Trade user → Search and results UI: searches and filters
client/src/App.jsx - Search and results UI → HS-code index: searches index
client/src/App.jsx - HS-code index → Search and results UI: returns hits
client/src/App.jsx - Search and results UI → Heroku API: requests analysis
client/src/App.jsx - Heroku API → Claude API: requests analysis
heroku-backend/server.js - Claude API → Heroku API: returns analysis
heroku-backend/server.js - Heroku API → Search and results UI: returns analysis
client/src/App.jsx - Heroku API → HS-code index: searches index
heroku-backend/server.js - Heroku indexer → Heroku CSV data: reads rows
heroku-backend/index_data.js - Heroku indexer → HS-code index: clears and indexes
heroku-backend/index_data.js - Server API → HS-code index: searches index
server/server.js - Server API → Claude API: requests analysis
server/server.js - Claude API → Server API: returns analysis
server/server.js - Server indexer → Server CSV data: reads rows
server/index_data.js - Server indexer → HS-code index: clears and indexes
server/index_data.js