UTD Grades is an application for viewing grade distributions at UT Dallas.
This monorepo consists of two sub-projects.
- The
clientproject contains the application itself, built with React and Next.js. - The
dbproject 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.