A plain HTML/CSS/JavaScript website for hosting and organizing course materials across 7 courses, deployable for free on GitHub Pages.
No build step, no framework, no server — every page is a static HTML file that works by itself in a browser or once pushed to GitHub Pages.
index.html— your profile/about pagecourses/index.html— a filterable list of all 7 coursescourses/course-1-physics/— a fully built example course demonstrating every feature: unit navigation, collapsible sections, an in-page filter, an embedded self-check quiz, an interactive projectile-motion simulator, and downloadable filescourses/course-2/throughcourses/course-7/— starter templates for your other six courses (same pattern, placeholder content)search.html— search across every course's units, quizzes, and filesassets/css/style.css— one shared stylesheet for the whole siteassets/js/— small vanilla-JS modules: navigation, collapsible sections, the quiz widget, search/filter, and the projectile simulatorscripts/build_search_index.py— regeneratesassets/data/search-index.jsonafter you add or edit content (Python 3, no extra packages needed)
See DEPLOY.md for how to put this on GitHub Pages, and CONTENT-GUIDE.md for how to fill in your real course content.
Because the pages use fetch() for search, opening index.html directly
with file:// will work for most things but the search page needs a local
server. From the project folder:
python3 -m http.server 8000Then open http://localhost:8000/ in your browser.
- Clickable navigation between units/weeks → the sidebar in every course
page (
.unit-nav), built from plain anchor links to each unit'sid - Expandable/collapsible sections → each unit is a native HTML
<details>/<summary>element (works even with JavaScript disabled);assets/js/collapsible.jsadds "Expand all / Collapse all" buttons - Search or filter across materials →
search.htmlsearches everything site-wide; each course page also has its own in-page filter box - Embedded quizzes with instant feedback →
assets/js/quiz.js, driven by a plain JSON array per quiz, no backend or gradebook involved - Interactive diagrams/simulations →
assets/js/projectile-sim.js, a canvas-based projectile motion visualizer with adjustable velocity, angle, and gravity - Downloadable files → plain links to PDFs/slides in each course's
files/folder