Modern CourseOps Platform - Manage your entire course curriculum using markdown, Git, and AI-assisted workflows.
This site is built with Docusaurus and powered by the Courseasaurus plugin for advanced course management features.
npm installnpm startThis starts a local development server and opens your browser to http://localhost:3000. Most changes are reflected live without restarting the server.
npm run buildGenerates static content into the build directory that can be served by any static hosting service.
Deploy to GitHub Pages:
npm run deployOr with SSH:
USE_SSH=true npm run deployCourseasaurus organizes course materials into separate markdown collections:
-
lecture-notes/- Lecture content and notes- Example:
l1-intro.md,l2-version-control.md - Supports MDX for interactive components
- Example:
-
lecture-slides/- RevealJS presentation slides (also markdown!)- Example:
intro.mdx - See lecture-slides/README.md for details
- Example:
-
labs/- Lab assignments and exercises- Example:
lab1-getting-started.md
- Example:
-
assignments/- Homework and project descriptions- Example:
hw1-introduction.md
- Example:
-
docs/- General documentation- Currently contains the default intro page
-
instructor-manual/- Comprehensive guide for course instructorsfoundations/- Setup, Git workflows, AI philosophysite-management/- Collections, refactoring, schedules, learning objectivescontent-development/- Creating assignments, notes, slides, maintaining skillsoperations/- Schedule analysis, staff planning, resource management, Discord setup
-
course.config.json- The heart of Courseasaurus- Course metadata (code, title, semester, dates)
- Section meeting patterns
- Holidays and breaks
- Lecture-to-date mappings
- Assignment due dates
- See plugins/courseasaurus/README.md for full schema
-
docusaurus.config.ts- Docusaurus configuration- Site metadata
- Theme configuration
- Plugin configuration (including Courseasaurus)
- Navbar and footer
-
sidebars.ts- Navigation sidebar configuration- Defines sidebars for each content collection
- Can use autogenerated or manual structure
-
tsconfig.json- TypeScript configuration
-
src/pages/- Custom pages (home, syllabus, overview)index.tsx- Home pagesyllabus.md- Course syllabusoverview.md- Course overview
-
src/components/- React componentsCoursePage/- Course page layoutSchedulePage/- Schedule visualizationRevealJS/- Slide rendererUpcomingWidget/- Upcoming deadlines widgetLectureSummary/- Lecture summary component
-
src/theme/- Theme customizationsRoot.tsx- App root wrapperHtml/- HTML template customization
-
src/css/- Custom stylesheetscustom.css- Site-wide styles
-
plugins/courseasaurus/- The Courseasaurus plugin- Generates course schedules from
course.config.json - Validates lecture file references
- Extracts learning objectives
- See plugins/courseasaurus/README.md for documentation
- See plugins/courseasaurus/QUICKSTART.md for quick start
- Generates course schedules from
-
plugins/chakra-theme-sync/- Dark mode synchronization
static/- Static files served as-isimg/- Images (favicon, logo, illustrations)css/- Additional stylesheets (e.g., react-chrono)
build/- Generated static site (after runningnpm run build)- Not tracked in Git
- Ready for deployment
Start with the comprehensive instructor manual at /instructor-manual:
-
Foundations & Setup - Begin here!
- Platform overview
- Installation guide
- Git workflows (explained from scratch)
- AI-assisted course management philosophy
-
- Adding content collections
- Refactoring content
- Managing schedules
- Learning objectives
-
AI-Assisted Content Development
- Creating assignments
- Developing lecture notes
- Building presentation slides
- Maintaining teaching skills
-
AI-Assisted Operations Planning
- Schedule impact analysis
- Staff planning (40+ TAs, 800+ students)
- Resource utilization
- Discord setup
-
Update
course.config.json- Change course code, title, semester
- Set start and end dates
- Define meeting patterns
- Add holidays
- Map lectures to dates
-
Modify site metadata in
docusaurus.config.ts- Site title and tagline
- University/organization name
- Links and social media
-
Create your content
- Add lecture notes to
lecture-notes/ - Create labs in
labs/ - Write assignments in
assignments/ - Build slides in
lecture-slides/
- Add lecture notes to
-
Customize pages
- Edit
src/pages/syllabus.md - Edit
src/pages/overview.md - Customize home page in
src/pages/index.tsx
- Edit
See the GitOps Workflow guide for:
- Setting up GitHub repository
- Configuring GitHub Actions for CI/CD
- Deploying to GitHub Pages
- Setting up private/public repository patterns
The development server (npm start) supports hot reloading:
- Markdown changes: instant reload
- Config changes: may require restart
- Component changes: fast refresh
# Install dependencies
npm install
# Start dev server
npm start
# Build for production
npm run build
# Serve production build locally
npm run serve
# Deploy to GitHub Pages
npm run deploy
# Clean build artifacts
npm run clearBuild errors?
- Check
course.config.jsonsyntax (valid JSON, no trailing commas) - Ensure all referenced lecture files exist
- Verify date formats are YYYY-MM-DD
Slides not rendering?
- Check RevealJS markdown syntax
- Ensure proper
---slide separators - See lecture-slides/README.md
Schedule not generating?
- Validate
course.config.jsondates - Check meeting day spellings (capitalized: "Monday", "Tuesday", etc.)
- Ensure lecture IDs match file names
- Courseasaurus Plugin README - Plugin configuration and schema
- Courseasaurus Plugin Quickstart - Quick start guide
- Instructor Manual - Comprehensive instructor guide
- Docusaurus Documentation - Official Docusaurus docs
This is a CourseOps platform designed to be forked and customized for your course. Feel free to:
- Fork this repository
- Customize for your institution
- Share improvements back to the community
- Adapt the instructor manual for your context
The code in this repository is licensed under the MIT License.
The content in the instructor-manual directory is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Built with:
- Docusaurus - Static site generator
- RevealJS - Presentation framework
- React - UI library
- Modern CourseOps practices and AI-assisted workflows
Need help? Check the Instructor Manual or the plugin documentation.