Spelling Lesson Maker

A web app for building and printing Spelling (also known as S2C) lessons. Create a document, add named sections, and fill each section with text and images. Export the finished lesson as a Word document (.docx) or print it to PDF.

Built with React + Vite + MUI, using docx for Word export and html2pdf.js (via mammoth docx→HTML conversion) for PDF printing.

Features

  • Document title - name the whole lesson.
  • Add sections with the floating + button; each new section is named in a dialog.
  • Text and image blocks inside any section. Add, caption, reorder, or delete them.
  • Search images - find free Pixabay images from within a section and insert one with a click (see Search images).
  • Question blocks - add structured questions in five types (see Question blocks).
  • AI text suggestions - generate a block of lesson text from a section's title with one click (see AI text suggestions).
  • AI question suggestions - generate a structured question of any type from a section's title and existing text (see AI question suggestions).
  • AI lesson ideas - get a batch of lesson topic suggestions for an age range to start from a blank document (see AI lesson ideas).
  • Reorder / delete sections and blocks with inline controls.
  • Export DOCX - downloads a formatted .docx.
  • Print PDF - builds the docx, converts it to HTML with mammoth, then renders a PDF with html2pdf.js so the printout mirrors the Word document.
  • Save to Google Docs - signs in with Google (OAuth2) and uploads the docx to the user's Drive, converting it to a native Google Doc (see Save to Google Docs).
  • Lesson hub - browse lessons other users have published, preview any of them, and publish your own once signed in (see Lesson hub & accounts).
  • Accounts - passwordless magic-link sign-in (Supabase Auth) on a dedicated login page; required only to publish to the hub (see Lesson hub & accounts).
  • Profiles & display names - every user picks a public display name and an optional bio, with a public profile page listing their lessons (see Profiles & display names).
  • Notifications - an in-app bell for replies, comments on your lessons, and links sent to you (see Notifications).
  • Moderation - moderator/admin tools for comments, shadowbanning, and bans (see Moderation).
  • Live collaboration - invite others to edit a lesson with you in real time over a peer-to-peer (PeerJS/WebRTC) connection, with live cursors and an in-session chat panel. People you invite only start collaborating once you add them to the lesson (see Live collaboration).
  • Auto-save - your work is kept in localStorage between reloads.