Skip to content

glowingkitty/WebSlidePresenter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿงญ WebSlidePresenter

Professional web-based presentation tool with dual-window mode, intelligent timing management, and speaker notes. Built with SvelteKit for a seamless, offline-capable experience.

License: MIT Made with SvelteKit

๐Ÿš€ Try it Live


โšก Quick Start (5 Minutes)

Installation

git clone https://github.com/glowingkitty/WebSlidePresenter.git
cd WebSlidePresenter/app
npm install
npm run dev

Open http://localhost:5173

Basic Usage

  1. Load PDF: Click "๐Ÿ“ Load PDF" or drag & drop a PDF file onto the preview area
  2. Quick Timing: Click "Auto-fill" โ†’ Enter duration (e.g., 30 minutes)
  3. Open Audience View: Click "๐Ÿ‘ฅ Audience" โ†’ Press F for fullscreen
  4. Present: Click "Start" โ†’ Use โ†’ / Space / navigation buttons to advance

Pro Tips

  • Drag & Drop: Simply drag a PDF file onto the app to load it instantly
  • Persistence: Your presentation persists across page reloads automatically
  • Pause & Adjust: Click "Pause" during presentation to adjust timing on the fly
  • Save Config: Click "๐Ÿ’พ Save" to save timing + notes for reuse
  • Navigation Buttons: Use on-screen buttons for touch/mouse control
  • Clear Data: Click "๐Ÿ—‘๏ธ Clear All" to reset everything when starting fresh

โœจ Features

๐ŸŽฏ Smart Timing System

  • Milestone-Based Timing: Set target times only for key slides, others auto-calculate via interpolation
  • Edit & Present Modes: Clean separation between setup and presentation
  • Pause & Adjust: Pause during presentation to fine-tune timing without losing progress
  • Real-Time Pacing: Color-coded indicators (โš ๏ธ Too Fast / โœ“ Ahead / โ‰ˆ On Time / โš  Behind)
  • Timing Overview: See all slide timings at a glance with milestone indicators (๐Ÿ“ vs ๐Ÿ”„)
  • Minutes-Only Display: Shows minutes during presentation, countdown in last minute

๐Ÿ–ฅ๏ธ Dual-Window Presentation

  • Presenter View: Full control with slide preview, notes, timer, and timing info
  • Audience View: Clean, distraction-free slide display
  • Synchronized Navigation: BroadcastChannel API keeps windows in sync
  • Mini Next-Slide Preview: PowerPoint-style preview in presenter view

๐Ÿ“ Speaker Notes

  • Per-Slide Notes: Editable speaker notes for each slide
  • Auto-Save: Notes save automatically to localStorage
  • Persistent: Notes persist across sessions

๐Ÿ’พ Configuration Management

  • YAML Export/Import: Save timing and notes together
  • Config Files: Reuse configurations across presentations
  • Easy Sharing: Share timing plans with collaborators

๐ŸŽจ User Experience

  • Drag & Drop Upload: Drag PDF files directly onto the app to load them
  • Navigation Buttons: On-screen buttons for mouse/touch navigation (โฎ๏ธ โ—€๏ธ โ–ถ๏ธ โญ๏ธ)
  • Keyboard Navigation: Full keyboard control (arrows, space, home, end)
  • Responsive Design: Fully optimized for mobile, tablet, and desktop
  • Persistent State: Presentations automatically restore after page reload
  • Progress Tracking: Visual progress bar with slide counter
  • Boundary Protection: Can't navigate beyond first/last slide
  • Clear All Data: One-click button to reset all data and start fresh

๐Ÿ“ฑ Progressive Web App (PWA)

  • Installable: Install as desktop/mobile app
  • Offline Support: Works without internet connection
  • Service Worker: Caches assets for fast loading

๐Ÿ”’ Privacy & Security

  • No Tracking: Zero analytics or external connections
  • Fully Static: No backend server required
  • Local Storage: All data stays on your device
  • No External CDNs: All dependencies bundled

๐Ÿ“– Usage Guide

1. Load Your Presentation

Option A: Click to Upload

  1. Click "๐Ÿ“ Load PDF" button in the top toolbar
  2. Select your PDF file from the dialog
  3. Wait for slides to render (progress indicator shows status)

Option B: Drag & Drop (Recommended)

  1. Drag your PDF file from your file explorer
  2. Drop it onto the slide preview area (highlighted in blue when dragging)
  3. Watch as the app processes your slides with a progress bar

Note: Your presentation will automatically persist across page reloads, so you can close and reopen your browser without losing your slides.

2. Set Up Timing

Option A: Quick Setup - Auto-fill (Fastest)

  1. Click "Auto-fill" button
  2. Enter total presentation duration (e.g., 30 minutes)
  3. System automatically distributes timing evenly

Option B: Smart Setup - Milestones (Best)

  1. Navigate to key slides (section starts, transitions)
  2. For each key slide, enter target time in the Target input field
  3. Other slides auto-calculate between milestones
  4. Indicators: ๐Ÿ“ = Milestone (you set), ๐Ÿ”„ = Auto-calculated

Example:

Slide 1:  0 min   ๐Ÿ“ (you set)
Slide 2:  2 min   ๐Ÿ”„ (auto)
Slide 3:  5 min   ๐Ÿ”„ (auto)
Slide 4:  10 min  ๐Ÿ“ (you set)
Slide 5:  15 min  ๐Ÿ”„ (auto)

Save Your Configuration

  1. Click "๐Ÿ’พ Save" button
  2. Downloads YAML file with timing and notes
  3. Reuse later with "๐Ÿ“‚ Config" button

Clear All Data

Need to start fresh? Click "๐Ÿ—‘๏ธ Clear All" to remove:

  • All slides
  • Speaker notes
  • Timing configuration
  • Persistent state

3. Present

Open Audience View

  1. Click "๐Ÿ‘ฅ Audience" button
  2. Move window to second screen/projector
  3. Press F for fullscreen

Start Presenting

  1. Click "Start" button to begin timer
  2. Navigate slides using either:
    • Keyboard: โ†’ or Space (Next), โ† (Previous), Home (First), End (Last)
    • On-Screen Buttons: โฎ๏ธ (First), โ—€๏ธ Prev, Next โ–ถ๏ธ, โญ๏ธ (Last)
    • Timing Overview: Click any slide in the sidebar to jump directly to it

Monitor Your Pacing

  • โš ๏ธ Slow down! - More than 2 min ahead (orange)
  • โœ“ Ahead of schedule - 0.5-2 min ahead (green)
  • โ‰ˆ On schedule - Within ยฑ0.5 min (yellow)
  • โš  Behind schedule - More than 0.5 min behind (red)

Pause to Adjust (Pro Tip!)

  1. Click "Pause" during presentation
  2. Returns to edit mode but keeps elapsed time
  3. Adjust target times if needed
  4. Click "Resume" to continue from where you paused
  5. Or "Stop" to reset timer to 0

4. Manage Speaker Notes

  • Click in notes area below slide
  • Type your notes (auto-saves as you type)
  • Notes persist across sessions

โŒจ๏ธ Keyboard Shortcuts

Presenter View

Key Action
โ†’ or Space Next slide
โ† Previous slide
Home First slide
End Last slide
? Show keyboard shortcuts

Audience View

Key Action
F Toggle fullscreen

๐ŸŽจ UI Modes Explained

โœ๏ธ Edit Mode (Fresh Start)

  • Timer at 0
  • Can edit target times
  • Available: Auto-fill, Clear All (if times set), Start

โฑ๏ธ Presenting

  • Timer running
  • Target times locked
  • Shows: Elapsed, Target, Remaining, Pacing
  • Available: Pause

โœ๏ธ Edit Mode (Paused)

  • Timer paused at current time
  • Can edit target times (fine-tune on the fly!)
  • Shows: Elapsed time preserved
  • Available: Auto-fill, Clear All, Resume, Stop

๐Ÿ› Troubleshooting

PDF Not Loading

  • Check file size (very large PDFs may take time)
  • Ensure file is a valid PDF
  • Try drag & drop instead of file dialog
  • Check browser console for errors

Presentation Not Persisting

  • Check if IndexedDB is enabled in your browser
  • Ensure you're not in private/incognito mode
  • Try clicking "๐Ÿ’พ Save" to export configuration as backup

Audience View Not Syncing

  • Ensure both windows are from same origin
  • Check that BroadcastChannel is supported
  • Refresh both windows

Timer Pacing Issues

  • Set target times for at least 2 slides
  • Ensure times increase sequentially
  • Use Auto-fill for quick setup

Storage Quota Exceeded

  • IndexedDB is used for large data
  • Click "๐Ÿ—‘๏ธ Clear All" to free up space
  • Check available storage in DevTools

Mobile/Tablet Issues

  • App is fully responsive and should work on all devices
  • Use on-screen navigation buttons instead of keyboard
  • Rotate to landscape for better slide visibility

๐Ÿ™ Acknowledgments

About

A web based tool to present slides while keeping track of time.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors