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>
31 lines
829 B
JavaScript
31 lines
829 B
JavaScript
import { defineConfig } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
import tailwindcss from '@tailwindcss/vite'
|
|
|
|
// Both dev and preview forward /api/* to FastAPI, so a same-origin (relative)
|
|
// request works whichever local server is delivering the page. Keep the two in
|
|
// sync: `preview` serves dist/, and without this it would answer /api with a
|
|
// 404 index.html, which surfaces in the UI as a login failure.
|
|
const apiProxy = {
|
|
'/api': {
|
|
// Proxy all /api/* requests straight to FastAPI on port 8000
|
|
target: 'http://127.0.0.1:8000',
|
|
changeOrigin: true,
|
|
secure: false,
|
|
ws: true,
|
|
},
|
|
}
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig({
|
|
plugins: [react(), tailwindcss()],
|
|
server: {
|
|
port: 5173,
|
|
proxy: apiProxy,
|
|
},
|
|
preview: {
|
|
port: 4173,
|
|
proxy: apiProxy,
|
|
},
|
|
})
|