Skip to content

Releases: drjagan/nmc-competency-selector

v1.2.6 - Fix Fullscreen Tree Truncation & Centering

Choose a tag to compare

@drjagan drjagan released this 05 Feb 04:03

Bug Fix

Fixes the fullscreen tree view truncation and centering issues.

Changes

  • Fixed truncation: Tree now fills the entire viewport in fullscreen mode instead of being constrained by an invisible boundary
  • Fixed centering: Tree automatically centers when entering fullscreen mode
  • Exit handling: Tree properly resets position when exiting fullscreen

Technical Details

  • ResizeObserver now uses actual container height (entry.contentRect.height) in fullscreen mode instead of hardcoded prop value
  • resetView() now accepts optional width/height parameters for dynamic centering
  • Fullscreen change handler calls resetView() with new dimensions when entering fullscreen

Verification

  1. Click "Tree View" tab
  2. Click fullscreen button (maximize icon)
  3. Tree should fill entire viewport and be centered
  4. Press ESC to exit - tree returns to normal size
  5. Re-enter fullscreen - tree centers again

v1.2.5 - Tree View Fullscreen Mode

Choose a tag to compare

@drjagan drjagan released this 05 Feb 03:49

New Feature

Tree View Fullscreen Mode

Added true browser fullscreen capability to the Tree View for maximum screen real estate when exploring the competency hierarchy.

How to use:

  1. Navigate to the Tree View tab
  2. Click the fullscreen button (Maximize icon) in the top-right controls
  3. The tree expands to fill your entire browser window
  4. Press ESC or click the Minimize icon to exit fullscreen

Technical Details:

  • Uses the native Browser Fullscreen API
  • Container adapts styling for fullscreen (no borders/rounded corners)
  • Dimensions dynamically update to viewport size
  • All controls remain functional (zoom, pan, expand/collapse, selection)

Browser Support:

  • Chrome ✓
  • Firefox ✓
  • Safari ✓
  • Edge ✓

Full Changelog: v1.2.4...v1.2.5

v1.2.4 - Fix Search Dropdown Width

Choose a tag to compare

@drjagan drjagan released this 05 Feb 03:33

Bug Fix

Search Results Dropdown Still Overflowing

Problem: The dropdown was still stretching beyond the viewport width despite v1.2.3 fixes.

Root Cause:

  • Absolutely positioned elements need a relative parent to constrain their width
  • Using w-full on an absolute element doesn't work as expected without proper positioning context

Solution:

  1. Added relative positioning to SearchInterface container
  2. Changed dropdown from w-full to left-0 right-0 - this anchors both edges to the parent
  3. Added overflow-hidden to result buttons to contain long text
  4. Added max-w-full to persistent mode for additional safety

The dropdown now properly constrains to its parent container width regardless of content length.


Full Changelog: v1.2.3...v1.2.4

v1.2.3 - UI Bug Fixes

Choose a tag to compare

@drjagan drjagan released this 05 Feb 03:27

Bug Fixes

1. Search Results Dropdown Horizontal Overflow

Problem: Search results dropdown extended beyond viewport/browser width.

Solution:

  • Added overflow-hidden to search results container
  • Added truncate max-w-[200px] to topic name badges
  • Long topic names now display with ellipsis

2. Tree View Node Twitching on Hover

Problem: Mouse hover on tree nodes caused uncontrollable twitching, making nodes unclickable.

Root Cause: CSS transform: scale(1.02) on hover caused position shifts in SVG <g> elements (SVG doesn't respect CSS transform-origin properly). This created a hover feedback loop.

Solution:

  • Removed the scale transform on hover
  • Replaced with filter: brightness(1.1) on circle elements
  • Nodes now respond smoothly to hover and can be expanded/collapsed

Full Changelog: v1.2.2...v1.2.3

v1.2.2 - Railway Deployment Fix

Choose a tag to compare

@drjagan drjagan released this 04 Feb 22:32

Bug Fix

Fixed: Railway deployment now works correctly.

Root Cause

The SQLite database file (competencies-2019.db) was excluded by .gitignore, so it was never pushed to GitHub and therefore never deployed to Railway/Vercel.

Solution

  • Updated .gitignore to allow database files in src/data/
  • Included the 2.5MB database file in the repository
  • WAL files (*.db-shm, *.db-wal) remain excluded

Deployment

After this update, Railway will automatically redeploy and all features (Search, Browse, Tree View) should work correctly.


Full Changelog: v1.2.1...v1.2.2

v1.2.1 - Security Patch

Choose a tag to compare

@drjagan drjagan released this 04 Feb 22:24

Security Update

Upgrades Next.js from 15.1.6 to 15.1.11 to address critical security vulnerabilities:

No functionality changes. This is a security patch only.


Full Changelog: v1.2.0...v1.2.1

v1.2.0 - Curriculum Versioning

Choose a tag to compare

@drjagan drjagan released this 04 Feb 22:12

What's New

Curriculum Versioning System

  • Support for multiple NMC curriculum versions (2019 default, 2024 pending)
  • Separate SQLite database files per curriculum version
  • Version selector UI with radio buttons (auto-hidden when single version active)
  • All API endpoints support ?version= query parameter

Technical Changes

  • Multi-database connection management
  • Factory pattern for version-aware services
  • New version and onVersionChange props on CompetencySelector

API Changes

  • New endpoint: GET /api/versions - List available curriculum versions
  • All existing endpoints accept ?version= parameter

Preparing for 2024 Curriculum

The 2024 version entry is configured but inactive (data import pending).
When 2024 data is imported, the VersionSelector will automatically appear.


Full Changelog: v1.1.0...v1.2.0

v1.0.0 - Initial Release

Choose a tag to compare

@drjagan drjagan released this 01 Feb 15:01

NMC Competency Selector v1.0.0

Initial release of the NMC Competency Selector component for medical education.

Features

  • Full-Text Search: FTS5-powered search across ~3,000 NMC competencies (<100ms)
  • Browse Interface: Cascading Subject → Topic → Competency navigation
  • Search Button & Enter Key: Submit search explicitly or auto-search while typing
  • Persistent Results: Search results stay visible for easy multi-select workflow
  • Tag Display: Selected competencies shown as removable tags with details
  • Admin Interface: CRUD operations with bulk import/export (enable with ADMIN_ENABLED=true)
  • SQLite Database: Offline-capable with embedded database
  • Dark Mode: Full dark mode support via shadcn/ui

Tech Stack

  • Next.js 15 with App Router
  • TypeScript
  • SQLite with better-sqlite3 and FTS5
  • Tailwind CSS + shadcn/ui components
  • Radix UI primitives

Getting Started

# Clone the repository
git clone https://github.com/drjagan/nmc-competency-selector.git
cd nmc-competency-selector

# Install dependencies
npm install

# Initialize database
npm run db:init

# Import competencies from Excel files
npm run db:import "/path/to/excel/files"

# Start development server
npm run dev

Built for Medical Education by Academe CBME