Skip to content

๐Ÿ“š Source code for the ProfStats UTD chrome extension, a quick and easy way to view UT Dallas professor ratings and grade distributions.

License

Notifications You must be signed in to change notification settings

GiridharRNair/ProfStatsUTD

Repository files navigation

ProfStatsUTD

Screenshot

Chrome Web Store

ProfStats is a handy Chrome extension with 100+ users, merging professor ratings and grade distributions at the University of Texas at Dallas for simplified access to course information for students.

Frontend Overview

Vite React Chakra UI Axios

The front end ensures a streamlined interface with features like backend performance optimization, client-side validation for data accuracy, and CRXJS for Chrome extension hot module reloading during development.

Deployment

GitHub Actions automates staging on the Chrome Web Store upon new Github version releases, utilizing the Chrome-Webstore-Upload-Action. While manual review submission is required, the uploading process is fully automated.

Backend Overview

Go Python SQLite Docker Azure

Utilizing the Golang Gin framework, the backend fetches ratings from the Rate My Professor GraphQL API and queries aggregated grade distribution from an SQLite database.

Database

The database is dynamically generated by a Python script in db_setup before the backend server is started, using only Python's standard library and the grade distributions in raw_data.

Note

The grade distributions in raw_data are from the UTD Grades repository

Deployment

Dockerized and deployed on the Azure Web App Service after running the Python scripts that generate and test the SQLite database, using GitHub Actions for CI/CD.

Local Development

Make sure you have the following software installed on your machine:

  • Node.js
  • Golang
  • Python

Steps:

  1. Clone the repository:

    git clone https://github.com/GiridharRNair/ProfStatsUTD
  2. Navigate to the project directory:

    cd ProfStatsUTD
  3. Install dependencies:

    npm run install-packages

    This command installs the dependencies for the go backend and the react frontend

  4. Start the server and extension concurrently:

    npm run dev

    This project uses the concurrently npm package to run the server and extension concurrently

  5. Enable Developer Mode in Chrome:

    • Navigate to chrome://extensions/.
    • Enable Developer Mode.
  6. Load the extension:

    • Unpack the dist folder.
    • Start using the extension for seamless testing and development.

Please feel free to open an issue or submit a pull request if you have any suggestions or feedback.