Skip to content

Repository files navigation

ProctorDocFix (PDF)

ProctorDocFix (PDF) is a modern web application for organizing academic PDFs through automatic metadata extraction and intelligent file renaming.

ProctorDocFix Screenshot

Features

  • Smart Metadata Extraction: Automatically extracts metadata from academic PDFs using multiple sources
  • Comprehensive Source Coverage: Supports various journal formats, including specialized handling for Elsevier/Lancet publications
  • Multi-Source Processing: Extracts metadata in order of reliability:
    1. DOI lookup (Crossref)
    2. arXiv API for preprints
    3. Google Scholar search
    4. Direct PDF text extraction
  • Advanced DOI Detection: Enhanced algorithms to extract DOIs even when broken across lines or formatted uniquely
  • Customizable Renaming Templates: Create personalized file naming conventions using metadata fields
  • Source Tracking: Shows which source provided the metadata for full transparency
  • Modern UI: Clean, responsive interface with minimal scrolling and intuitive design

Technology Stack

  • Frontend: React, TypeScript, TailwindCSS, shadcn/ui, React Query
  • Backend: Node.js, Express, TypeScript
  • PDF Processing: PDF parsing with metadata extraction
  • API Integrations: Crossref, arXiv, Google Scholar

Getting Started

Prerequisites

  • Node.js 18+ and npm

Installation

  1. Clone the repository:

    git clone https://github.com/stephonproctor/proctordocfix.git
    cd proctordocfix
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev
  4. Open your browser to http://localhost:5000

Deployment to Netlify

  1. Push your code to a GitHub repository

  2. Connect your GitHub repository to Netlify:

    • Sign in to Netlify and click "New site from Git"
    • Choose GitHub and select your repository
    • Set build command to: npm run build
    • Set publish directory to: dist/client
  3. Advanced options (optional):

    • Set environment variables if needed
    • Configure site name in site settings
  4. Deploy. Netlify will automatically build and deploy your site.

Note: The repository already includes a netlify.toml configuration file that handles:

  • Build settings
  • Redirects for the SPA
  • Function configuration for server API

Usage

  1. Upload Papers: Drag and drop or select academic PDFs (up to 10 at a time)
  2. Customize Templates: Set your preferred filename format using metadata variables
  3. Process Files: Files are automatically processed to extract metadata
  4. Edit Metadata: Manually adjust metadata if needed
  5. Download: Get your renamed files individually or all at once as a ZIP

Filename Template Variables

  • {title} - Paper title
  • {author} - First author's last name
  • {year} - Publication year
  • {journal} - Journal name
  • {doi} - DOI (Digital Object Identifier)

Special Features

Advanced DOI Detection

ProctorDocFix uses sophisticated algorithms to extract DOIs even when they're split across lines or formatted in publisher-specific ways:

  • Handles line breaks in DOI URLs
  • Recognizes Elsevier's unique S-number format (e.g., S2589-7500(22)00153-4)
  • Detects DOIs in PIIS-formatted filenames common in Lancet/Elsevier articles

Multi-Source Metadata Extraction

The application intelligently combines metadata from various sources in order of reliability to ensure the most accurate information for your files.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Created by Stephon Proctor
  • Special thanks to Crossref and arXiv for their APIs

Contact

For questions or support, please create an issue in the GitHub repository.

Releases

Packages

Contributors

Languages