DevPrep
  • Interview Prep
  • Projects
  • Resources
  • Pricing
  • About Us
Submit Question
DevPrep
  • Pricing
  • About Us
Submit Question
← From Beginner to Expert in Fundamentals of Frontend
  • Project 1: The Performance-First Dashboard
  • Project 2: Accessible Video Player
  • Project 3: Markdown Blog Engine
  • Project 4: Browser-Based Code Editor
  • Project 5: Multi-Tab Whiteboard
  • Project 6: Infinite Scroll Image Gallery
  • Project 7: Recipe Optimizer & Converter
  • Project 8: Budget Tracker with Charts
  • Project 9: Typing Speed Test
  • Project 10: Weather App with Time-Travel
  • Project 11: CSS Grid Layout Builder
  • Project 12: Password Vault (Frontend Only)
  • Project 13: Kanban Board (Trello Clone)
  • Project 14: Quiz App with Leaderboard
  • Project 15: Habit Tracker (GitHub Style)
  • Project 16: E-commerce Product Page
  • Project 17: Unit Converter (Expert Mode)
  • Project 18: Music Visualizer
  • Project 19: Flashcard Learning App
  • Project 20: Custom Form Validator
  • Project 21: Virtual Terminal
  • Project 22: Pomodoro Timer (Focus Pro)
  • Project 23: SVG Path Editor
  • Project 24: Movie Database Matchmaker
  • Project 25: Interactive Resume / Portfolio
  • Project 26: Recipe Scraper UI
  • Project 27: Crypto Tracker (Real-Time)
  • Project 28: Find My Pet (PWA)
  • Project 29: Markdown-to-Slide Tool
  • Project 30: Browser Health Dashboard
← From Beginner to Expert in Fundamentals of Frontend

Project 29: Markdown-to-Slide Tool

40 min read
Markdown ParsingSlide PresentationsBroadcastChannelKeyboard NavigationCSS TransitionsAuto-Layout

📋 Project Brief

Build a Markdown-to-slide presentation tool that converts a single Markdown file into an interactive slideshow with transitions, speaker notes, and keyboard navigation.

✅ Feature Requirements

Feature 1: Slide Parsing

Acceptance Criteria:

  • Slides are separated by --- (horizontal rule) in Markdown
  • Each slide supports: headings, bullet points, images, and code blocks
  • Nested slides (vertical) separated by ===
  • Speaker notes defined by Note: prefix (hidden from audience view)

Feature 2: Keyboard Navigation

Acceptance Criteria:

  • → or Space: next slide
  • ←: previous slide
  • ↓: next vertical slide
  • ↑: previous vertical slide
  • F: toggle fullscreen
  • S: open speaker notes window

Feature 3: Speaker Notes Pane

Acceptance Criteria:

  • Pressing S opens a separate window showing: current slide, next slide preview, speaker notes, and elapsed time
  • The notes window stays in sync with the main presentation
  • Uses window.open + BroadcastChannel for cross-window communication

Feature 4: Transitions

Acceptance Criteria:

  • Default transition: fade (300ms)
  • Optional: slide-left, slide-right, zoom
  • Transitions configurable per-slide via metadata:

Feature 5: Auto-Layout

Acceptance Criteria:

  • Content auto-fits to the slide dimensions (no overflow/scrolling)
  • Font size scales based on content length
  • Images scale proportionally within the slide area
  • Code blocks use a smaller font and horizontal scroll if needed

🧪 Testing Checklist

  • Unit test Markdown-to-slides parser (correct slide splitting, note extraction)
  • Unit test keyboard navigation state machine
  • Integration test: loading a Markdown file renders the correct number of slides
  • Test speaker notes window synchronization
  • A11y: slides navigable by keyboard; content readable by screen readers

Practice

  • JavaScript
  • DSA
  • Machine Coding
  • System Design

Resources

  • Learning Tracks
  • Articles
  • Roadmaps
  • Compare Concepts
  • Glossary
  • Developer Tools
  • All Questions

Company

  • About
  • Pricing

Legal

  • Privacy Policy
  • Terms of Service
DevPrep

© 2026 DevPrep. All rights reserved.