Skip to content

bingshenghe/CameraReadyChecker

Repository files navigation

Camera Ready Checker

An AI-powered web application for checking academic papers against camera-ready submission guidelines.

Features

Python-Based Checks (Fast & Efficient)

  • Font Embedding - Verifies all fonts are embedded in the PDF
  • PDF/A Compliance - Checks PDF/A archival format requirements
  • Page Numbers - Detects page numbers that may need removal
  • Page Limit - Validates document is within page limits
  • Number Format - Ensures large numbers use comma separators (1,000,000)
  • Decimal Precision - Checks for consistent decimal places
  • Reference Format - Detects "et al.", missing years, etc.
  • URL Accessibility - Verifies URLs are accessible
  • Acknowledgement Section - Checks for funding acknowledgements
  • Appendix Detection - Flags appendices (usually not allowed)
  • Author Anonymity - Detects remaining anonymous placeholders
  • Orphan/Widow Detection - Finds typography issues
  • Content Boundaries - Checks for text outside margins
  • Conference Name Consistency - Validates naming (NIPS vs NeurIPS)

AI-Based Checks (ChatGPT/Qwen)

  • Grammar & Typo Check - Comprehensive grammar analysis
  • Plagiarism Indicator - Flags potential plagiarism patterns
  • Figure Caption Quality - Reviews caption completeness
  • AI Suggestions - Generates improvement recommendations

Quick Start

Prerequisites

  • Python 3.11+
  • Node.js 18+
  • OpenAI API key (optional, for AI checks)

Installation

  1. Clone the repository
git clone <repository-url>
cd CameraReadyChecker
  1. Set up the backend
# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Copy environment file and add your API keys
cp .env.example .env
# Edit .env with your API keys
  1. Set up the frontend
cd frontend
npm install
cd ..
  1. Run the application
# Terminal 1: Start backend
cd backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000

# Terminal 2: Start frontend
cd frontend
npm run dev
  1. Open your browser Navigate to http://localhost:5173

Usage

  1. Upload your camera-ready PDF
  2. Wait for the automated checks to complete
  3. Review the results and suggestions
  4. Download the report as Markdown

Configuration

Environment Variables

Variable Description Default
OPENAI_API_KEY OpenAI API key for AI checks None
OPENAI_MODEL OpenAI model to use gpt-4-turbo-preview
QWEN_API_KEY Qwen API key (alternative) None
DEFAULT_AI_PROVIDER Default AI provider openai
MAX_FILE_SIZE_MB Maximum upload size 50
DATABASE_URL Database connection string sqlite:///./camera_ready_checker.db

Page Limit Configuration

Set page limits via the API:

curl -X POST "http://localhost:8000/api/check/JOB_ID" \
  -H "Content-Type: application/json" \
  -d '{"config": {"page_limit": 10}}'

API Endpoints

Endpoint Method Description
/api/upload POST Upload a PDF file
/api/check/{job_id} POST Run checks on uploaded PDF
/api/results/{job_id} GET Get check results
/api/checkers GET List available checkers
/api/report/{job_id} GET Download report (md/json)

Project Structure

CameraReadyChecker/
├── backend/
│   ├── main.py              # FastAPI application
│   ├── config.py            # Configuration settings
│   ├── models.py            # Data models
│   ├── database.py          # Database setup
│   └── checkers/
│       ├── base.py          # Base checker class
│       ├── engine.py        # Checker orchestration
│       ├── python_checkers/ # Python-based checkers
│       └── ai_checkers/     # AI-based checkers
├── frontend/
│   ├── src/
│   │   ├── App.jsx          # Main application
│   │   └── components/      # React components
│   └── package.json
├── test/                    # Test PDF files
├── output/                  # Generated reports
├── requirements.txt
└── README.md

Guidelines Reference

This tool is based on the camera-ready guidelines by Xtra Computing Group, covering:

  1. General Preparation

    • Revise according to reviews
    • Add funding acknowledgements
    • Pass plagiarism check (<20% similarity)
  2. Formatting Requirements

    • Remove orphans and widows
    • Check page limits
    • Verify font embedding
    • Check number formatting
  3. References

    • Use full author lists (not "et al.")
    • Consistent conference naming
    • Include publication years
    • Verify URL accessibility
  4. Special Considerations

    • Appendices usually not allowed
    • Remove anonymous placeholders
    • Add proper acknowledgements

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

License

MIT License

Acknowledgements

  • Guidelines prepared by Shengliang Lu, Qinbin Li and Bingsheng He
  • Xtra Computing Group, National University of Singapore

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors