Goal
Enhance the
/notebooks page to better showcase SciDEX's demo artifacts — particularly Allen Institute data analyses, SEA-AD cohort studies, and aging research notebooks. Add filtering, sorting, metadata chips, and a spotlight section to make high-value demo notebooks immediately discoverable. This supports Quest 16 (Demo Showcase) and Quest 17 (Rich Artifacts) by making the most impressive notebooks easier to find.
Acceptance Criteria
☐ /notebooks page has filter controls (by tags: Allen Institute, SEA-AD, aging, protein structure, etc.)
☐ Sort options (by creation date, analysis link count, title alphabetically)
☐ Each notebook card shows metadata chips (tags, creation date, linked analyses)
☐ Spotlight section at top highlights 3-5 top demo notebooks with rich descriptions
☐ Page renders in <2s, no broken links
☐ Mobile-responsive design maintains readability
Approach
Read current api.py notebook registry implementation (/notebooks route)
Query notebooks table to understand available metadata fields
Add filter/sort query parameters to notebook route handler
Enhance notebook metadata with tags (Allen Institute, SEA-AD, aging, etc.) — add to DB if needed
Build HTML filter controls and sort dropdown in f-string template
Create spotlight section with hand-picked top notebooks (hardcoded or from DB flag)
Style with existing SciDEX design language (dark theme, blue accents)
Test rendering, verify all links work
Commit and pushDependencies
- None (standalone enhancement to existing
/notebooks page)
Dependents
- Demo showcase improvements benefit from better notebook discoverability
Work Log
2026-04-04 — Slot 11
- Started task: reading spec requirements
- Examined current /notebooks implementation in api.py (line 22216)
- Applied notebooks table migration (001_create_notebooks_table.py)
- Added
tags column to notebooks table (ALTER TABLE)
- Added
is_spotlight column to notebooks table (ALTER TABLE)
- Enhanced notebooks_page() function with:
- Tag filtering via query parameter
- Sort options (date/title/analyses) via query parameter
- Filter controls UI with tag chips
- Sort dropdown
- Spotlight section for featured notebooks
- Metadata chips on each card (tags and entities)
- Better empty states
- Verified Python syntax: valid
- Next: test page rendering, commit, merge to main, restart API