sas-fossdev / saspes Goto Github PK
View Code? Open in Web Editor NEWSAS Powerschool Enhancement Suite - A browser extension to improve the experience of using Powerschool at SAS.
License: GNU Affero General Public License v3.0
SAS Powerschool Enhancement Suite - A browser extension to improve the experience of using Powerschool at SAS.
License: GNU Affero General Public License v3.0
Both calculations are broken, likely due to some change to PowerSchool UI.
Will try and fix it soon.
add something ala https://userstyles.world/style/6754/better-powerschool
In some classes, this behavior is expected, however some classes count an INC as 0 credit. This prevents the grade from being normally calculated as when a single grade is INC, it sets the whole final grade to INC.
This can be fixed by having two INC options, INC (0 credit) and INC (class incomplete) and INC (class incomplete) will only be automatically chosen when the final class grade is INC.
I will not be able to test this, however, since I do not have any incompletes. Please reply to this thread if you are able to.
Bug reported by Jam Parpia.
Extension Version: Most recent (Beta 0.21.3)
In the settings on the extension, there should be a feature where you can select how many decimal places you want to be displayed on your class grade percent. I also got an email about if this feature could be added, so I'm creating this issue.
For now, I think the glass grade percentage should display to 3 decimal places and in the future, should be a setting.
latest version
some classes are showing missing/exempt logo next to every assignment. doesn't happen for all classes.
We should switch to using semver for versioning. Would it be okay to just drop the first 0 and continue the version numbers from 1.8.0?
EDIT: Or, it may be a better idea to go to 0.18.0
instead?
EDIT2: Going to go with 0.18.0
as long as there is no disagreement.
This issue provides visibility into Renovate updates and their statuses. Learn more
These updates are currently rate limited. Click on a checkbox below to force their creation now.
vue
, vue-loader
, vue-template-compiler
)vue
, vue-loader
)These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
@babel/core
, @babel/plugin-proposal-class-properties
, @babel/plugin-transform-runtime
, @babel/preset-env
, @babel/register
, @babel/runtime
, babel-loader
)I was thinking of developing a feature that might display any recent grade changes either on the powerschool login page or in a popup window on clicking the extension icon. It could make it more convenient for anyone who wants to check their grades without having to log in each time.
A lot of the time when users access PowerSchool it's because they are checking whether a grade for a recent test is out, a possible feature that could make this easier is something that would show all new grades for a particular subject since the last time they loaded PowerSchool.
This could work with the last seen grades feature to store the amount of summative's a user has per subject, the next time they load powerschool, if this number has changed, it could show some kind of indicator that a new grade has been released for that subject. Alternatively it could even show new grades at the top of powerschool like it does with the "recents" feature on the mobile app.
As an extension, we have a pretty good idea of what browsers are being used so maybe we should look at dropping Babel?
According to analytics data, there are people still using Chrome/Firefox versions that still lack support for ES2015 so it would mean stopping support for some people.
There's a lot of links in the extension and some in the README for getting people to contribute. I just learned GitHub has a nice landing page for every repo for potential contributors. We could change the links that invite people to contribute to go there instead. https://github.com/gary-kim/saspes/contribute.
Instead of having a libraries.txt
file in the repo, it would be nicer if one was generated during the build process using yarn licenses --silent generate-disclaimer > src/web_accessible_resources/libraries.txt
then add a link to that location in the options page.
Extension Version: 0.25-0.26
The JSON file here is not configured with the newest version.
Install version 0.24 or 0.25 on Firefox and try to update it to the newest version by disabling auto update and pressing check for update.
Extension Version: Open Beta 0.19.0 Development v0.19.0-9-g7722c9e
Go to hypothetical assignment and remove the percentage value.
Looks like this is a regression from #129. Should be easy enough to fix.
Something like this should do the trick
diff --git a/src/js/components/HypoAssignment.vue b/src/js/components/HypoAssignment.vue
index 58da954..cf0f47a 100644
--- a/src/js/components/HypoAssignment.vue
+++ b/src/js/components/HypoAssignment.vue
@@ -70,7 +70,7 @@ export default {
}),
computed: {
hypo () {
- const weight = getInRange(this.assignment.weight, 0, 100, true);
+ const weight = getInRange(this.assignment.weight, 0, 100, true) || 0;
const new_fp = weight * 0.01 * gradeToFP(this.assignment.grade) + ((100 - weight) * 0.01 * this.currentFP);
return {
fp: new_fp.toFixed(2),
If anyone is willing to help with this, I would really appreciate it.
It is possible for the final percent displayed and the grade displayed to seem strange. For instance, it is possible to have the text say Your grade with the selected assignment would be B+ with a final percent of 75.00
which may seem strange but is calculated that way because the actual final percent value calculated is 74.99900000000001
which is less then 75 so it interprets as a B+
but the value shown has been found by (74.99900000000001).toFixed(2)
which rounds the value to 75.00
.
What to actually do about this isn't exactly clear. It depends on how Powerschool deals with values such as this. I presume it would round up and consider it an A
so SAS PES should do the same. In this case, getKeyRange
should be called with the final percent rounded to 2 decimal points as well.
An easy way to do this would be to replace fpToGrade(new_fp)
with fpToGrade(parseFloat(new_fp.toFixed(2)))
There used to be a feature to show the last seen grades. It was removed as the code for the feature was quickly and sloppily made.
It would be nice if this feature could be reimplemented.
The implementation would need to be able to handle multiple users on a single system, parents' Powerschool, and either have security to prevent others with access to the computer looking at the grades or warn the user that others may be able to see their grades on the system.
Latest Version
during the period where semester 1 grades are out after exams, PES incorrectly calculates cumulative GPA, possibly double counting the current semester.
anecdotally, most users of the extension are unaware of the extension options menu, or at least unaware that it can be used to toggle last seen grades, it might be beneficial to make this more visible or provide a popup of some kind to inform users that this option to enable last seen grades is now available.
This master issue contains a list of Renovate updates and their statuses.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
These updates were closed unmerged and will not be recreated unless you click a checkbox below.
This issue contains a list of Renovate updates and their statuses.
These updates are currently rate limited. Click on a checkbox below to force their creation now.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
@babel/core
, @babel/plugin-proposal-class-properties
, @babel/plugin-transform-runtime
, @babel/preset-env
, @babel/register
, @babel/runtime
, babel-loader
)vue
, vue-loader
, vue-template-compiler
)These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.
In the extension and some of the documentation, there are links to the project website at https://gschool.ydgkim.com/saspowerschool/. I'd like to deprecate this website so all links in the extension should be changed to point at the GitHub repository or removed entirely.
Let's also take some of the images from the site and move it into this repository and into the README.
Should we also look into making a dedicated page for this project and documentation that can be kept in this repository?
EDIT: Forgot to mention, README download links should probably link to the GitHub releases page. I will start adding Firefox releases there when releasing a new version.
Add the ability to show what the cumulative GPA will be once the current semester ends with the current GPA.
This is will require some way to figure out how many semesters the student has been at SAS for.
This extension still has quite a few active users, so if anyone is interested, we could use new student maintainers for after I've graduated. This would mostly just involve fixing the bugs that pop-up/handling changes to powerschool, but it can also involve adding new features/more development if you so choose.
Anyone interested?
This extension has had some negative effects on the school community. We should look into how we can put the numbers provided by this extension in some more context.
Goodhart's Law: "When a measure becomes a target, it ceases to be a good measure"
Currently category weighting only works by assuming every assignment in a category is weighted equally. This applies to a minority of classes that employ category weighting, as such it may be useful to add a way for a user to specify individual assignment weighting in each category. Perhaps another box on the grade table that defaults to (1/# assignments in category) that allows the user to specify weighting.
several users have reported that second-semester detection is not working, the extension is not showing current semester grades, I believe part of the issue is a missing parameter in the call to the refactored isSecondSemester method, but there seems to be something else as well, even once that parameter is fixed, the extension is not displaying semester 2 grades.
Extension Version: v0.18.1
The ability to have an extra indicator on the main page for classes that have missing assignments would be nice.
This would probably need to come with a "acknowledged" button for students to request that all missing assignments up to this point should be ignored.
Add feature to calculate GPAs like colleges (remove 4.5 A+).
Low priority as it's a big feature, maybe we'll see in 2.1.0/2.2.0
It seems that SAS has disabled the grade history tab on powerschool, they also appear to have changed something about the page itself(which is still accessible by directly going to the https://powerschool.sas.edu.sg/guardian/termgrades.html url) causing the extension to be unable to calculate cumulative GPA and last semester GPA.
Sometimes, for example if the extension updates, the content script gets run again. We should add something where the extension adds a marker to the dom when run then if it is detected on next run, shows a message saying to reload the page for updates to go into effect. Or maybe instead of the dom we can put it on window
?
Several people seem to have encountered this issue when logged into Chrome with their SAS email. A current workaround is to log in to chrome using a non-SAS email address. It might be worth contacting SAS to ask if they take issue with a specific part of the extension or if it was a mistake.
Some users might be apprehensive at the idea of having SASPES show their grades prior to logging in, I don't think this is a huge security concern since to use this, you still need direct hardware access. However just to avoid any issues, it might be better to make this feature opt-in instead of opt-out, however, if we do make it opt-in, I think we should add a fairly visible dialog that users will see on first use/and some type of persistent opt-in button located on the Powerschool page that would automatically opt users in.
It would be nice if the 1st semester GPA would be displayed as well during second semester.
PowerSchool defaults to not showing classes only taken in semester one on the main grades screen. This results in that grade not being factored into the GPA. This can be solved by relying on grade history for S1 gpa calculation. This already works once S2 starts, but until then it is relying on S1 grades reported in courses & grades.
Currently, after loading the main page, the browser scrolls back up to the front of the page.
EDIT: It looks like this is actually an issue with Powerschool. This could be made part of the enhancements but is not an issue with SAS PES.
It turns out that PowerSchool no longer shows the first semester dropped courses like PE on PowerSchool, this leads to the previous semester GPA calculation being inaccurate as it doesn't factor in dropped courses. A simple fix to this would be to use part of the cumulative GPA calculation code to use the grade history to calculate the first-semester course.
Allow users to save custom categories after creation. Current behavior acts like they don't exists when saving because we shouldn't save new assignments and new categories may contain custom info. Maybe some lookup table or button to restore saved custom categories with no assignments inside?
Enhancement requested/pointed out by Jam Parpia.
It would be nice if SAS PES had a welcome page to introduce people to the features of the project, allow them to opt out of analytics easily, and invite them to contribute to the project. This should also include a disclaimer that this project comes with no warranty, similar to #22.
Would it be nice to convert the changelog format to be based on https://keepachangelog.com?
Add some extra indicators and explanations for clarity, as well as fix some text errors.
Hey, just a quick note: I'm @Crystalflxme just on another account. Anyways, if you add a hypothetical assignment with a weighting percentage of over 100% it causes the letter grade to not show. Just see for yourself:
I know this isn't important at all, but it's just something to polish.
Add firefox support.
I believe @danieldanhe was working on a PR for this. Please update me here if there are any developments.
Perhaps we should have a disclaimer on the extension to warn people that information given by the extension should not be fully trusted and teachers have the ability to change final grades regardless of what Powerschool or this extension calculates.
I think if it's not being actively used anymore it might be worth it to completely remove all the analytics code that is part of the extension.
This project needs some SAS student maintainers to take over.
Preferably, it'd be best to have two maintainers, one doing UI design and the other working with the software.
Anyone up for it?
It seems that the cumulative GPA calculation is counting an out of date version of the current semester from the grade history instead of from PowerSchool, this is because SAS has released the current grades to grade history already it seems.
I'll try and fix the logic on the cumulative GPA to avoid this particular case.
It would be nice to be able to hypothetically exempt assignments from a course to see how this would change the final percent and grade of the course.
This would require somehow figuring out what the weighting of the assignment is. I'm not sure how to do this yet.
The grade parsing for semester two is currently broken and needs to be fixed. When Powerschool was updated at the start of the 2019-2020 school year, the layout of Powerschool changed. To keep the extension working, the parsing for the first semester on the main page was improved but there wasn't time to fix parsing for the second semester. This has to be fixed soon.
The code for it can be found here.
https://github.com/gary-kim/saspes/blob/a623f8ed318d2fad85777f79279ea409c7a4173e/src/js/saspowerschoolff.js#L87-L95
The easiest fix would likely be looking for td a[href^="scores.html"]
like the semester 1 code and getting .eq(0)
and .eq(1)
.
Something like $course = $grade_rows.eq(i).find('td a[href^="scores.html"]').eq(0)
and let first_grade = $grade_rows.eq(i).find('td a[href^="scores.html"]').eq(1)
should do the trick.
There are a few unit tests that are currently erroring. We should fix that as soon as possible. The issues are from the following file:
https://github.com/gary-kim/saspes/blob/6e4c1d896d121360abf92005979ac975af4c9d7a/src/js/helpers.js#L44-L63
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.