slide-review-tool
Interactive web-based slide review tool for academic presentations. Review slides one-by-one with annotation capabilities and auto-save.
Information
| Property | Value |
|---|---|
| Language | JavaScript |
| Stars | 0 |
| Forks | 0 |
| Watchers | 0 |
| Open Issues | 0 |
| License | MIT License |
| Created | 2025-12-25 |
| Last Updated | 2026-02-19 |
| Last Push | 2025-12-25 |
| Contributors | 1 |
| Default Branch | main |
| Visibility | private |
Datasets
This repository includes 4 dataset(s):
| Dataset | Format | Size |
|---|---|---|
| config.example.json | .json | 0.34 KB |
| course-slides.json | .json | 0.35 KB |
| single-folder.json | .json | 0.28 KB |
| workshop-materials.json | .json | 0.33 KB |
Reproducibility
This repository includes reproducibility tools:
- Python requirements.txt
Status
- Issues: Enabled
- Wiki: Enabled
- Pages: Disabled
README
Slide Review Tool
Interactive web-based tool for reviewing PDF slides one-by-one with annotation capabilities and auto-save.
Features
- Filmstrip navigation: Browse slides via thumbnail sidebar
- Annotation checkboxes: Mark slides for Delete, Reduce, Update, or Chart improvements
- Notes field: Add detailed instructions per slide
- Auto-save: Instructions saved to JSON files on slide change
- Keyboard shortcuts: Full navigation and action shortcuts
- Auto-detection: Automatically finds PDF files in your project
- Light/Dark theme: Toggle with
Tkey or button - Filter & Search: Filter slides by annotation type
- Multiple export formats: JSON, Markdown, CSV, Claude prompt
- Statistics panel: Track review progress
Quick Start
# 1. Clone or copy to your project
git clone https://github.com/Digital-AI-Finance/slide-review-tool.git
cd slide-review-tool
# 2. Install dependencies
pip install -r requirements.txt
# 3. Initialize in your slide project
cd /path/to/your/slides
python /path/to/slide-review-tool/src/server.py --init
# 4. Generate thumbnails
python /path/to/slide-review-tool/src/generate_thumbnails.py
# 5. Start the server
python /path/to/slide-review-tool/src/server.py
Open http://localhost:8080
Usage
Project Setup
Run --init in your slide project directory:
This will:
1. Scan for PDF files
2. Detect naming patterns (lesson, lecture, week, chapter, etc.)
3. Create slide-review.json configuration
4. Optionally generate thumbnails
Generate Thumbnails
# Generate all thumbnails
python generate_thumbnails.py
# Generate specific slide set
python generate_thumbnails.py lesson_01
# Force regenerate all
python generate_thumbnails.py --force
Configuration
Create or edit slide-review.json in your project:
{
"projectName": "My Course Slides",
"slides": {
"directories": ["slides/", "lectures/"],
"pattern": ".*\\.pdf$",
"exclude": ["draft_", "backup_"]
},
"thumbnails": {
"directory": ".slide-review/thumbnails",
"resolution": 150
},
"output": {
"directory": ".slide-review/instructions"
}
}
CLI Options
python server.py # Start on port 8080
python server.py --port 3000 # Custom port
python server.py --slides ./dir # Override slides directory
python server.py --output ./out # Override output directory
python server.py --no-autosave # Disable auto-save (manual export only)
python server.py --init # Initialize project
python server.py --version # Show version
Keyboard Shortcuts
| Key | Action |
|---|---|
| Left / k | Previous slide |
| Right / j | Next slide |
| Home | First slide |
| End | Last slide |
| PgUp | Back 10 slides |
| PgDn | Forward 10 slides |
| 1 | Toggle Delete |
| 2 | Toggle Reduce |
| 3 | Toggle Update |
| 4 | Toggle Chart |
| n | Focus notes field |
| Esc | Blur notes / Close modal |
| ? | Show help modal |
| t | Toggle light/dark theme |
| e | Export current slide set |
Export Formats
Export your review annotations in multiple formats:
- JSON: Structured data for programmatic processing
- Markdown: Human-readable documentation
- CSV: Spreadsheet-compatible format
- Claude: Ready-to-use prompt for Claude AI assistance
Use the "Export" button with format dropdown, or "All" button to export all slide sets.
Output Format
Instructions are saved as JSON files:
{
"slide_set": "lesson_01",
"title": "Introduction to Python",
"file": "lesson_01_intro.pdf",
"folder": "lectures",
"generated_at": "2024-01-15T10:30:00.000Z",
"total_slides": 25,
"reviewed_slides": 3,
"instructions": [
{
"slide": 5,
"actions": {
"delete": false,
"reduce": true,
"updateData": false,
"improveChart": false
},
"notes": "Reduce to 3 bullet points"
}
]
}
Supported Naming Patterns
The tool automatically detects common slide naming conventions:
| Pattern | Example |
|---|---|
| lesson | lesson_01_intro.pdf, lesson-5-data.pdf |
| lecture | lecture_01.pdf, lecture-2-intro.pdf |
| week | week_01.pdf, week-3-review.pdf |
| chapter | ch01.pdf, chapter_2.pdf |
| module | m01.pdf, module_3.pdf, mod-4.pdf |
| slide | slides_01.pdf, slide-2.pdf |
| part | part_1.pdf, part-02.pdf |
| unit | unit_01.pdf, unit-3.pdf |
| session | session_1.pdf, session-02.pdf |
| numbered | 01_intro.pdf, 02-basics.pdf |
| L-prefix | L01.pdf, L12_advanced.pdf |
Requirements
- Python 3.8+
- Flask
- pdf2image or poppler-utils (for thumbnail generation)
Installing Poppler
Windows:
# Using chocolatey
choco install poppler
# Or download from: https://github.com/oschwartz10612/poppler-windows/releases
macOS:
Linux:
Project Structure
slide-review-tool/
src/
server.py # Flask server with auto-detection
generate_thumbnails.py # Thumbnail generator
static/
index.html # Main UI
app.js # Application logic (vanilla JS)
style.css # Light/dark theme styling
requirements.txt
CLAUDE.md # Developer documentation
README.md
CHANGELOG.md
LICENSE
Workflow Example
- Initialize: Run
--initin your slides folder - Generate: Create thumbnails with
generate_thumbnails.py - Review: Navigate slides with arrow keys or filmstrip
- Annotate: Mark slides with checkboxes (1-4) and add notes
- Export: Download instructions in your preferred format
- Iterate: Make changes to your slides based on instructions
License
MIT License - see LICENSE file.
Contributing
See GitHub Issues for planned features and known issues.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Changelog
See CHANGELOG.md for version history.