A comprehensive Google Sheets-based college selection and tracking system powered by the U.S. Department of Education's College Scorecard API.
- College Data Import: Automatically fetch comprehensive college data including academics, admissions, and financial information
- Smart Search: Intelligent college name matching with fallback strategies
- Data Validation: Robust error handling and data quality checks
- Admission Chances: Calculate admission probability based on your academic profile
- Merit Aid Likelihood: Predict scholarship opportunities using academic fit analysis
- Personal Profile Integration: Centralized academic and financial information
- Financial Safety Analysis: Assess affordability with 4-year burden calculations
- Aid Requirements Tracking: Monitor FAFSA, CSS Profile, and verification status
- Cost Comparison: Compare total cost of attendance across institutions
- Tracker Sheets: Financial Aid, Campus Visits, Application Timeline, Scholarships
- Weighted Scoring: Customizable ranking system for decision-making
- Progress Monitoring: Visual indicators for application completion status
- Google Account with Google Sheets access
- College Scorecard API key (free from api.data.gov)
- Node.js 14+ and npm (for developers)
-
Get the Template
- Get the current template from college-tools.granite-hq.com/getting-started and copy it to your Google Drive
- The template comes pre-configured with all sheets and features ready to use
-
Run Quick Start
- Open your copied sheet and go to College Tools β π Quick Start (API Key Check)
- This will check your setup status and guide you to the next steps (takes < 5 seconds)
-
Add Your API Key (if needed)
- Get your free API key from https://api.data.gov/signup/
- Create a sheet named "ScorecardAPIKey"
- Paste your API key in cell A1
- Run Quick Start again to confirm
-
Start Using College Tools
- Fill out your Personal Profile for personalized analysis
- Use College Tools β π For Students & Parents β Fill current row to get college data
- All tracker sheets, dashboard, and scoring are already set up!
All new code should start from development, not main.
git checkout development
git pull origin development
git checkout -b feature/your-changeFinish the feature by merging the feature branch into development. After development is verified, merge development into main; then version and deploy from main.
Direct commits to main are only for rare hotfixes. If you want to commit directly to main, explicitly override this process first, and reconcile the fix back into development afterward.
- ESLint Integration - Automated code style and syntax checking
- Apps Script Optimized - Configuration tailored for Google Apps Script
- Pre-commit Hooks - Optional git hooks for quality gates
- Modular Architecture - Clean separation of concerns
src/
βββ config.js # Configuration and constants
βββ utils.js # Utility functions
βββ scorecard.js # API client with caching/retry logic
βββ colleges.js # Core college data operations
βββ trackers.js # Tracker sheet management
βββ formatting.js # Validation and formatting
βββ scoring.js # Weighted scoring system
βββ lookup.js # College search functionality
βββ menu.js # Menu setup and global adapters
# Linting
npm run lint # Check code style
npm run lint:fix # Auto-fix issues
npm run lint:check # Zero-tolerance check
# Version Management
npm run version:show # Display current version
npm run version:patch # Increment patch (5.6.0 β 5.6.1)
npm run version:minor # Increment minor (5.6.0 β 5.7.0)
npm run version:major # Increment major (5.6.0 β 6.0.0)
npm run release # Alias for release:prepare
npm run release:prepare # Check + patch version bump
npm run release:tag # Create git tag from package.json version
npm run release:clasp # Check + clasp push + Apps Script version (deploys to the template)
npm run release:promote -- <sheet-id> # Update the published template link on the website
# Apps Script
npm run push # Lint + npx clasp push
npm run pull # npx clasp pull
npm run clasp:version # Create Apps Script version
# Setup
npm install # Install dependenciesGitHub is the durable release record. Normal releases flow from development into main; main should only contain changes that came through development, except for rare explicitly approved hotfixes.
Before versioning, merge the verified development branch into main:
git checkout main
git pull origin main
git merge developmentThen prepare and commit the project version on main, tag that exact commit, deploy the same code to the template's Apps Script project with clasp, then promote the template to a new published copy.
npm run release:prepare
git add -A
git commit -m "chore: release v2.6.1"
npm run release:tag
git push origin main --tags
npm run release:claspNotes:
- Replace
v2.6.1in the commit message with the version created bynpm run release:prepare. npm run release:tagcreatesv<package.json version>, for examplev2.6.1.npm run release:clasppushes to the template's Apps Script project and creates an Apps Script version; it does not touch the published spreadsheet and does not create a GitHub Release.- Once the template is verified, promote it to the published spreadsheet: make a Drive copy of the template, then run
npm run release:promote -- <new-sheet-id>to update the "Copy Template" link across the website. Seeproject-docs/version-management.mdfor the full promotion steps.
-
Clone and Setup
git clone https://github.com/granitehq/college-tools.git cd college-tools npm install -
Configure clasp
npm install -g @google/clasp npx clasp login npx clasp create --type sheets
-
Deploy
npm run push
- API Key Protection: Keys stored locally in your sheets, never in version control
- No Data Collection: All processing happens in your Google Sheets
- Open Source: Full transparency with MIT license
- User-Controlled: You own all your college data
npm run lint # Check code style
npm run lint:fix # Fix code style issues
npm run push # Deploy to Google Apps Script
npm run version:patch # Bump patch version- Fork the repository
- Check out
development:git checkout development && git pull origin development - Create a feature branch from
development:git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request targeting
development
- Issues: GitHub Issues
- Security: See SECURITY.md
This project is licensed under the MIT License - see the LICENSE file for details.
- U.S. Department of Education for the College Scorecard API
- Google Apps Script platform and community
Made with β€οΈ to help students and families navigate college selection
College Tools is not affiliated with the U.S. Department of Education or Google.