{standard.standard_id}
+{standard.title}
+ {standard.summary && ( +{standard.summary}
+ )} + {standard.keywords?.length > 0 && ( +diff --git a/web/client/.gitignore b/web/client/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/web/client/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/web/client/README.md b/web/client/README.md new file mode 100644 index 0000000..a36934d --- /dev/null +++ b/web/client/README.md @@ -0,0 +1,16 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs) +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) + +## React Compiler + +The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. diff --git a/web/client/eslint.config.js b/web/client/eslint.config.js new file mode 100644 index 0000000..ea36dd3 --- /dev/null +++ b/web/client/eslint.config.js @@ -0,0 +1,21 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{js,jsx}'], + extends: [ + js.configs.recommended, + reactHooks.configs.flat.recommended, + reactRefresh.configs.vite, + ], + languageOptions: { + globals: globals.browser, + parserOptions: { ecmaFeatures: { jsx: true } }, + }, + }, +]) diff --git a/web/client/index.html b/web/client/index.html new file mode 100644 index 0000000..6e56e6e --- /dev/null +++ b/web/client/index.html @@ -0,0 +1,13 @@ + + +
+ + + +{standard.standard_id}
+{standard.summary}
+ )} + {standard.keywords?.length > 0 && ( +Summary
+{standard.summary}
+Keywords
+Key Sections
+{name}
+{text}
++ + Ask AI about this standard +
+ + {messages.length > 0 && ( +{m.text}
+{aiError}
+ )} + +Bureau of Indian Standards
++ India's authoritative handbook on building and construction material standards. +
++ BIS Special Publication 21 — Handbook on Building Materials — is a consolidated + reference published by the Bureau of Indian Standards. It brings together all Indian + Standards relevant to construction and building materials into a single, organised document. +
++ The 2005 edition (the basis of this portal) spans 929 pages across 25 material sections, + covering everything from cement and structural steel to timber, paints, sanitary fittings, + wire ropes, and thermal insulation. +
+ ++ SP‑21 is used daily by structural engineers specifying materials, architects selecting + finishes, contractors verifying supplier compliance, quality inspectors conducting audits, + and procurement officers evaluating bids. It is the single source of truth for which IS + standard governs a given building product. +
+ ++ This portal parses the SP‑21 : 2005 source document into 573 discrete IS standards with + structured fields — standard ID, title, material category, scope summary, key sections + (Requirements, Delivery, Manufacture, etc.), and TF-IDF keywords. Every record is + full-text searchable and filterable by category. +
++ The parser uses a two-pass boundary detection algorithm to split the PDF's continuous + text into individual standards, with deduplication, section normalisation, and + contamination detection to ensure clean, reliable data. +
+SP‑21 : 2005
++ {total} standards across {categories.length} building material sections. +
+Special Publication 21 · 2005
+
+ Indian Standards across 25 material categories —
+ searchable, categorised, and ready to reference.
+
Every building material section from SP‑21, indexed and searchable.
+About SP‑21
++ BIS Special Publication 21 consolidates all Indian Standards relevant to building and + construction materials — from Portland cement to wire ropes, sanitary fittings to structural + steels. Published by the Bureau of Indian Standards, it is the authoritative handbook used + by architects, structural engineers, contractors, and quality inspectors across India. +
+ + Visit BIS Portal ↗ + +{body}
+Hybrid Retrieval · AI Explanation
++ Ask a natural language question — the system retrieves the most relevant + IS standards using dense + sparse search, then explains each in plain English. +
+Try an example:
+for: {results.query}
+{standard.explanation}
+Search by standard number, title, material, or keyword.
+ + ++ {loading ? "Searching…" : `${meta.total} standard${meta.total !== 1 ? "s" : ""} found`} + {meta.total > 0 && ` — page ${meta.page} of ${meta.totalPages}`} +
+ )} + + {loading && results.length === 0 && ( +No standards found
+Try a different keyword or clear the category filter.
+