Repository navigation
Releases: drjagan/nmc-competency-selector
Release list
v1.2.6 - Fix Fullscreen Tree Truncation & Centering
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
- Click "Tree View" tab
- Click fullscreen button (maximize icon)
- Tree should fill entire viewport and be centered
- Press ESC to exit - tree returns to normal size
- Re-enter fullscreen - tree centers again
v1.2.5 - Tree View Fullscreen Mode
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:
- Navigate to the Tree View tab
- Click the fullscreen button (Maximize icon) in the top-right controls
- The tree expands to fill your entire browser window
- 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
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
relativeparent to constrain their width - Using
w-fullon an absolute element doesn't work as expected without proper positioning context
Solution:
- Added
relativepositioning to SearchInterface container - Changed dropdown from
w-fulltoleft-0 right-0- this anchors both edges to the parent - Added
overflow-hiddento result buttons to contain long text - Added
max-w-fullto 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
Bug Fixes
1. Search Results Dropdown Horizontal Overflow
Problem: Search results dropdown extended beyond viewport/browser width.
Solution:
- Added
overflow-hiddento 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
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
.gitignoreto allow database files insrc/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
Security Update
Upgrades Next.js from 15.1.6 to 15.1.11 to address critical security vulnerabilities:
- CVE-2025-66478 (CRITICAL) - GHSA-9qr9-h5gf-34mp
- CVE-2025-55184 (HIGH) - GHSA-mwv6-3258-q52c
- CVE-2025-67779 (HIGH) - GHSA-5j59-xgg2-r9c4
- CVE-2025-55183 (MEDIUM) - GHSA-w37m-7fhw-fmv9
No functionality changes. This is a security patch only.
Full Changelog: v1.2.0...v1.2.1
v1.2.0 - Curriculum Versioning
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
versionandonVersionChangeprops 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
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 devBuilt for Medical Education by Academe CBME