Skip to content

sazzadkhan20/ShobdoNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌿 ShobdoNet β€” Bengali Lexical Search

A powerful, real-time Bengali word search engine built on the UKC Bengali WordNet.

Live Demo Next.js TypeScript Netlify


πŸ”— Live Site

https://shobdonet.netlify.app/


πŸ“– About

ShobdoNet (ΰ¦Άΰ¦¬ΰ§ΰ¦¦ΰ¦¨ΰ§‡ΰ¦Ÿ) is a client-side Bengali lexical search application. It allows users to search any Bengali word and instantly explore all associated synsets, definitions, Part of Speech, Sense IDs, ILI codes, and lexical relations β€” all sourced directly from the UKC Bengali WordNet (ben.xml).

No database. No backend. No API calls. Pure XML + Next.js.


✨ Features

Feature Details
⚑ Real-time Search 350ms debounced search across all writtenForm entries
πŸ“š Full Synset Details Synset ID, Sense ID, ILI, Part of Speech, Definition, Relations
πŸ”— Lexical Relations Hypernym, Hyponym, Meronym, Holonym, Antonym, and more
🎨 3 Theme Modes Light β˜€οΈ Β· Forest 🌿 Β· Dark πŸŒ‘ β€” all olive-green palette
πŸ“„ Smart Pagination Default 15 rows Β· options 20 / 30 / 50 Β· First / Prev / Next / Last
β†Ί Pagination Reset One-click reset back to default page size
πŸ’€ Skeleton Loading Animated shimmer cards while XML parses
πŸ“± Fully Responsive Works on mobile, tablet, and desktop
🌾 Zero Backend Reads directly from ben.xml in /public β€” deploy anywhere

πŸ“ Project Structure

shobdonet/
β”œβ”€β”€ public/
β”‚   └── ben.xml                  ← Bengali WordNet XML (place here)
β”œβ”€β”€ src/
β”‚   └── app/
β”‚       β”œβ”€β”€ layout.tsx           ← Root layout + metadata
β”‚       β”œβ”€β”€ loading.tsx          ← Next.js loading UI
β”‚       └── page.tsx             ← Main page (all logic + UI)
β”œβ”€β”€ package.json
β”œβ”€β”€ next.config.mjs
β”œβ”€β”€ tsconfig.json
└── README.md

πŸš€ Getting Started Locally

Prerequisites

  • Node.js 18+
  • npm or yarn

1. Clone or download the project

git clone https://github.com/YOUR_USERNAME/shobdonet.git
cd shobdonet

2. Place ben.xml in /public

cp /path/to/ben.xml public/ben.xml

⚠️ Critical β€” The app fetches /ben.xml as a static asset at runtime. Without this file, search will not work.

3. Install dependencies

npm install

4. Run development server

npm run dev

Open http://localhost:3000 in your browser.

5. Build for production

npm run build
npm start

☁️ Deployment

Netlify (Current Host)

The project is live at https://shobdonet.netlify.app/.

Deploy via Netlify Dashboard

  1. Push your project to GitHub (make sure public/ben.xml is committed).
  2. Go to netlify.com β†’ Add new site β†’ Import an existing project.
  3. Connect your GitHub repo.
  4. Set build settings:
    • Build command: npm run build
    • Publish directory: .next
  5. Install the Netlify Next.js plugin (if not already):
    npm install @netlify/plugin-nextjs
  6. Add netlify.toml to project root:
    [build]
      command = "npm run build"
      publish = ".next"
    
    [[plugins]]
      package = "@netlify/plugin-nextjs"
  7. Click Deploy Site.

Deploy via Netlify CLI

npm install -g netlify-cli
netlify login
netlify init
npm run build
netlify deploy --prod

Vercel (Alternative)

npm install -g vercel
vercel

Or push to GitHub and import at vercel.com β€” Next.js is auto-detected.

⚠️ Make sure public/ben.xml is committed to your repo before deploying to either platform.


βš™οΈ Configuration

All configurable constants are at the top of src/app/page.tsx:

// Pagination defaults β€” change these freely
const DEFAULT_PAGE_SIZE = 15;
const PAGE_SIZE_OPTIONS = [15, 20, 30, 50];

// Default theme on load: "light" | "dark" | "forest"
const [theme, setTheme] = useState<ThemeMode>("light");

🎨 Theme System

All three themes are derived from the base olive color rgb(87, 97, 57):

Mode Background Accent Feel
β˜€οΈ Light #f4f3ec warm parchment #576139 deep olive Editorial, readable
🌿 Forest #192210 deep green #a8c870 bright sage Lush, immersive
πŸŒ‘ Dark #0f110c near-black #8fa85a muted olive Moody, focused

πŸ—‚οΈ Data Source

The lexical data comes from the UKC Bengali Lexicon v1.0 (ben.xml):

  • Source: IndoWordNet by IIT Mumbai + Wiktionary + CogNet
  • Language: Bengali (ben)
  • License: CC BY-NC-SA 4.0
  • Publisher: KnowDive β€” University of Trento
  • Contact: gabor.bella@unitn.it

This project uses the dataset for educational/research purposes under the CC BY-NC-SA 4.0 license.


πŸ› οΈ Tech Stack

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript 5
  • Styling: Inline CSS-in-JS (no external CSS framework)
  • Fonts: Cinzel Β· Noto Sans Bengali Β· JetBrains Mono (Google Fonts)
  • XML Parsing: Browser-native DOMParser
  • Hosting: Netlify

πŸ“œ License

This project's code is open source. The data (ben.xml) is licensed under CC BY-NC-SA 4.0 by the University of Trento / KnowDive group.


Made with 🌿 for the Bengali language community

Releases

No releases published

Packages

 
 
 

Contributors

Languages