An AI-powered web application for checking academic papers against camera-ready submission guidelines.
- 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)
- Grammar & Typo Check - Comprehensive grammar analysis
- Plagiarism Indicator - Flags potential plagiarism patterns
- Figure Caption Quality - Reviews caption completeness
- AI Suggestions - Generates improvement recommendations
- Python 3.11+
- Node.js 18+
- OpenAI API key (optional, for AI checks)
- Clone the repository
git clone <repository-url>
cd CameraReadyChecker- 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- Set up the frontend
cd frontend
npm install
cd ..- 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- Open your browser Navigate to http://localhost:5173
- Upload your camera-ready PDF
- Wait for the automated checks to complete
- Review the results and suggestions
- Download the report as Markdown
| 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 |
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}}'| 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) |
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
This tool is based on the camera-ready guidelines by Xtra Computing Group, covering:
-
General Preparation
- Revise according to reviews
- Add funding acknowledgements
- Pass plagiarism check (<20% similarity)
-
Formatting Requirements
- Remove orphans and widows
- Check page limits
- Verify font embedding
- Check number formatting
-
References
- Use full author lists (not "et al.")
- Consistent conference naming
- Include publication years
- Verify URL accessibility
-
Special Considerations
- Appendices usually not allowed
- Remove anonymous placeholders
- Add proper acknowledgements
Contributions are welcome! Please feel free to submit issues and pull requests.
MIT License
- Guidelines prepared by Shengliang Lu, Qinbin Li and Bingsheng He
- Xtra Computing Group, National University of Singapore