Skip to content

slide-review-tool

Interactive web-based slide review tool for academic presentations. Review slides one-by-one with annotation capabilities and auto-save.

View on GitHub


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 T key 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:

python server.py --init

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:

brew install poppler

Linux:

sudo apt-get install poppler-utils

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

  1. Initialize: Run --init in your slides folder
  2. Generate: Create thumbnails with generate_thumbnails.py
  3. Review: Navigate slides with arrow keys or filmstrip
  4. Annotate: Mark slides with checkboxes (1-4) and add notes
  5. Export: Download instructions in your preferred format
  6. 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.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

Changelog

See CHANGELOG.md for version history.