A premium, AI-powered vocabulary bank and dictionary companion built with Next.js, Node.js, and MongoDB. LexIconic automates word definition parsing using the Google Gemini AI developer platform and provides smart conceptual search matching.
- Automatic Definitions: Simply type any English word, and the system automatically queries Gemini 3.1 Flash-Lite to fetch complete dictionary entries.
- Part of Speech Categorization: Breaks down definitions by grammar type (nouns, verbs, adjectives, adverbs).
- Contextual Examples: Automatically generates exactly 3 high-quality sentence examples illustrating correct word usage.
- Synonyms & Antonyms: Generates up to 5 exact synonyms and antonyms for every word entry.
- Database Archiving: Automatically stores generated details into Mongoose/MongoDB schemas for fast subsequent loads.
- Conceptual Query Matching: Search for words using natural language descriptions. For example, typing "lasting a very short duration" will match and rank "ephemeral" at the top of the search list.
- API-Backed Relevance Ranking: Sends search terms and dictionary models to Gemini to rank documents by semantic relevance.
- Robust Text-Match Fallback: Automatically falls back to regex search queries across words, definitions, and synonyms if the API quota is reached.
- Debounced Inputs: Integrated a
600msfrontend debounce system that waits for typing pauses to conserve API usage, with an inline spinning loading status.
- Segmented Filtering: A clean toggle control to switch the dashboard view between All Words (public feed) and My Words (words generated by the logged-in user).
- Ownership Indicators: Visual color-coded accent indicators on cards that you created.
- Role-Based Deletion Permissions: Security validations on both the frontend and backend ensure users can only delete words that they originally submitted.
- Option 1: Security Questions: Recover account access by responding to custom questions set during registration.
- Option 2: Backup Codes: Upon registration, users receive 3 unique backup codes. Using a code allows an instant password reset and consumes that specific code securely.
- Update Details: Seamlessly modify display names or login usernames.
- Change Password: Secure password update forms verified against current credentials.
- Account Deletion (Danger Zone): Fully erase user credentials and details from the database with double-confirmation prompts.
- Gemini-Powered Tests: Generates exactly 20 multiple-choice questions (MCQs) dynamically based on words stored in your vocabulary database.
- Competitive Exam Style: Targets advanced grammar and vocab levels matching AFCAT, CDS, and other competitive exams.
- Independent Distractors: Question stems are based on database words, but option choices (A, B, C, D) are created dynamically by AI to remain independent and challenging.
- Google Forms-Style Review: After submitting, users immediately view their overall score alongside color-coded feedback (green for correct answers, red for incorrect selections) showing correct choices.
- Fully Ephemeral: Tests are run in-memory and are not saved, allowing students to test themselves, reset, and instantly generate fresh tests.
- Dial-Gear Switcher: Toggle themes instantly via a rotating dial gear inside the navbar.
- GitHub Dark Mode styling: Dark theme modeled precisely after GitHub's official
#0d1117background theme with high-contrast slate text and#161b22container panels.
- Frontend: Next.js 16 (App Router), Tailwind CSS v4, React (Hooks, State)
- Backend: Node.js, Express, JSON Web Tokens (JWT), Cookie Parser
- Database: MongoDB, Mongoose ORM
- AI Integration:
@google/generative-ai(Gemini 3.1 Flash-Lite model)
Ensure you have Node.js and MongoDB installed and running on your system.
Create a .env file in the backend/ directory:
PORT=8000
MONGODB_URI=your_mongodb_connection_string
DB_NAME=LexIconic
ACCESS_TOKEN_SECRET=your_jwt_access_secret
REFRESH_TOKEN_SECRET=your_jwt_refresh_secret
ACCESS_TOKEN_EXPIRY=1d
REFRESH_TOKEN_EXPIRY=8d
GEMINI_API_KEY=your_gemini_api_key_from_ai_studio# Start Backend (from backend/ directory)
npm install
npm run dev
# Start Frontend (from frontend/ directory)
npm install
npm run devOpen http://localhost:3000 in your browser to start building your vocabulary bank!