5.9 KiB
UT Registration Plus
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. This extension, UT Registration Plus (UTRP), tries to streamline most of the unnecessary steps and headaches of registering for classes at UT Austin.
-
For each class in the UT Course Schedule site, UTRP provides a "breakdown" popup, with quick and easy links to the instructor's RateMyProfessor, Course Evaluation Survey (CES) and past syllabi.
-
Shows the course description with highlighted information on prerequisites, restrictions, etc.
-
Shows an aggregate and semesterly graph of the grade distributions for each course.
-
Gives you the ability to add "Add Course" and view them in the extension popup, a quick list of all the courses you have saved and an easy way to copy unique numbers.
-
Highlights and crosses-out what courses on the UT Course Catalog would conflict with your currently saved courses, making selecting courses that fit with your schedule so much easier.
-
Display's a weekly schedule based on your saved courses.
-
Give you the ability to create multiple schedules to plan for different scenarios.
-
... and much more!
Toolchain
- React 18
- TypeScript
- Vite 5
- ESLint
- Prettier
- Storybook
- Semantic-Release
- Custom Messaging & Storage Wrappers
Contributing
Contributions are welcome and encouraged! To contribute, please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature) - Make your changes and ensure the code follows the linting and formatting rules (
pnpm run lintandpnpm run prettier) - Commit your changes following the Conventional Commits specification
- Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
For large changes, it's recommended to open an issue first to discuss your proposed changes.
Development: Getting Started
- Clone this repo
- This project uses
pnpmto manage and patch dependencies. Runpnpm installto configure the repository for building/development - Using either of the methods listed below, the extension will build to the
dist/directory.
Development Builds
- Run
pnpm dev
Note
Injected content such as extension content on UT pages is not properly styled, and are missing class stylings. When developing for these pages, use
NODE_ENV='development' pnpm run dev build --mode development -wto build and watch for changes. This will ensure you are seeing an accurate representation of the extension.
Production Builds
- Run
pnpm build
Beta builds
Use `BETA=true pnpm build` to build a beta build.Development: Loading the Extension Manually
Open chrome://extensions, ensure you have 'Developer Mode' enabled, and click 'Load unpacked'.
Navigate to the dist/ folder, and click 'select' to import the extension.
Bug Reporting
If you encounter any bugs or issues, please submit a detailed report in the Issues section. Be sure to include:
- A descriptive title
- Steps to reproduce the issue
- Expected behavior
- Screenshots or logs (if applicable)
We will address issues as promptly as possible.
Conventional Commits & Branch Naming Convention
We follow the Conventional Commits specification for commit messages. This helps us maintain a consistent history, enabling automated versioning and changelog generation.
Commit Messages
Please format your commit messages as follows:
<type>(<scope>): <subject>
Where:
- type: One of the following:
feat: A new featurefix: A bug fixdocs: Documentation changesstyle: Code formatting (white-space, formatting, missing semi-colons, etc.)refactor: Code restructuring (neither fixes a bug nor adds a feature)test: Adding or modifying testschore: Changes to the build process or auxiliary tools
Example:
feat(auth): add login functionality
fix(ui): correct button alignment
Branch Naming
Branch names should follow the format:
<type>/<short-description>
Examples:
feat/user-loginfix/navbar-layoutdocs/update-readme
License
This project is licensed under the MIT License. See the LICENSE file for more details.
Code of Conduct [TODO]
We adhere to a strict code of conduct. By participating, you are expected to uphold this code. Please read CODE_OF_CONDUCT.md for details.
Acknowledgements
This project leverages several powerful open-source tools and libraries. Special thanks to the developers behind:
- React 18
- TypeScript
- Vite 5
- ESLint
- Prettier
- Storybook
- Semantic-Release
- chrome-extension-toolkit
- UT_Grade_Parser
- eslint-plugin-import-essentials
- Figma designs by @IsaDavRod
- Custom pnpm patches by @Razboy20
- UT Registration Plus v1 with @sghsri as the original author for creating the foundation of UTRP and impacting thousands of UT students positively via his Chrome Extension
- UT Registration Planner was archived and it's developer @doprz joined UT Registration Plus in 2023
- Longhorn Developers organization was created in 2024 for further development of UTRP and other student-led projects.
- All UTRP devs, beta testers, and anyone who helped support this project