UTD Grades is an application for viewing grade distributions at UT Dallas.
This monorepo consists of two sub-projects.
- The
client
project contains the application itself, built with React and Next.js. - The
db
project contains everything related to the SQLite database that powers the app.
There is also a raw_data
folder that contains all currently received grade data in CSV format.
Each component as a dedicated readme, and the architecture document describes how everything fits together.
Due to some changes with the fetch API in Node v18 and sql.js not handling those changes, please use Node v17.
Install and switch between multiple node versions with nvm.
We make use of NPM workspaces to simplify development in the monorepo. To get started developing locally, simply clone this repository run the following commands...
npm install
- install dependenciesnpm run dev
- create the SQLite database from the raw data and then launch the Next.js development server
The project builds to a completely static web bundle, making it deployable pretty much anywhere. Simply run
npm run build
, and deploy the resulting client/out
directory wherever you want.
You can easily test the deployment locally using a package like http-server
. After running npm run build
, run
npx http-server out/client
.
We have a workflow that automatically deploys the main
branch to GitHub Pages.
Just add the data in CSV format to the raw_data
directory (be sure to remove any lines before the header) and
rebuild/redeploy.