Skip to content

neu-pdi/courseasaurus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Courseasaurus

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.

πŸš€ Quick Start

Prerequisites

  • Node.js 22+ (we recommend installing via nvm)
  • Git
  • A code editor (we recommend VS Code or Cursor)

Installation

npm install

Local Development

npm start

This starts a local development server and opens your browser to http://localhost:3000. Most changes are reflected live without restarting the server.

Build

npm run build

Generates static content into the build directory that can be served by any static hosting service.

Deployment

Deploy to GitHub Pages:

npm run deploy

Or with SSH:

USE_SSH=true npm run deploy

πŸ“ Site Structure

Content Collections

Courseasaurus 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
  • lecture-slides/ - RevealJS presentation slides (also markdown!)

  • labs/ - Lab assignments and exercises

    • Example: lab1-getting-started.md
  • assignments/ - Homework and project descriptions

    • Example: hw1-introduction.md
  • docs/ - General documentation

    • Currently contains the default intro page
  • instructor-manual/ - Comprehensive guide for course instructors

    • foundations/ - Setup, Git workflows, AI philosophy
    • site-management/ - Collections, refactoring, schedules, learning objectives
    • content-development/ - Creating assignments, notes, slides, maintaining skills
    • operations/ - Schedule analysis, staff planning, resource management, Discord setup

Configuration Files

  • 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

Source Code

  • src/pages/ - Custom pages (home, syllabus, overview)

    • index.tsx - Home page
    • syllabus.md - Course syllabus
    • overview.md - Course overview
  • src/components/ - React components

    • CoursePage/ - Course page layout
    • SchedulePage/ - Schedule visualization
    • RevealJS/ - Slide renderer
    • UpcomingWidget/ - Upcoming deadlines widget
    • LectureSummary/ - Lecture summary component
  • src/theme/ - Theme customizations

    • Root.tsx - App root wrapper
    • Html/ - HTML template customization
  • src/css/ - Custom stylesheets

    • custom.css - Site-wide styles

Plugins

  • plugins/courseasaurus/ - The Courseasaurus plugin

  • plugins/chakra-theme-sync/ - Dark mode synchronization

Static Assets

  • static/ - Static files served as-is
    • img/ - Images (favicon, logo, illustrations)
    • css/ - Additional stylesheets (e.g., react-chrono)

Build Output

  • build/ - Generated static site (after running npm run build)
    • Not tracked in Git
    • Ready for deployment

πŸŽ“ For Instructors: Getting Started

1. Read the Instructor Manual

Start with the comprehensive instructor manual at /instructor-manual:

2. Customize Your Course

  1. Update course.config.json

    • Change course code, title, semester
    • Set start and end dates
    • Define meeting patterns
    • Add holidays
    • Map lectures to dates
  2. Modify site metadata in docusaurus.config.ts

    • Site title and tagline
    • University/organization name
    • Links and social media
  3. Create your content

    • Add lecture notes to lecture-notes/
    • Create labs in labs/
    • Write assignments in assignments/
    • Build slides in lecture-slides/
  4. Customize pages

    • Edit src/pages/syllabus.md
    • Edit src/pages/overview.md
    • Customize home page in src/pages/index.tsx

3. Deploy Your Site

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

πŸ› οΈ Development Tips

Hot Reload

The development server (npm start) supports hot reloading:

  • Markdown changes: instant reload
  • Config changes: may require restart
  • Component changes: fast refresh

Common Commands

# 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 clear

Troubleshooting

Build errors?

  • Check course.config.json syntax (valid JSON, no trailing commas)
  • Ensure all referenced lecture files exist
  • Verify date formats are YYYY-MM-DD

Slides not rendering?

Schedule not generating?

  • Validate course.config.json dates
  • Check meeting day spellings (capitalized: "Monday", "Tuesday", etc.)
  • Ensure lecture IDs match file names

πŸ“š Documentation

🀝 Contributing

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

πŸ“„ License

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.

πŸ™ Acknowledgments

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors