Unlock the power of data visualization and insights with [UBC Course Hover Info, a developer tool designed to streamline course information and professor ratings for UBC students.
Why UBC Course Hover Info?
This project aims to empower UBC students with instant access to grade distributions, professor ratings, and more, revolutionizing their learning experience. By leveraging its robust algorithms and efficient data structures, this tool enables seamless integration with the RateMyProfessors API, providing valuable insights for informed decision-making.
The core features include:
- Secure Data Retrieval: Fetches grades data from two APIs (V2 and V3) with dual fallback, ensuring successful data retrieval.
- Visual Insights: Generates a visual representation of student grades, displaying average, median, and quartiles, as well as individual grade ranges with corresponding letter grades.
- Seamless Integration: Orchestrates the project's data processing pipeline, transforming raw data into meaningful insights.
- Customizable Styling: Enhances the visual styling of professor tooltips within the course structure, providing a distinct design for professor information.
| Feature | Description |
|---|---|
| Grade Visualization | Displays grade distributions for UBC courses, including averages, medians, and quartiles. |
| Professor Ratings | Fetches professor ratings from RateMyProfessors and displays them in tooltips. |
| Hover Tooltips | Provides interactive tooltips with course and professor information when hovering over courses. |
| Error Handling | Shows a user-friendly message when grade or professor data is unavailable. |
└── /
├── demo/
│ ├── demo.mov
│ ├── Screenshot.png
├── icons/
│ ├── icon.png
│ ├── icon16.png
│ ├── icon48.png
│ ├── icon128.png
├── background.js
├── content.js
├── grades.js
├── gradesChart.js
├── LICENSE
├── manifest.json
├── README.md
├── style.css/
__root__
⦿ __root__
File Name Summary background.js - Establishes a connection to RateMyProfessors API to retrieve UBC school ID and professors information
- The code handles school ID lookup, storage, and retrieval, as well as professor search functionality
- It also integrates with Chrome extensions, allowing for seamless interaction between the browser and the RateMyProfessors API.grades.js - Fetches grades data from two APIs (V2 and V3) with dual fallback, allowing users to retrieve grades for a specific subject, course, and section
- The code handles caching, error handling, and term filtering to ensure successful data retrieval.GitHub - Orchestrates**The provided code file is a crucial component of the projects data processing pipeline, responsible for transforming and aggregating raw data into meaningful insights
- By leveraging its robust algorithms and efficient data structures, this code enables the project to efficiently handle large datasets, providing valuable business intelligence and informing strategic decision-making.style.css - Enhances the visual styling of professor tooltips within the course structure, providing a distinct design for professor information
- This file defines the CSS styles for the tooltips background, border, padding, and font family, as well as specific enhancements for the professor section, name, and hover effects.manifest.json - Configures the UBC Course Hover Info extension, enabling users to view grade distributions and professor ratings when hovering over courses in UBCs course registration system
- The manifest file defines permissions, host permissions, background services, content scripts, icons, and URLs for the extensions homepage and privacy policy.content.js - Content.jsThis JavaScript file enables hover-over tooltips displaying course information and professor ratings on a learning platform
- When a user hovers over a course option, it fetches relevant data from RateMyProfessors and displays the instructors name, rating, difficulty, and other metrics in a tooltip
- The code also handles mouseout events to hide the tooltip after a short delay.gradesChart.js - Generates a visual representation of student grades, displaying average, median, and quartiles, as well as individual grade ranges with corresponding letter grades
- The chart also includes instructor information and a link to UBC Grades URL if available.
-
Install the extension:
- Visit the Chrome Web Store.
- Click "Add to Chrome" to install the extension.
-
Use the extension:
- Navigate to UBC's course registration system.
- Hover over courses to view grade distributions and professor ratings.
-
Clone the repository:
- Open a terminal and run:
git clone https://github.com/joaquinalmora/hover-course.git
-
Navigate to the project directory:
cd hover-course -
Load the extension in Chrome:
- Open Chrome and navigate to
chrome://extensions. - Enable "Developer mode".
- Click "Load unpacked" and select the project directory.
- Open Chrome and navigate to
-
Use the extension:
- Navigate to UBC's course registration system.
- Hover over courses to view grade distributions and professor ratings.
This project is licensed under the MIT License. For more details, refer to the LICENSE file.