Skip to content

feat(publication): Implement Publication System with Advanced Filtering#16

Merged
TKanX merged 19 commits intomainfrom
feature/15-implement-publication-list-and-detail-pages
Jan 30, 2026
Merged

feat(publication): Implement Publication System with Advanced Filtering#16
TKanX merged 19 commits intomainfrom
feature/15-implement-publication-list-and-detail-pages

Conversation

@TKanX
Copy link
Copy Markdown
Member

@TKanX TKanX commented Jan 30, 2026

Summary:

Implemented a comprehensive publication management system, featuring a powerful filtered list view and detailed pages for individual publications. This feature set includes advanced client-side filtering, virtualized list rendering for performance with large datasets, and automated citation generation.

Changes:

  • Implemented Publication List Page (src/app/(public)/publications/page.tsx):

    • Created a responsive layout displaying a searchable, sortable list of publications.
    • Advanced Filters: Added PublicationFilters component supporting filtering by Year, Journal, Research Area, and text search (Title/Authors/Abstract) with debounce.
    • Virtualization: Integrated @tanstack/react-virtual in PublicationList to efficiently render large lists of publications, switching automatically based on dataset size.
    • Statistics: Displayed real-time counts of total publications and citations.
  • Implemented Publication Detail Page (src/app/(public)/publications/[doi]/page.tsx):

    • Designed a detail view featuring:
      • Citation Tools: CitationBox component that auto-generates citations in APA, MLA, and BibTeX formats with one-click copy.
      • Contextual Links: Cross-linking to related Members and Research Areas.
      • Rich Metadata: Display of abstract, journal info, DOI links, and citation counts.
      • SEO: Added JSON-LD structured data (ScholarlyArticle) for enhanced search visibility.
  • Developed Database Queries (src/lib/db/queries/publications.ts):

    • Implemented getPublications with dynamic Prisma where clause generation for filtering.
    • Created aggregation queries for filter options (distinct years, journals) and overall stats.
  • Enhanced UI Components:

    • Dropdown Menu: Added src/components/ui/dropdown-menu.tsx (Radix UI wrapper) for filter interfaces.
    • Publication Card: Updated PublicationCard to support text highlighting for search terms.
    • Citation Utility: Added src/lib/citation.ts to handle citation formatting logic.
  • Dependencies:

    • Added @tanstack/react-virtual, @radix-ui/react-dropdown-menu, @floating-ui/react-dom (and related deps) for virtualization and UI interactions.

TKanX added 16 commits January 30, 2026 01:30
…s in multiple formats with copy functionality
…mberDetailPage and remove unused PublicationItem component
@TKanX TKanX self-assigned this Jan 30, 2026
Copilot AI review requested due to automatic review settings January 30, 2026 10:51
@TKanX TKanX added the enhancement ✨ New feature or request label Jan 30, 2026
@TKanX TKanX linked an issue Jan 30, 2026 that may be closed by this pull request
12 tasks
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a comprehensive publication management system for the Materials and Process Simulation Center website, featuring advanced filtering capabilities, virtual scrolling for performance, and automatic citation generation in multiple academic formats (APA, MLA, BibTeX).

Changes:

  • Added publication list page with client-side filtering by year, journal, research area, and full-text search
  • Implemented publication detail pages with automatic metadata generation and citation formatting
  • Created reusable publication components with virtual scrolling optimization for large datasets
  • Refactored existing components to use the new shared PublicationCard component

Reviewed changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
src/types/index.ts Added new type definitions for publication list items and detail views
src/lib/metadata.ts Added metadata generation function for publication pages
src/lib/db/queries/publications.ts Created centralized database queries for publications with filtering support
src/lib/citation.ts Implemented citation formatting utilities for APA, MLA, and BibTeX formats
src/components/ui/dropdown-menu.tsx Added shadcn dropdown menu component for filter UI
src/components/publication/publication-list.tsx Implemented virtualized publication list with client-side filtering
src/components/publication/publication-filters.tsx Created advanced filter controls with debounced search
src/components/publication/publication-card.tsx Built reusable publication card component with search highlighting
src/components/publication/citation-box.tsx Implemented citation display with copy-to-clipboard functionality
src/components/publication/index.ts Added barrel export for publication components
src/app/(public)/publications/page.tsx Created main publications list page
src/app/(public)/publications/[doi]/page.tsx Implemented publication detail pages with SEO optimization
src/app/(public)/research/[slug]/publications-by-year.tsx Refactored to use shared PublicationCard component
src/app/(public)/members/[id]/page.tsx Refactored to use shared PublicationCard component
package.json Added dependencies for dropdown menus and virtual scrolling
package-lock.json Updated lockfile with new dependencies

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/lib/citation.ts
Comment thread src/lib/citation.ts
Comment thread src/components/publication/publication-filters.tsx
Comment thread src/components/publication/publication-filters.tsx
Comment thread src/lib/db/queries/publications.ts
Comment thread src/components/publication/publication-list.tsx
Comment thread src/lib/db/queries/publications.ts
@TKanX TKanX force-pushed the feature/15-implement-publication-list-and-detail-pages branch from db46a09 to 17f84d1 Compare January 30, 2026 18:28
@TKanX TKanX merged commit 1567676 into main Jan 30, 2026
2 checks passed
@TKanX TKanX deleted the feature/15-implement-publication-list-and-detail-pages branch January 30, 2026 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement ✨ New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Publication List and Detail Pages

2 participants