Skip to content
@OER-Forge

OER Forge

OER-Forge is a suite of tools to help authors create WCAG-compliant Open Educational Resources (OERs). The project is currently under development.

OER-Forge .github 🛠️

Build, share, and improve WCAG-compliant Open Educational Resources with Python!

Project Overview

OER-Forge is an open source Python toolkit for building, organizing, and publishing accessible Open Educational Resources (OERs). It helps authors create sites and documents that meet WCAG standards, with a focus on clean code, extensibility, and fun!

  • Accessible by design: All templates and outputs aim for WCAG compliance.
  • Database-driven navigation: Section indices, menus, and hierarchy are managed in SQLite for robust, extensible site structure.
  • Multi-format export: Markdown, DOCX, PDF, LaTeX, and more.
  • Built for maintainers: Clean Code, SOLID principles, and a growing suite of tests.
  • Fun to hack: Professional, but not boring. ☕️❤️

For full documentation and usage, see the main OER-Forge README.

Quick Start

  1. Clone the repo:
    git clone https://github.com/OER-Forge/OER-Forge.git
    cd OER-Forge
  2. Install dependencies:
    pip install -r requirements.txt
  3. Build the site:
    python build.py
  4. View your site: Open build/index.html in your browser.

Features

  • Section indices & navigation: DB-driven, supports arbitrary hierarchy, top-level and nested menus.
  • Accessibility: ARIA labels, alt text, color contrast, keyboard navigation.
  • Download options: Export pages in multiple formats (PDF, DOCX, TXT, etc.).
  • Dark mode: Toggle theme for better readability (issue #3).
  • Inline figures: Markdown images with alt text for accessibility (issue #4).
  • Extensible templates: Jinja2-based, easy to customize.
  • Robust build system: Automated, logs to log/ for debugging.

Open Issues & Roadmap

See all issues and contribute: GitHub Issues

Contributing

We welcome your feedback, suggestions, and pull requests! Check out good first issues or help wanted to get started.

License

Content and code are licensed under CC BY-NC-SA 4.0.


Made with ☕️ and ❤️ for students and educators everywhere. | Built with OER-Forge


OER-Forge Build & Robustness Checklist (dev branch)

Last updated: 2025-07-18

1. Build Pipeline

  • Run python make.py to build the site and generate all outputs.
  • Confirm all Markdown (.md) files are converted to all requested formats (PDF, DOCX, LaTeX, EPUB, TXT, etc.).
  • Check that images in Markdown files appear in DOCX, PDF, and LaTeX outputs.
  • Ensure all outputs are placed in the correct section-local directories (next to index.html and in files/ as needed).
  • Remove any duplicate or stub converter functions in convert.py.
  • Clean up debug prints and stub counters in production code.

2. Accessibility (WCAG) Verification

  • Run verify.py on all generated HTML files.
  • Log accessibility results in the database.
  • Inject accessibility badges/labels into HTML pages.
  • Generate and link per-page accessibility reports.
  • Summarize accessibility results in the admin/build report.

3. Admin Pages & Reporting

  • Implement or update build/admin/index.html to summarize all build and accessibility results.
  • Include links to all outputs and per-page accessibility reports.
  • Ensure the admin report is accessible and easy to scan.

4. Robustness & Cleanup

  • Remove obsolete outputs from build/ to match the current export plan.
  • Ensure repeated builds do not leave stale files or DB records.
  • Log all errors and reasons for failed conversions or checks (do not block build).

5. CLI & User Experience

  • Add CLI options for --dry-run, --force, and --report in make.py.
  • Ensure CLI is intuitive and safe (no destructive actions in dry-run mode).
  • Print build and accessibility summaries to console and write to admin report.

6. Documentation & Extensibility

  • Update README and in-code documentation to reflect the current pipeline, config, and output structure.
  • Document all new database fields and config options for future maintainers.
  • Ensure the system is extensible for new export types, accessibility tools, or reporting features.

7. Testing & Validation

  • Test all conversions and accessibility checks with real content, including edge cases (images, custom paths, forced conversions).
  • Move or refactor sections and confirm all internal links and assets remain valid.
  • Run repeated builds with config changes to ensure robustness.

Tip: Work through this checklist after every major refactor or before a release to ensure OER-Forge remains robust, accessible, and maintainable.


Filed automatically by GitHub Copilot based on user request.

Pinned Loading

  1. OER-Forge OER-Forge Public

    Forked from open-physics-ed-org/oer-forge

    Modular Python site builder for OER Forge 🚀 Parses config ⚙️, extracts TOC 📑, and converts educational content (Markdown, DOCX, Jupyter Notebooks) into multi-format outputs (HTML, PDF, DOCX, TEX, e…

    Jupyter Notebook 1 1

  2. docs docs Public

    Documentation for OER-Forge

    Jupyter Notebook 1

  3. raisemyhand raisemyhand Public

    Student question aggregator for live Q&A sessions in classrooms. Real-time upvoting, instructor dashboard, and session management.

    HTML 1

Repositories

Showing 6 of 6 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…