Skip to content

Releases: aimed-lab/aimed-org-web

v2.0.0 — Member Portal, CV Curation Engine & Production Database

06 Apr 01:51

Choose a tag to compare

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 total field 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

  • .docx upload 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:
    1. Deletes existing database
    2. Creates fresh database from schema.sql (raw SQL, not prisma db push)
    3. Imports all TSV data files using the @libsql/client
    4. Verifies column existence and data counts
  • Prisma generate runs BEFORE rebuild to avoid overwriting the database
  • postinstall skips prisma generate (deferred to build script)
  • outputFileTracingIncludes ensures 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.db is no longer tracked in git (replaced by data/*.tsv + build-time reconstruction)
  • DATABASE_URL in .env now points to aimeddata.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

05 Apr 19:04

Choose a tag to compare

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 null with 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 total field 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

05 Apr 17:27

Choose a tag to compare

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, now py-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

05 Apr 17:17

Choose a tag to compare

v1.11.1

Owner privilege

  • jakechen@gmail.com (owner): Sign up skips email verification — goes straight to set password
  • jakechen@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

05 Apr 16:57

Choose a tag to compare

v1.11.0

Auth System Redesign

Sign Up flow:

  1. Enter institutional email + invitation code (optional for pre-registered/admin)
  2. Receive 6-digit confirmation code by email
  3. Enter code to verify email
  4. Set password (enter twice)
  5. Auto-login → dashboard

Sign In:

  • Email + password → direct login
  • Admin gets admin dashboard, members get member dashboard

Forgot Password:

  1. Enter email → receive 6-digit reset code
  2. 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)
  • passwordHash and emailVerified fields 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

05 Apr 16:30

Choose a tag to compare

v1.10.1

Fixes

  • Removed CV Updates from member sidebar — this is an admin-only function
  • Logo links: only the sidebar ai.med logo links back to the public site; top bar logo stays in portal (non-clickable)
  • Auth redirect: member pages redirect to /admin login 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

05 Apr 16:04

Choose a tag to compare

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

05 Apr 16:04

Choose a tag to compare

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

03 Apr 17:21

Choose a tag to compare

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.ts as 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

  1. User enters email + lab passcode (AIMED2026) → clicks "Send magic link by email"
  2. Server generates a 6-digit code, signs it with HMAC, stores the signature in a secure httpOnly cookie
  3. Code is emailed via Resend from noreply@aimed-lab.org
  4. User enters the code → server verifies HMAC signature → login complete

Domain Verified

  • aimed-lab.org domain 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

03 Apr 16:04

Choose a tag to compare

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 SPARC2026 to AIMED2026

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-items endpoint for recently approved content

Infrastructure

  • Added MagicCode database model for storing 6-digit verification codes
  • Integrated Resend email service with verified aimed-lab.org domain
  • Added resend npm 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