2024-10-05 22:50:59 -05:00
2024-03-06 15:11:27 -06:00
2024-05-20 17:08:36 -05:00
2024-10-03 13:49:10 -05:00
2024-10-05 22:18:30 -05:00
2024-03-06 15:11:29 -06:00
2024-01-30 16:43:30 -06:00
2023-02-22 22:51:38 -06:00
2023-02-22 22:51:38 -06:00
2023-02-22 22:51:38 -06:00
2024-10-03 13:49:10 -05:00
2024-10-05 13:46:12 -05:00

UT Registration Plus

Chrome Web Store Downloads License

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:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/your-feature)
  3. Make your changes and ensure the code follows the linting and formatting rules (pnpm run lint and pnpm run prettier)
  4. Commit your changes following the Conventional Commits specification
  5. Push to the branch (git push origin feature/your-feature)
  6. Open a Pull Request

For large changes, it's recommended to open an issue first to discuss your proposed changes.

Development: Getting Started

  1. Clone this repo
  2. This project uses pnpm to manage and patch dependencies. Run pnpm install to configure the repository for building/development
  3. 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 -w to 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 feature
    • fix: A bug fix
    • docs: Documentation changes
    • style: Code formatting (white-space, formatting, missing semi-colons, etc.)
    • refactor: Code restructuring (neither fixes a bug nor adds a feature)
    • test: Adding or modifying tests
    • chore: 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-login
  • fix/navbar-layout
  • docs/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
Description
UT Registration Plus: Open source Chrome Extension that improves the course registration experience at UT Austin by presenting more information to students on the Course Catalog! 60,000+ peak Users!
Readme 96 MiB
Languages
TypeScript 96.6%
CSS 0.9%
SCSS 0.8%
Nix 0.7%
HTML 0.4%
Other 0.6%