UT Registration Plus (UTRP) streamlines the process of registering for classes at UT Austin by reducing the chaos of juggling multiple tabs like Rate My Professor, Google Sheets, and the UT Course Schedule. With UTRP, you can simplify class selection and schedule management. We've all been there. 20 tabs of Rate My Professor, Google Spreadsheet, and the UT Course Schedule open and you still don't know what classes to take.
- Quick Access to Class Info: For each class in the UT Course Schedule, UTRP provides a "breakdown" popup with direct links to RateMyProfessor, Course Evaluation Surveys (CES), and past syllabi.
- Prerequisite & Restriction Highlights: Displays course descriptions with highlighted details on prerequisites, restrictions, and other important info.
- Grade Distribution Graphs: View an aggregate and semester-specific graph of grade distributions for each course.
- Saved Courses List: Easily add courses to a list and view them in the extension popup. Copy unique numbers with a single click.
- Conflict Detection: Automatically highlights and strikes out courses that conflict with your saved courses in the UT Course Catalog.
- Weekly Schedule View: Displays your saved courses in a weekly schedule format for easier planning.
- Multiple Schedule Support: Create multiple schedules to plan for different registration scenarios.
- And much more!
- React v20.9.0 (LTS)
- TypeScript
- Vite 5
- UnoCSS
- ESLint
- Prettier
- Storybook
- Figma
- Semantic-Release
- Custom Messaging & Storage Wrappers
We recommend using the following VSCode extensions to improve your development experience:
- ESLint: For identifying and fixing linting issues.
- Prettier: For automatic code formatting.
- Tailwind CSS IntelliSense: For Tailwind CSS class autocomplete and IntelliSense.
- UnoCSS: For better support with UnoCSS utilities.
Contributions are welcome and encouraged! To get started:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature
. - Make changes and ensure your code passes linting and formatting checks:
pnpm run lint
andpnpm run prettier
. - Commit your changes following the Conventional Commits specification.
- Push your branch:
git push origin feature/your-feature
. - Open a Pull Request.
For significant changes, it’s recommended to open an issue first to discuss the proposed updates.
- Clone this repository:
git clone https://github.com/Longhorn-Developers/UT-Registration-Plus.git
- Node Version: This project requires the Node.js version specified in
.nvmrc
. Use nvm to install and manage the correct version:Note: Installing the wrong Node version can lead to errors during setup.nvm install nvm use
- Install dependencies using
pnpm
(which manages and patches dependencies):pnpm install
Once set up, the extension can be built to the dist/
directory using the following methods:
- Run the development server:
pnpm dev
Note: Injected content on UT pages may not display correctly in development mode. To develop with accurate styles, use the following command:
NODE_ENV='development' pnpm run dev build --mode development -w
- To generate production builds:
pnpm build
Beta Builds
Use BETA=true pnpm build
to generate a beta build.
This project includes a Dockerfile that allows you to build, zip, or run the extension in development mode using Docker. Refer to Docker Dev Setup to get started.
To load the extension manually in Chrome:
- Open
chrome://extensions
. - Enable 'Developer Mode'.
- Click 'Load unpacked'.
- Navigate to the
dist/
directory and select it.
If you encounter bugs or issues, please report them in the Issues section, including:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior
- Screenshots or logs (if applicable)
We aim to address issues promptly.
We follow the Conventional Commits specification for commit messages. This ensures a consistent commit history and enables automated versioning and changelog generation.
Follow this structure for commit messages:
<type>(<scope>): <subject>
Where:
- type: One of the following:
feat
: A new featurefix
: A bug fixdocs
: Documentation updatesstyle
: Code formatting changes (whitespace, semicolons, etc.)refactor
: Code restructuring (without adding features or fixing bugs)test
: Adding or modifying testschore
: Maintenance tasks or build process changes
Example:
feat(auth): add login functionality
fix(ui): align buttons in navbar
Branch names should follow the format:
<type>/<short-description>
Examples:
feat/user-login
fix/navbar-layout
docs/update-readme
This project is licensed under the MIT License. See the LICENSE for more details.
We maintain a strict code of conduct. By contributing, you agree to adhere to the rules outlined in CODE_OF_CONDUCT.md.
Special thanks to the developers and contributors behind these amazing tools and libraries:
- React v20.9.0 (LTS)
- TypeScript
- Vite 5
- UnoCSS
- ESLint
- Prettier
- Storybook
- Figma
- Semantic-Release
- chrome-extension-toolkit
- UT_Grade_Parser
- eslint-plugin-import-essentials
- UT Registration Plus v1.2.2.7 by @sghsri
- UT Registration Planner by @doprz
- Figma Designs by @IsaDavRod
- Longhorn Developers - established in 2024
- The UTRP devs, beta testers, and all supporters of the project!