Work regarding the education subgroup. This repository hosts the Astro-based website for the UC OSPO Education Lesson & Pathways.
- Draft inventory of lessons - lessons pulled from existing Carpentries & Code Refinery.
- Process we are following - these are converted to issues in the GH project.
- Meeting notes
- Comprehensive Lesson Library: Browse open source education lessons from The Carpentries, CodeRefinery, and other sources
- Learning Pathways: Curated sequences of lessons organized by topic and skill level
- Dynamic Data Integration: Content automatically synced from Google Sheets for easy updates
- Advanced Search & Filtering: Find lessons by topic, source, duration, and difficulty level
- Responsive Design: Optimized experience across desktop, tablet, and mobile devices
- Automated Quality Checks: Built-in validation for data quality, links, and build integrity
This project was built with Astro.
- Node.js (version 20 or higher)
- npm (Node Package Manager)
- Git for version control
- Basic familiarity with:
- Command line interface
- Astro framework (helpful but not required)
- TypeScript (for contributing to the codebase)
- Clone the project:
git clone https://github.com/UC-OSPO-Network/education.git
- Go to the project directory:
cd education - Install dependencies:
npm install
The project includes automated validation scripts to ensure data quality and build integrity:
# Validate data source from Google Sheets
node .github/scripts/validate-data.mjs
# Run TypeScript type checking
npx astro check
# Build the site
npm run build
# Validate build output (critical pages)
node .github/scripts/validate-build.mjs
# Check for broken internal links
node .github/scripts/check-links.mjsThese checks run automatically on pull requests via GitHub Actions.
To run the project locally in development mode:
npm run devThis will start a local development server, usually at http://localhost:4321.
This project is configured for deployment to GitHub Pages via GitHub Actions:
- Production: Automatically deploys from the
mainbranch to GitHub Pages - PR Previews: Pull requests automatically generate preview deployments via Vercel
The deployment workflow runs validation checks, builds the site, and publishes to GitHub Pages whenever changes are pushed to main.
Visit the live site to explore the lesson library:
- Browse by Category: Navigate through different topics and skill areas
- Search: Use the search functionality to find specific lessons
- Filter: Narrow results by source, duration, difficulty, or topic
- Learning Pathways: Follow curated sequences of lessons
Lesson data is managed through Google Sheets:
- Update the lesson inventory spreadsheet
- Changes are automatically pulled during the build process
- The site rebuilds and deploys when changes are pushed to the main branch
[TODO: Outline the future plans for this project. What's in the backlog, what's next? Refer to the Roadmap section in the README Guide.]
- Research user needs for new product features
- Develop initial product requirements document
We welcome contributions! Please see our guides below:
- Contributing Guide: How to get started with contributing to this project.
- Code of Conduct: Expectations for behavior within our community.
- Code of Conduct Guide: A guide for understanding and adapting our Code of Conduct.
- License: Project licensing information.
- Contributing Guide (Template Guide): A guide for understanding and adapting our Contributing Guide.
- License Guide: A guide for understanding and choosing a license.
- README Guide: A guide for writing a great README.
[TODO: Add frequently asked questions and their answers here.]
Have questions or suggestions? Reach out through:
- GitHub Issues: https://github.com/UC-OSPO-Network/education/issues
- GitHub Discussions: For general questions and community discussion
- Meeting Notes: Check our meeting notes for information about joining education subgroup meetings
This project builds upon and integrates content from:
- The Carpentries: Open source lessons for teaching foundational coding and data science skills
- CodeRefinery: Training materials for research software development
- Astro: Modern web framework for building fast, content-focused websites
- PapaParse: CSV parsing library for data integration
- Fuse.js: Lightweight fuzzy-search library for lesson discovery
Special thanks to all contributors and the open source education community.
Feel free to check our documentation or jump into our Discord server.