Derek Chen 27094846f7 feat: open an injected course page on course block click in popup main (#146)
* feat: Imports to popupcourseblock.tsx

* changing the blocks to accept parameters for clicking functionality which may or may not open the calendar

* put the click parameter in the div of popupcourseblock

* safely calling for onCourseClick in the event it is an undefined function

* handled other calls of popupcourseblock with empty functions for now, and i think popupmain opens calendar now when the course block is clicked

* feat: Testing out passing params to handleOpenCalendar

* url that takes in params to open calendar with params

* further work on url params; from popup main to handleopencalendar to calendar using urlsearchparams

* feat: small calendar shifting after merge:

* fix: merge handling and then references to new click parameter

* fix: optional params

* feat: split into two functions instead

* fix: changing proper usage of handleOpenCalendarWithCourse

* feat: show course popup when calendar opened

* chore: remove useless commented out code

* feat: close popup on calendar nav, fix build errors, remove useless comments/logs

* chore: chromatic so dumb fr why aren't you chrome

* fix: refactor listeners to build properly

* feat: exit early when not in chrome extension

* fix: function return type

* fix: function return type x2

* fix: generic type for useState

* refactor: extract calendar opening on click functions

* refactor: chrome runtime mock, omit question mark if no query params, rename calendar event

* refactor: move course click event into component directly instead of prop

* refactor: removed useless wrapper functions, made popup course block more accessible

* fix: i dont wanna talk about it

---------

Co-authored-by: Samuel Gunter <sgunter@utexas.edu>
2024-03-16 15:57:50 -05:00
2024-03-06 15:11:27 -06:00
2024-03-07 17:53:13 -06:00
2024-03-06 15:11:29 -06:00
2023-02-22 22:51:38 -06:00
2023-02-22 22:51:38 -06:00
2024-01-30 16:43:30 -06:00
2024-03-07 16:45:26 -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

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

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 pnpm build -w to build and watch for changes. This will ensure you are seeing an accurate representation of the extension.

Production Builds

  • Run pnpm 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.

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%