Releases: aimed-lab/aimed-org-web
v2.0.0 — Member Portal, CV Curation Engine & Production Database
v2.0.0 — Major Release
Complete overhaul of the member portal, CV curation workflow, public page consistency, and production deployment infrastructure. This release introduces the AGE performance tracking system, a new Problems page, enhanced CV upload with AI curation, and a fully reliable Vercel deployment pipeline with build-time database reconstruction.
Member Portal — Complete Overhaul
Authentication Fix
- Fixed blank page bug across all 13 member portal pages. Previously, failed authentication returned
null(white screen). Now shows a "Redirecting..." indicator and properly navigates to the activation page.
Navigation Restructure
- Sidebar reorganized with labeled "Assets" section grouping: Problems, Papers, Datasets, Tools
- Section dividers with labels for visual clarity
- Full nav: Dashboard → Onboarding → [Assets] Problems, Papers, Datasets, Tools → Ethics & Legal → Intelligence → Achievements → Profile
Dashboard — AGE Performance Scoring Grid
- New week-by-week AGE table (Achievement, Growth, Effort) for the current semester/quarter
- Scores rated 1–9 with color coding: green (7–9), yellow (4–6), red (1–3)
- Each score cell is hyperlinked to its Notion page for drill-down
- Current week column highlighted
- Milestones panel with upcoming deadlines sorted chronologically
- Goals summary with status badges (In Progress, Completed, Deferred)
New Problems Page (/member/problems)
- Capture research ideas from whiteboard sketches, audio recordings, documents, web links
- Source type badges: Text, Whiteboard, Audio, Document, URL
- Status workflow: Idea → Exploring → In Progress → Paused → Resolved
- Visibility toggle: shared with group or private
- Search, filter by status, community like counts for ranking
- Content automatically shared within the group unless marked private
Onboarding — Document Library
- Notion-hosted resource library grid below training modules
- Pre-configured resources: Lab Handbook, Computing Resources, Publication Guide, Presentation Templates, IRB & Ethics Guides, Tutorial Videos
- Links configurable by admin
Ethics & Legal — Templates & Reference Documents
- New templates grid with links to:
- IRB Protocol Template
- Copyright Transfer Form
- OSDD2 Agreement
- Data Use Agreement (DUA)
- NDA Template
- CITI Training Portal
Achievements — Awards & News Tab
- New "Awards & News" tab for poster/paper awards with photo sharing
- Alongside existing Publications, Software, and Patents tabs
Profile — Scholar Connections
- New Scholar Profile & Citations panel
- Integration cards for ORCID, Google Scholar, GitHub, Semantic Scholar
- Talent knowledge graph citation tracking
CV Upload — Enhanced Curation Workflow
Site Content Dashboard
- Live counts from the database displayed at the top: Publications (214), Talks (179), Honors (31), Software (19), Patents (7)
- Uses API
totalfield for accurate counts (not paginated array length)
Import Mode Selector
- Append: Add new items only (default)
- Override: Replace existing items with updated CV data
- Refresh: Full re-sync from CV
AI Curation Assistant
- Informational banner explaining the extraction → curation → publish workflow
- Items flow through three bins: Extracted (raw from CV) → In Curation (being reviewed) → Published (on public site)
Per-Section Finalize & Send
- Each category (Publications, Talks, Honors, Software, Patents) has its own "Finalize & Send" button
- Sections can be imported incrementally
- Sent sections marked with green checkmark
Item Bin System
- Per-item bin selector with three states and visual badges
- Bin count summary in section headers
- Approved content is never automatically withdrawn — synchronization is staging-controlled
Word Document Support
.docxupload now supported alongside PDF via the mammoth library- Both admin (
/api/cv-parse) and member (/api/member/cv-parse) endpoints updated
Public Pages — Consistent Hero Sections
- Added icon + text badge pill to Research page (Network icon, "Five interconnected lineages")
- Added icon + text badge pill to Publications page (BookOpen icon, "Peer-reviewed research")
- All public pages now share the same hero pattern: badge → heading → description → grid overlay
Production Deployment — Reliable Database Pipeline
Problem Solved
Prisma 7 with the libSQL adapter does not create all schema columns (notably curationStatus, sourceCV) in the SQLite database, even though they are defined in schema.prisma. This caused 500 errors on the publications and software API routes in production.
Solution: Build-Time Database Reconstruction
- All database tables exported to tab-delimited (TSV) files in
data/ - Full DDL schema exported to
data/schema.sql - Build script (
scripts/rebuild-db.mjs) runs on every deploy:- Deletes existing database
- Creates fresh database from
schema.sql(raw SQL, not prisma db push) - Imports all TSV data files using the
@libsql/client - Verifies column existence and data counts
- Prisma
generateruns BEFORE rebuild to avoid overwriting the database postinstallskips prisma generate (deferred to build script)outputFileTracingIncludesensures the database is bundled with serverless functions
Data Integrity
- 214 publications, 19 software, 179 talks, 31 honors, 7 patents verified on production
- All data preserved through TSV export/import cycle
- Schema includes all columns from the canonical
dev.db
Technical Details
Files Changed
- 22 source files modified, 1 new page created (
/member/problems) - 8 TSV data files + 1 SQL schema file added to
data/ - Build scripts:
scripts/rebuild-db.mjs,scripts/rebuild-db.sh - Dependencies added:
mammoth(Word doc parsing)
Breaking Changes
dev.dbis no longer tracked in git (replaced bydata/*.tsv+ build-time reconstruction)DATABASE_URLin.envnow points toaimeddata.db- Publications API no longer filters by
curationStatus(all items shown; field not reliable with libSQL adapter)
Full Changelog: v1.11.2...v2.0.0
v1.12.1 — Member Portal Overhaul, CV Upload Enhancements & Hero Consistency
Summary
Major update to the member portal, CV upload workflow, and public page consistency.
Member Portal — Fix Blank Pages & Restructure Navigation
- Fix authentication blank page across all 13 member pages: replaced silent
return nullwith a "Redirecting..." indicator when authentication fails, eliminating white/blank page issues - Restructure sidebar navigation with labeled "Assets" section grouping: Problems, Papers, Datasets, Tools — separated by dividers from other sections
- Navigation order: Dashboard → Onboarding → [Assets] → Ethics & Legal → Intelligence → Achievements → Profile
Dashboard — AGE Scoring Grid
- New week-by-week AGE (Achievement, Growth, Effort) performance table for current quarter goals
- Color-coded score cells: 🟢 green (7–9), 🟡 yellow (4–6), 🔴 red (1–3)
- Each score is hyperlinked to its Notion page for drill-down details
- Current week column highlighted for at-a-glance tracking
- Milestones panel showing upcoming deadlines sorted by date
- Goals summary panel with status badges
New Problems Page (/member/problems)
- Capture research ideas from whiteboard sketches, audio recordings, documents, and web links
- Source type badges: Text, Whiteboard, Audio, Document, URL
- Status workflow: Idea → Exploring → In Progress → Paused → Resolved
- Visibility toggle (Group shared vs Private)
- Search, filter by status, community like counts for ranking
Onboarding — Document Library
- New Notion-hosted document library grid below training modules
- Pre-configured resources: Lab Handbook, Computing Resources, Publication Guide, Presentation Templates, IRB & Ethics Guides, Tutorial Videos
Ethics & Legal — Templates Section
- New Templates & Reference Documents grid with links to:
- IRB Protocol Template, Copyright Transfer Form, OSDD2 Agreement
- Data Use Agreement, NDA Template, CITI Training portal
Achievements — Awards & News Tab
- New "Awards & News" tab for poster/paper awards with photo sharing capability
Profile — Scholar Connections
- New Scholar Profile & Citations panel with integration cards for ORCID, Google Scholar, GitHub, Semantic Scholar
- Talent knowledge graph citation tracking note
CV Upload — Enhanced Curation Workflow
- Live site content counts dashboard showing current database totals for publications (214), talks (179), honors (31), software (19), patents (7)
- Import mode selector: Append (add new only), Override (replace existing), Refresh (full re-sync)
- AI Curation Assistant banner explaining the extraction → curation → publish workflow
- Per-section "Finalize & Send" button for incremental imports
- Item bin system: Extracted → In Curation → Published — with visual badges and per-item bin selector buttons
- Section-level bin count summaries in collapsible headers
- Sent sections marked with green checkmark
- Word document (.docx) upload support via mammoth library alongside PDF
- Fixed site counts to use API
totalfield instead of paginated array length
Public Pages — Consistent Hero Sections
- Added icon + text badge pill to Research page (Network icon, "Five interconnected lineages")
- Added icon + text badge pill to Publications page (BookOpen icon, "Peer-reviewed research")
- Now consistent with all other public pages: Talks, Software, Training, News, Join, Service, Honors
Data Integrity
- All 214 publications, 19 software resources, 179 talks, 31 honors, 7 patents verified intact and VERIFIED in database
- Approved content cannot be automatically withdrawn — synchronization is controlled through the staging/curation bin system
Full Changelog: v1.11.2...v1.12.1
v1.11.2 — Unified Hero Sections & Dark Mode Fix
v1.11.2
Unified Hero Sections
All public pages now use identical hero formatting:
- Consistent vertical spacing (
md:py-36) matching Honors & Talks - Light theme: emerald-50 gradient with colored badge pill
- Dark theme: zinc-900/950 gradient (proper dark mode support)
- Each page has its own accent color badge (amber, violet, cyan, blue, teal, emerald)
Pages Fixed
- Service — was
py-24, nowpy-36; badge + dark mode added - News — was dark emerald gradient, now theme-aware with blue badge
- Join — was dark emerald gradient, now theme-aware with teal badge
- Team — was dark emerald gradient, now theme-aware with violet badge
- Software — was dark emerald gradient, now theme-aware with cyan badge
v1.11.1 — Owner Auth Bypass
v1.11.1
Owner privilege
jakechen@gmail.com(owner): Sign up skips email verification — goes straight to set passwordjakechen@uab.edu(admin): Standard email verification flow- Members: Email verification + optional invitation code
- Password reset: Still requires email code for all users (owner included)
v1.11.0 — Proper Sign-up/Login/Password Reset Auth
v1.11.0
Auth System Redesign
Sign Up flow:
- Enter institutional email + invitation code (optional for pre-registered/admin)
- Receive 6-digit confirmation code by email
- Enter code to verify email
- Set password (enter twice)
- Auto-login → dashboard
Sign In:
- Email + password → direct login
- Admin gets admin dashboard, members get member dashboard
Forgot Password:
- Enter email → receive 6-digit reset code
- Enter code + new password (twice) → auto-login
Technical
- Password hashing: Node.js
crypto.scrypt(no bcrypt dependency) - HMAC-signed verification codes in httpOnly cookies (stateless, no DB storage)
passwordHashandemailVerifiedfields added to LabMember schema- Email templates via Resend API (signup, login, reset variants)
- Admin/member role preserved in portal top-right corner
v1.10.1 — Member Portal Fix
v1.10.1
Fixes
- Removed CV Updates from member sidebar — this is an admin-only function
- Logo links: only the sidebar
ai.medlogo links back to the public site; top bar logo stays in portal (non-clickable) - Auth redirect: member pages redirect to
/adminlogin on auth failure instead of activation page - Public chrome hidden on all
/member/*and/admin/*routes (was missing 6 pages)
v1.10.0 — Onboarding, Team Sync & Member Dashboard
What's New in v1.10.0
Onboarding Training System
- Quiz-based onboarding for new lab members
- Training modules with knowledge checks
Team Page Sync with Database
- Dynamic PI card from LabMember DB
- Alumni section with auto-population
- Principal Investigator role support
Admin Members Enhancements
- Photo upload for member headshots
- Goal URLs and project time periods
- Improved member management UI
Member Dashboard Improvements
- Photo upload from member profile
- Goal links and digital assets section
- Enhanced profile management
CV Upload & Projects
- CV upload parsing on projects page
- Photo upload fixes for Vercel deployment
v1.8.0 — Box.com Integration & Auto Activation Codes
v1.8.0
- Box.com file integration for inquiry uploads
- SPARC2026 admin activation code
- Auto-generated member activation codes
- Admin passcode flow
v1.9.1 — Magic Link Login Fix
Bug Fixes
Magic Link Email Delivery
- Fixed email not being sent in production: RESEND_API_KEY was not reaching Vercel serverless functions via env vars alone — now injected via
next.config.tsas fallback - Fixed silent success when email service was unconfigured — now returns a clear error message to the user
- Replaced database-dependent magic code storage with HMAC-signed cookies, eliminating the need for a persistent database on Vercel serverless
How It Works
- User enters email + lab passcode (AIMED2026) → clicks "Send magic link by email"
- Server generates a 6-digit code, signs it with HMAC, stores the signature in a secure httpOnly cookie
- Code is emailed via Resend from
noreply@aimed-lab.org - User enters the code → server verifies HMAC signature → login complete
Domain Verified
aimed-lab.orgdomain fully verified on Resend (DKIM, SPF, DMARC)- Emails delivered from
AI.MED Lab <noreply@aimed-lab.org>
v1.9.0 — Magic Link Auth, Admin Roles & Content Curation
What's New
Magic Link Email Login
- Replaced password-based login with a two-step magic link flow
- Users enter email + lab passcode → receive a 6-digit code by email → verify to log in
- Works for both admins and regular lab members
- Codes expire after 10 minutes, one-time use
- Email sent via Resend from
noreply@aimed-lab.org
Admin Role Hierarchy
- Owner (permanent):
jakechen@gmail.com - Revokable Admins:
zsembay8@uab.edu,jakechen@uab.edu - Default lab passcode changed from
SPARC2026toAIMED2026
Content Curation Badges
- Publications, Software, and Honors pages now display ✨ New badges for items added in the last 30 days
- 🔄 Updated badges for items modified within 30 days (but created earlier)
- New
/api/curated-itemsendpoint for recently approved content
Infrastructure
- Added
MagicCodedatabase model for storing 6-digit verification codes - Integrated Resend email service with verified
aimed-lab.orgdomain - Added
resendnpm package - Graceful fallback: codes logged to console when no API key is configured (dev mode)
Previous Changes (since v1.8.0)
- Fixed LinkedIn and Google Scholar links in header and footer
- Added team headshot photos for Oishe, Nikhil, and John