Skip to content

jonshaffer/wgu-extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

289 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Unofficial WGU Extension Monorepo

Unofficial WGU Extension - Adds simple UI changes to WGU pages. Student-made tool for WGU students. Not endorsed by WGU.

This is a monorepo containing:

  • extension/: Browser extension built with WXT framework
  • functions/: Firebase Cloud Functions for backend services
  • site/: React Router website for public documentation
  • data/: Data collection and processing scripts

πŸ“‹ Project Specifications

This project follows GitHub Spec Kit principles for specification-driven development:

πŸ“š Documentation

Release & Deployment

  • Release Strategy Guide - Comprehensive release workflows, platform requirements, store submission process, and emergency procedures
  • Deployment Runbook - Step-by-step deployment procedures for all components
  • Release Management - Quick reference for conventional commits and release process

Architecture & Development

Workspace Documentation

πŸš€ Quick Start

# Install dependencies
pnpm install

# Development
pnpm run dev:extension    # Browser extension with hot reload
pnpm run dev:functions    # Firebase functions emulator
pnpm run dev:site        # Documentation website

# Build everything
pnpm run build

πŸ“¦ Data Version Control (DVC)

This repository uses DVC (Data Version Control) to manage large files and raw data. All catalog files, PDFs, and raw community data are stored in Google Drive and tracked via DVC to keep the Git repository size manageable.

Initial Setup

  1. Install DVC (if not using Nix flake):

    pip install dvc[gdrive]
  2. Pull data files:

    dvc pull

    On first run, DVC will:

    • Open your browser for Google authentication
    • Request permission to access Google Drive
    • Cache credentials for future use

    Note: No setup required for read-only access. The OAuth2 flow handles authentication automatically.

Working with DVC-Managed Files

DVC manages several types of files:

  • Catalog JSON files: Large parsed catalog data

  • PDF files: WGU catalog PDFs

  • Raw data: Community data from Discord, Reddit, WGU Connect, etc.

  • Before building or running scripts: Always run dvc pull to ensure you have the latest files

  • Automatic pulling: Build scripts include DVC pull commands where needed

  • Manual pulling: Run pnpm run catalog:ensure --filter=data

For Contributors

When modifying catalog files:

  1. Make your changes to the JSON files
  2. The files are already tracked by DVC, so changes will be detected
  3. Commit the .dvc files along with your code changes
  4. Push catalog file changes to DVC remote after validation:
    dvc push

πŸ—οΈ Project Structure

wgu-extension/
β”œβ”€β”€ extension/                 # Browser extension (WXT)
β”‚   β”œβ”€β”€ data/                 # Community data collection & processing
β”‚   β”‚   β”œβ”€β”€ catalogs/         # WGU catalog parsing & storage (DVC-managed)
β”‚   β”‚   β”œβ”€β”€ discord/          # Discord server data collection
β”‚   β”‚   β”œβ”€β”€ reddit/           # Reddit community data collection
β”‚   β”‚   β”œβ”€β”€ wgu-connect/      # WGU Connect resource extraction
β”‚   β”‚   └── unified/          # Unified community data
β”‚   β”œβ”€β”€ components/           # React components (Radix UI + Tailwind)
β”‚   β”œβ”€β”€ entrypoints/          # WXT entry points for different contexts
β”‚   β”œβ”€β”€ packages/types/       # Shared TypeScript types (published to npm)
β”‚   └── public/               # Static community/course data
β”œβ”€β”€ functions/                # Firebase Cloud Functions
β”‚   └── src/                  # TypeScript source for HTTP endpoints
└── site/                     # React Router website
    └── app/                  # Routes and components

πŸ› οΈ Development

Prerequisites

  • Node.js 22+ and pnpm 9+
  • Git
  • DVC (installed automatically with Nix flake or via pip)

Nix Development Environment (Recommended)

# Enter development shell with all tools
nix develop

# Or use direnv for automatic environment loading
direnv allow

Build Commands

See individual workspace READMEs for detailed commands:

πŸ“Š Data Processing Pipeline

The extension includes comprehensive data collection from:

  • WGU course catalogs (PDF parsing)
  • Discord community servers
  • Reddit WGU communities
  • WGU Connect study groups

Catalog Data Management

Catalog JSON files are large (several MB each) and are managed with DVC:

# Ensure catalog files are available
pnpm run catalog:ensure --filter=data

# Process new catalogs
pnpm run catalog:parse --filter=data <pdf-file>

# Generate reports
pnpm run catalog:report --filter=data

πŸ” Security

  • No personal data collection
  • Minimal browser permissions
  • Secure Firebase rules
  • Rate limiting on API endpoints

🀝 Contributing

This project follows specification-driven development. For new features:

  1. Review the Project Constitution for standards and principles
  2. Create or review feature specifications in .specify/features/ before implementation
  3. Use provided templates in .specify/templates/ for consistency

Development Process

  1. Fork the repository
  2. Create a feature branch
  3. Run dvc pull to get catalog files
  4. Review relevant specifications and create new ones if needed
  5. Make your changes following the project constitution
  6. Run tests and linting (pnpm run typecheck and pnpm run lint)
  7. Submit a pull request with links to relevant specifications

πŸ“„ License

MIT License - see LICENSE file for details

⚠️ Disclaimer

This is an unofficial tool created by WGU students. It is not endorsed by or affiliated with Western Governors University.

About

Unofficial WGU browser extension. Adds utilities to the WGU site for students.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •