Skip to content

hatimhtm/LessonForge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LessonForge

πŸŽ“ LessonForge

Open-source lesson management terminal for language teachers

A beautiful, offline-capable dashboard to organize lessons, track class time, manage student profiles, and store teaching resources β€” all in your browser.


Vite JavaScript CSS License


✨ Features

πŸ“– Lesson Management

  • Multi-page lessons β€” Organize content into separate pages (Warm-Up, Vocabulary, Grammar, etc.)
  • Rich-text editing β€” Bold, italic, underline, colored highlights, lists
  • Drag-and-drop reordering β€” Rearrange lesson pages by dragging
  • Import/Export β€” Share lesson plans as JSON files with colleagues

🧰 Toolkit

  • Resource cards β€” Quick-reference grammar rules, vocabulary, pronunciation tips
  • Categorized & filterable β€” Filter cards by type (Grammar, Vocabulary, Connectors, etc.)
  • Custom categories β€” Add your own card categories
  • Fully editable β€” Add, edit, and delete cards in edit mode

⏱️ Timer

  • Stopwatch mode β€” Count up during class
  • Countdown mode β€” Set a timer (e.g. 25 minutes) with visual warnings at 60s and expiry alert
  • Keyboard shortcut β€” Press 0 to start/stop

πŸ‘©β€πŸŽ“ Student Profiles

  • Save student name, level, and notes
  • Quick-switch between students from the toolbar dropdown
  • Stored in localStorage β€” persists across sessions

🎨 Design

  • Sakura theme β€” Soft pink/rose palette in light mode, deep rose in dark mode
  • Dark mode toggle β€” One-click switch
  • Print stylesheet β€” Ctrl+P prints just the lesson content, no UI chrome
  • Keyboard-first β€” Number keys to switch pages, E to edit, ? for shortcuts

πŸ’Ύ Data

  • LocalStorage persistence β€” All data auto-saved
  • Undo/Redo β€” Up to 50 history snapshots
  • JSON import/export β€” Portable lesson plans

πŸš€ Quick Start

# Clone the repo
git clone https://github.com/hatimhtm/LessonForge.git
cd LessonForge

# Install dependencies
npm install

# Start dev server
npm run dev

Open http://localhost:5173 in your browser.

Production Build

npm run build
npm run preview

⌨️ Keyboard Shortcuts

Key Action
1–9 Switch lesson page
0 Start/stop timer
E Toggle edit mode
? Show shortcuts modal
⌘Z / Ctrl+Z Undo
βŒ˜β‡§Z / Ctrl+Shift+Z Redo
⌘S / Ctrl+S Export lesson
Esc Close modals

πŸ“ Project Structure

LessonForge/
β”œβ”€β”€ index.html              # App entry point
β”œβ”€β”€ package.json            # Dependencies & scripts
β”œβ”€β”€ vite.config.js          # Build config
└── src/
    β”œβ”€β”€ main.js             # App controller
    β”œβ”€β”€ state.js            # State manager (localStorage, undo/redo)
    β”œβ”€β”€ data.js             # Demo content & defaults
    └── styles/
        β”œβ”€β”€ variables.css   # Design tokens & themes
        β”œβ”€β”€ layout.css      # Grid layout & modals
        β”œβ”€β”€ toolbar.css     # Toolbar & buttons
        β”œβ”€β”€ content.css     # Lesson content typography
        β”œβ”€β”€ toolkit.css     # Resource cards & filters
        β”œβ”€β”€ sidebar.css     # Navigation & checklist
        β”œβ”€β”€ shortcuts.css   # Shortcuts modal
        └── print.css       # Print stylesheet

πŸ”§ Customization

Adding Your Own Lessons

  1. Click Edit in the toolbar
  2. Create pages, add toolkit cards, customize the checklist
  3. Click Export to save your lesson as a JSON file
  4. Share the JSON with colleagues β€” they can click Import to load it

Changing the Theme

Edit src/styles/variables.css to customize colors, fonts, spacing, and border radius tokens.


πŸ“„ License

MIT β€” free for personal and commercial use.


Built with ❀️ for teachers everywhere

Portfolio LinkedIn

About

πŸŽ“ Lesson management terminal for language teachers β€” multi-page lessons, timer, student profiles, and offline storage

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors