2 Commits
Author SHA1 Message Date
git 02a62cce31 Add Hudra icons and update to v0.9.2 2026-07-21 20:57:41 +10:00
git 2802d780f3 Add project documentation and repository structure 2026-07-21 16:16:22 +10:00
13 changed files with 335 additions and 15 deletions
+20
View File
@@ -0,0 +1,20 @@
# VS Code
.vscode/
*.code-workspace
# Windows
Thumbs.db
Desktop.ini
# macOS
.DS_Store
# Build and release output
releases/*.zip
dist/
build/
# Temporary files
*.tmp
*.temp
*.log
+71 -13
View File
@@ -1,16 +1,74 @@
# Hudra changelog
# Hudra
## 0.9.0
Turn HTML lessons into classroom presentations.
- Removed the startup fade and wordmark so presentations begin immediately.
- Added live audience zoom controls from 70% to 150%.
- Added audience scroll up/down controls with press-and-hold support.
- Added mouse-wheel audience scrolling and Shift + wheel zooming over the current preview.
- Added Reset view and live view status.
- Kept the product name simply **Hudra**.
- Retained dual-screen presenter view, slide previews, timing, clicker support, audience blanking and video controls.
Build once.
Present everywhere.
## 0.9.1
- Added one narrowly scoped feature: slides containing exactly one image now fit that image to the full audience viewport using `object-fit: contain`.
- Landscape images fit to width and portrait images fit to height without cropping or distortion.
- All other slide types retain the original Hudra 0.9 behaviour.
---
## Why Hudra?
Teachers transitioning from OneNote and PowerPoint to QLearn often maintain two versions of the same lesson.
Hudra removes that duplication by turning the existing QLearn lesson into the presentation.
---
## Features
✔ Automatic slide generation
✔ Presenter dashboard
✔ Dual-screen presentation
✔ Timer & clock
✔ Audience controls
✔ Keyboard navigation
✔ Image optimisation
✔ Browser extension
---
## Philosophy
The HTML lesson is the source of truth.
Hudra doesn't replace your LMS.
It simply gives it Presentation Mode.
---
## Roadmap
Current release
Hudra 0.9.1
See ROADMAP.md
---
## Documentation
Vision
Architecture
Development Decisions
Roadmap
Contributing
---
## License
MIT
+40
View File
@@ -0,0 +1,40 @@
# Contributing to Hudra
Hudra is currently an early-stage project.
## Development principles
Changes should be:
- focused
- easy to understand
- independently testable
- backwards compatible where practical
## Before making a change
1. Create or identify an issue.
2. Describe the problem being solved.
3. Define clear acceptance criteria.
4. Make the smallest practical change.
5. Test against the stable lesson examples.
6. Confirm existing presentation behaviour still works.
## Commit messages
Use short, descriptive commit messages, for example:
- Fix audience zoom reset
- Add presenter keyboard shortcut
- Improve image-only slide sizing
- Update installation documentation
## Releases
Stable releases should include:
- an updated manifest version
- changelog entry
- Git commit
- Git tag
- release ZIP
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Kaden Napper
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+38
View File
@@ -0,0 +1,38 @@
# Hudra Roadmap
Hudra is developed incrementally, with stability and simplicity prioritised
over large feature releases.
## Current stable release
### Hudra 0.9.1
- Automatic slide generation from HTML headings
- Presenter dashboard
- Dual-screen presentation
- Current and next slide previews
- Timer and clock
- Audience zoom and scrolling
- Keyboard and presentation remote support
- Image-only slide optimisation
## Near-term priorities
### Hudra 0.10
- Presenter interface refinement
- Improved reliability
- Documentation
- Classroom testing
- Accessibility review
## Future exploration
- Video-focused slide layouts
- Presenter annotations
- Laser pointer
- Improved media handling
- Wider LMS compatibility
- Managed browser deployment
Future features will be developed and tested individually to avoid regressions.
+53
View File
@@ -0,0 +1,53 @@
# Hudra Architecture
## Overview
Hudra is a Manifest V3 browser extension that presents the existing DOM of an
HTML lesson.
It does not convert the lesson into a proprietary format.
## Slide detection
The current presentation model uses HTML headings:
- H1 identifies the lesson title
- H2 identifies the beginning of a new slide
- content following an H2 belongs to that slide until the next H2
## Main components
### background.js
Handles extension-level behaviour and presentation launch logic.
### controls.html
Provides the presenter dashboard interface.
### controls.css
Styles the presenter controls.
### controls.js
Manages presenter navigation, controls and audience communication.
### presenter.js
Creates and manages the audience presentation experience.
### manifest.json
Defines the extension metadata, permissions and version.
## Design constraints
Hudra should avoid:
- cloning complex media unnecessarily
- fragile LMS-specific DOM assumptions
- large content-detection systems
- destructive modification of the original lesson
New media features should be implemented and tested independently.
+31
View File
@@ -0,0 +1,31 @@
# Hudra Development Decisions
## Decision 001 — HTML is the source of truth
Hudra presents the existing lesson rather than requiring teachers to maintain
a separate presentation.
## Decision 002 — No proprietary lesson format
Teachers should continue authoring normal HTML in QLearn, Canvas or another
web-based platform.
## Decision 003 — Simplicity over automation
Hudra should avoid complicated content heuristics unless they are reliable and
provide a clear classroom benefit.
## Decision 004 — Stable features are added incrementally
Media-specific improvements should be developed and tested one at a time.
## Decision 005 — Hudra 0.9.1 is the stable baseline
Hudra 0.9.1 is the known-good version and is tagged in Git as v0.9.1.
## Decision 006 — Public and internal versions may differ
The visible product branding may show a major/minor version such as Hudra 0.9.
The browser extension manifest may use a patch version such as 0.9.1 for
maintenance and debugging.
+48
View File
@@ -0,0 +1,48 @@
# Hudra Vision
## Purpose
Hudra turns an existing HTML lesson into a classroom presentation.
It is designed primarily for QLearn and Canvas, while remaining compatible
with ordinary HTML pages.
## The problem
Teachers transitioning from OneNote and PowerPoint to QLearn often maintain
two versions of the same lesson:
- the QLearn page used by students
- the PowerPoint used for classroom presentation
This creates duplicated work and version-control problems.
## The idea
The HTML lesson should be the single source of truth.
Teachers should build the lesson once and use that same lesson:
- in the classroom
- online
- for students learning from home
- as a presentation
## Core message
> Build once. Present everywhere.
## Design principles
Hudra should be:
- simple
- fast
- reliable
- lightweight
- predictable
- easy for teachers to understand
Hudra should not introduce a proprietary lesson format.
It should enhance existing lesson content rather than rebuild or convert it.
Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

+13 -2
View File
@@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "Hudra",
"version": "0.9.1",
"version": "0.9.2",
"description": "Hudra turns Canvas/QLearn pages into responsive presentations with automatic pagination, dual-screen presenter view, audience controls, clicker support and local-only processing.",
"permissions": [
"activeTab",
@@ -13,8 +13,19 @@
"https://*.instructure.com/*",
"https://*.qlearn.eq.edu.au/*"
],
"icons": {
"16": "icons/HudraLogo16.png",
"32": "icons/HudraLogo32.png",
"48": "icons/HudraLogo48.png",
"128": "icons/HudraLogo128.png"
},
"action": {
"default_title": "Start or exit Hudra"
"default_title": "Start or exit Hudra",
"default_icon": {
"16": "icons/HudraLogo16.png",
"32": "icons/HudraLogo32.png",
"48": "icons/HudraLogo48.png"
}
},
"background": {
"service_worker": "background.js"