IMSA Grades is a site for exploring historical grade distributions at the Illinois Mathematics and Science Academy. It is not an official IMSA site.
Use Node.js 18 or newer.
npm installGenerate the static site in docs/:
npm run buildValidate the generated output:
npm run validate:staticPreview locally:
npm run serve:staticRuns at http://localhost:8080/.
By default, generated links assume the site is hosted at the domain root or on a custom domain:
BASE_PATH="" npm run buildFor a GitHub Pages project site such as https://epochml.github.io/imsa-grades/, build with:
BASE_PATH="/imsa-grades" npm run buildBASE_PATH is applied to generated asset paths, navigation links, class links, and raw data downloads.
- Run
npm run import:dataafter updating the workbook. - Run
npm run build. - Commit the generated
docs/directory. - Go to repository Settings -> Pages.
- Set Source to "Deploy from a branch."
- Select the main/master branch and
/docs. - Save.
- Wait for the Pages deployment.
- Use the GitHub Pages URL shown in Settings -> Pages.
A = 4.0, A- = 3.67, B+ = 3.33, B = 3.0, B- = 2.67,
C+ = 2.33, C = 2.0, C- = 1.67, D = 1.0
Non-GPA grades such as P+, P, F, W, WF, I, and unlabeled workbook columns are preserved in the normalized data but excluded from GPA/statistical charts. A+ is preserved as its own normalized column and mapped into A/4.0 only for website GPA charts.
The old Express server remains available with:
npm startDeployment no longer requires Express, Vercel, Firebase, Cloud Functions, or serverless functions. Node is used only at build/import time.
MIT License
Maintainer: Cinna Davis (cdavis@imsa.edu)