Code Monkey home page Code Monkey logo

schoologyplus's Introduction

Schoology Plus

Schoology Plus is a web extension that enhances your Schoology experience with numerous interface improvements.

Chrome Download Chrome Web Store Users Mozilla Add-on Edge Extension Discord Changelog

Download for Chrome Download for Firefox Download for Microsoft Edge

Contents

Features

Interface Improvements

All features below marked with an asterisk* can be changed or customized with a setting

Brand New Dark and Light Themes

Dark Theme

Image: Examples of the modern dark and light themes

  • Dark Theme for Schoology! No more blinding whites!
  • Modern Light Theme which revitalizes the late 2000s interface to look modern and new
  • Many other theme options as well, or make your own!
  • Replaces your school's logo with the Schoology logo
  • Click here to learn how to enable dark theme

Custom Themes

Built-in Themes

Image: Demonstration of the built-in themes

  • You can create a custom theme or choose one of the small selection of built-in themes (including rainbow mode!)
  • Two of the built-in themes are the "LAUSD Dark Blue" and "LAUSD Orange" themes which restore the interface to the new and old versions of the LAUSD theme respectively including the logo)
    • For non-LAUSD schools, an auto-generated theme will be created to match your school's default theme
  • Custom themes can change colors throughout the interface as well as the logo and course icons. Custom themes can even use custom rainbow color patterns!
  • To learn more about creating custom themes, see Theme Editor

Course Icons

Course Icons

Image: Example of built-in course icons

  • Built-in course icons for many courses* (LAUSD schools only)
  • Custom themes can also introduce custom icons for courses

Quick Access

Quick access

Image: Example of the Quick Access pane on the homepage

  • Quick Access panel on the right sidebar on the homepage with one-click access to important pages*
  • Links for grade report, courses, mastery, and more
  • Each class has a link to its home page, grades page, and mastery page
    • Click the icons next to each course to access its specific pages

Check Marks for Submitted Upcoming Assignments

Upcoming Check Marks

Image: Upcoming assignments with check marks

  • By default, green check marks โœ” are shown on all assignments you've submitted*
  • You can also manually check off assignments as you complete them
  • There are also options for putting a strikethrough through the assignment title or hiding the assignments completely.

Tooltips

Tooltips

Image: Demonstration of material tooltips

  • Toolips for items on the materials page show previews
    • Assignments show score and grade category
    • PDF files show previews and number of pages

Courses In Common

Courses in Common

Image: Dialog box showing courses in common with another classmate

  • View all courses you share with a classmate by visiting their profile page

Miscellaneous Interface Improvements

  • Adds a button to quickly jump to archived courses in the Courses drop-down list*
  • Adds option to hide the upcoming and overdue assignments sidebars on the home page*
  • Indicates when a class is graded on a weighted scale*
  • Changed the courses drop down menu to show 6 courses across instead of 4
  • Notice when submitting a quiz when questions are left blank

Grades Page Improvements

Miscellaneous Grades Page Improvements

Grades Page

Image: Example of the grades page showing grades for collapsed courses.

  • Classes are sorted by period* (LAUSD schools only)
  • Grades are displayed when classes are collapsed

Point Totals and Letter Grades

Image: Example of point totals for categories and unweighted classes. Also features calculated letter grades and point buffers.

  • Displays letter grades for classes that don't provide them*
  • Point totals are displayed for classes with unweighted categories
  • Point totals are displayed for all assignment categories
  • Point totals and percentages are displayed on classes that hide them by default
  • Displays point buffers from the next lowest letter grade and number of points needed to reach the next highest letter grade for unweighted classes

Percentages and Possible Points

Image: Shows percentages for each assignment as well as points possible for assignments without grades entered.

  • The number of possible points for an assignment is shown even when a grade has not yet been entered for that assignment
  • Percentages are shown for each individual assignment

Context Menu

Image: Right click a class to view a context menu

  • Right click a class to quickly jump to a specific page or to edit that course's settings

What-If Grades

What-If Grades

Image: Example of locally modifying a grade. Notice the change in the category and class grade.

  • Allows you to locally modify the grade of an assignment
    • Schoology Plus will recalculate the grades for each category and for the entire class
    • Weighted categories are taken into account when recalculating grades

Add Assignment

Image: Example of adding a simulated assignment

  • Allows you to simulate adding an assignment
    • Assignments can be added to any category, and can be given any grade
    • This allows you to see how an upcoming assignment will affect your grade with different scores

Calculate Minimum Score

Image: Example of calculating the minimum score necessary on the final to keep an A in the class. Also demonstrates dropping and un-dropping a grade.

  • Allows you to calculate the minimum grade for an assignment required to reach a certain grade in the class (right click on an assignment)
    • Useful to see what grade you need on the final to keep your A in the class!
  • Allows you to simulate dropping a grade (right click on an assignment)

Desktop Notifications

Desktop Notification

Image: A desktop notification

  • Desktop notifications for when new grades are posted*

Extension Icon

Extension Icon

Image: The extension icon showing the number of new grades

  • Extension icon shows number of new grades posted*
  • Clicking the extension icon will take you to:
    • Your notifications if you have newly posted grades
    • The Schoology homepage if you do not

Schoology Plus Announcements

Announcement

Image: An example of a Schoology Plus announcement

  • Announcements about Schoology Plus will be sent as desktop notifications*
  • They will also show as posts in your news feed*

Schoology Plus Settings

Settings

Image: The Schoology Plus settings dialog box. Click the (+) button on the navigation bar to open.

Schoology Plus has customizable settings, including but not limited to:

  • Theme
    • Sets the theme for the Schoology Plus interface. Currently, Schoology Plus has 4 built-in themes and a theme editor for you to make your own.
  • Desktop Notifications
    • Displays desktop notifications and a number badge on the extension button when new grades are entered
  • Custom Grading Scales
    • Uses custom grading scales (set per-course in Course Options) when courses don't have one defined
  • Order Classes (LAUSD schools only)
    • Changes the order of your classes on the grades and mastery pages
  • Archived Courses Button
    • Shows a button labeled "See Archived" next to the "See All" button in the courses dropdown

Theme Editor

Custom Theme

Image: The theme editor interface with an example of a custom Black and White theme

Schoology Plus is equipped with a fully-featured theme editor, allowing you to create your own custom theme. The theme editor allows you to preview your changes to the interface, including colors, logos, cursors, and custom icons. To learn more about the theme editor, see the Theme Editor help page.

Course Options

Course Options

Image: The course options dialog box. To access, click on the "Course Options" button on the sidebar of any course page.

Course Nicknames

  • You can set a nickname for a course, allowing you to make friendlier and nicer looking names that appear everywhere in the interface where the ugly name appeared previously.

Custom Grading Scales

  • You can create custom grading scales for courses where the teacher does not have a grading scale set for the class.
    • This will be used to calculate letter grades for assignment categories and courses on the grades page

Custom Domain Support

Schoology Plus can be configured to work with your school's custom Schoology instance. Simply navigate to the homepage of your school's Schoology implementation, then right click the extension and select "Enable Schoolgy Plus on this domain". This is necessary only if your school's Schoology site is running on a domain that does not end in schoology.com. See this page for more information.

Custom Domains

Image: The option to enable Schoology Plus for your school's domain can be found by right-clicking the extension.

Feedback and Support Discord

Schoology Plus has a Discord server where you can offer feature suggestions, report bugs, get support, or just talk with other Schoology Plus users. Click here to join!

Contributing

Please see CONTRIBUTING.md for information about contributing to Schoology Plus. This document also includes methods for reporting bugs and submitting feature requests.

Contributors

This extension was created by Aaron Opell. Significant development assistance has been provided by Glen Husman. Various other contribution information is located in the Contributors dialog accessible via a link in the footer of Schoology Plus settings.

License

This project is open source under the MIT License. See the LICENSE file for more information.

Privacy Policy

Schoology Plus respects your privacy and will NEVER collect or sell your personally identifying information. View our full privacy policy here.

Disclaimer

Schoology Plus is not affiliated with Schoology Inc. or the Los Angeles Unified School District. Schoology, the SCHOOLOGYยฎ wordmark, and the S logo are registered and unregistered trademarks of Schoology, Inc. in the United States. All product names, logos, and brands are property of their respective owners.

schoologyplus's People

Contributors

aopell avatar dsnsgithub avatar ericpedley avatar fenylabs avatar glen3b avatar jetline0 avatar jiaming-s avatar ktibow avatar reteps avatar roguim avatar saagarjha avatar sealsrock12 avatar senoj26 avatar thethonos avatar xd-arsen avatar xd-arsenic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

schoologyplus's Issues

Update README.md with theme editor and other new features since last update

Meta:

  • Confirm and finish this list, we don't want to miss anything

Places to update:

  • README.md in the repository
  • Chrome web store description
  • Screenshots, both in README and in Chrome web store
  • Changelog

Features:

  • Everything we add in 4.2
  • Course nicknames
  • Tooltips on materials pages
  • Gradebook context menu (possibly too minor), including calculate minimum grade

Add minimum grade calculation

Add a feature, perhaps as a context menu entry, that allows the system to calculate the minimum score on an assignment to maintain the current letter grade. The assignment would have known denominator; in my vision, this step would be after the completion of (for instance) adding an assignment to the grade calculator (meaning no need to have a separate denominator specification interface).

Desktop notifications don't work on Firefox

It seems to be an issue with Firefox not supporting event pages. The background page loads when the extension is first installed/updated but appears to unload afterward. The alarm event doesn't fire.

Link-type materials break document material tooltips

Cause: links are type-document in CSS, but their API call attachments object does not have a files property even though we assume it to. Better error handling here would be a good thing, but at the very least we must correct for our wrong assumption.

(easy fix, when I get around to it)

Add proper icons interface to theme editor

Currently the theme editor does not have a nice UI for icon editing. It would be nice to add one. Probably just as a key (regex)/value (URL) two-column table. Potential components and conerns:

  • How would icons be previewed?
  • How would default icons be thoroughly previewed?
  • Would there be a nice way to view default icons?

Classes with no period crash extension

In the current released version, periodless classes on the grades page cause the extension to crash (line 21 grades.js, similar issue occurs on Schoology++).

Document "Loading" tooltips do not generate until assignment tooltips have completely loaded

Issue as described in the title. There aren't even proper "Loading..." tooltips for documents until assignments have finished getting theirs - which in some cases can take a very long time. This also, if the user starts looking for the document tooltip earlier than this, they might reasonably expect to see a Loading tooltip where it would appear, but they would not.

Move libraries to subfolder of js

More a code style thing than anything else, but worth discussing I think.

The js folder is getting a bit cluttered, and we're having to pull in more and more libraries. We should consider creating a js/libs folder (or similar) to logically separate our code from library code.

Better handle failures in API calls

In terms of error-handling, potentially just disable grade editing on that category and/or assignment (depending on if course is weighted or not) instead of nuking the grade display which Schoology has already calculated? The grade is known, it only becomes an issue if editing is employed; adding a grade display (instead of LOADING) without editing (i.e. actively disable editing) is more useful than displaying LOADING and breaking editing.

Created from a comment by @glen3b on #24

This may not be an issue anymore after switching to API retrieval of assignment max points

Notifications don't work

Issue:

  • Time doesn't compare down to the minute, but instead only down to the day (whoops) causing notifications to never show up

Arrow dropdown menu crashes Schoology JS in Firefox

Clicking on the arrow dropdown to the right of the name reliably produces the following error message.
Error: Permission denied to access property "apply"[Learn More]
common-faff65aef3d248da1463.js%20line%201%20%3E%20eval:5:13279
Learn More links to this page.

I have not attempted to reproduce this outside my setup.
Firefox 60.0.1, Arch Linux
Schoology Plus release v3.16

Add assignment dropping management

Currently, there's no "proper" way to handle dropped assignments. A way to drop or undrop assignments, perhaps manually via a context menu, would allow more flexibility in grade recalculation.

Refactor grades page handling

Currently, the grades page handling ties very deeply our UI integration and our grade modification and redisplay logic. Ideally, these components (UI patching, grade modification logic, and grade recalculation logic) would all be separate.

Add option to override only default course icons

Feature request.

This would allow keeping teacher-defined icons where present, but overriding bad defaults.
This shouldn't be the default because it would likely lead to thematic inconsistency, but it should be an option.
Potential roadblock is determining what a default icon is (unless it's always this one).

Indication of how assignment affects grade

This can be accomplished in one or both of these ways:

  • Display what percent of the grade each assignment is
  • Display how many percentage points were gained or lost because of this grade

Aliases do not work for archived courses

Courses in which the user is not currently enrolled do not properly apply aliases.

We should decide if we want to support this case (in which case this enumeration needs to change to include everything) or not (in which case the UI should not permit setting aliases for archived courses).

Calculate minimum grade performs no validation

Calculating minimum grade performs no validation. This leads to the following undesirable cases:

  • Computed negative point values
  • Computed point values with high numbers of decimals (99.0000000000000000003), which carry through the entire point tally column
  • Strange behavior when operating on assignments in 0-weight categories, e.g. Underwood's "Data" category

Entity note feature

Feature idea.

Allow users to record their own (private, local, visible to nobody else) notes on entities, potentially with an associated icon.

Possible entities on which notes could be taken:

  • Assignments
  • Courses
  • Users
  • Groups

Things to consider:

  • Should notes on entities be key/value (title/body) or just value?
    • Should there be other metadata able to be attached? Possibly dates? We probably don't want to become a reminder app, but Schoology does have a system for due dates that we could possibly (UI-wise) hook into.
  • Should entities be able to contain multiple notes?
  • Should there be an interface for centralized display of all notes?

Add "courses in common" button/modal

This year in my environment, I cannot see the schedules of classmates, just the number of courses they have. However, I can see class rosters by class. It would be nice to have a button on user profiles to see "courses in common," basically classes that I (the user) and another user have together.

Course Aliases

A feature, potentially via the existing "Course Options" menu, to alias/nickname a course.
This alias should be used in place of the full course title in the user interface.

For instance, where the UI displays MAR DYN PE 2B: TERM AS - PERIOD 5, an alias could be set to Band (Per. 5), and this would replace the long and annoying string throughout the UI.

Potential roadblocks:

  • Huge number of places this occurs.
    Course names show up all over the place, including in async-loaded components. This makes writing a reliable replacement algorithm annoying at best. Potential workaround could be iterating down to bottom-level nodes and replacing within innerText, or doing some string manipulation on top-level innerHTML.
  • Parse order.
    Course name is parsed in other parts of the code, or used as a key for things (e.g. themed course icons, period sorting in grades page). Care must be taken to avoid breaking these components.

Dark Schoology theme

Feature idea. Would perhaps involve some tweaks to the theming engine to make it more general-case.

Schoology with dark theme! Fairly self-explanatory - tweak backgrounds to be dark and foregrounds to be white/light. Unfortunately implementation is likely to be difficult:

Schoology CSS defines colors all over the place. Finding the relevant selectors to override is likely to be difficult, perhaps a task for a codegen tool we write. Not to mention some styling is likely to be done via hard-to-replace images (fortunately, most of the icons are high-color and thus work well with either dark or light theme). And the worst possibility with such a dark theme is missing a section, such that on some page somewhere there's a light theme section in the middle of a dark theme page - meaning we have to be exceptionally thorough for this to look good.

To implement there would probably have to be some tweaks to the theming engine. I'd envision a few additions:

  • A single scaleable base-saturation value, to adjust the overall darkness of user-defined theme colors
  • Perhaps a foreground text option to complement wherever the theme color is used - such that dark enough themes could be complemented with whiter text (this setting would not be for dark theme per se, but rather for darker user-defined colors - and could be used without dark theme, although probably wouldn't look great without)
  • A Schoology accent colors declaration section, with keys for all of the colors Schoology uses (it's likely to be a lot) and default values corresponding to what Schoology sets. This would be where we would define a dark preset, by overriding most of these. Once we know what the selectors and colors are, we define a key for each one, and the theming engine overrides that selector with whatever color is defined here.

Use SVG icons where possible, and comment icons.js with license info

For course icons, we have a few PNG icons that could be replaced by their SVG equivalents. (Geology comes to mind.) When possible we should do so.

While we're at it, each entry in icons.js should be commented with the following:

  • Source URL (not the image hotlink, but the corresponding page on flaticon with all the info)
  • Author name, and possibly attribution link
  • License name, and link if uncommon (e.g. not CC BY 3.0)

LAUSD firewall sometimes blocks icon loading

Sometimes the LAUSD firewall will mess with TLS connections to the source of custom icons throughout Schoology Plus (although not always). This leads to image load failing. If this happens the alt text sometimes messes greatly with the UI and is overall a bad thing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.