Electronics Catalog: API, MCP server, frontend and deployment

Verified catalogue of mobiles and laptops sold in India, collected from
real retail listings (FastAPI backend, React frontend, Postgres/pgvector).

- REST API under /api/elec (read-only catalogue; admin endpoints need login)
- MCP server (FastMCP) at /mcp/ with list_categories, search_products,
  get_product and price_history tools
- Real ratings and reviews read from product pages and search results
- Production Dockerfile (requirements-api.txt, no PyTorch) and
  .env.production.example; remote database only via an explicit
  ELEC_ALLOW_REMOTE_DB host/name allowlist
- docs/API.md: endpoint and MCP reference with live examples

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
sriram
2026-10-01 12:17:42 +05:30
commit c7e4d59188
115 changed files with 14329 additions and 0 deletions

16
backend/pytest.ini Normal file
View File

@@ -0,0 +1,16 @@
[pytest]
testpaths = tests
# Warnings are errors. A DeprecationWarning is a change that will break the
# build later, and the only reliable time to deal with one is when it first
# appears - once a few are tolerated, the new one is invisible in the noise.
#
# When a dependency starts warning about something you cannot fix yet, add a
# narrow ignore here rather than relaxing this line, e.g.:
#
# ignore:some message regex:DeprecationWarning:the_package.*
#
# Keep each ignore as specific as the warning it silences, so it stops applying
# once the dependency is fixed.
filterwarnings =
error