Skip to content

BrycensRanch/Focus-SIS

Repository files navigation

Focus SIS Grade Scrapper

Automatically fetch your grades, copy your data elsewhere to be used freely in other applications, since they don't have a REST API for Students.

⚠️ I take no responsibility if you get punished for using this, if we go down, we go down together! ⚠️

IMPORTANT: NOT WORKING ATM

This tool no longer works on the new redesigned version of SIS due to change of selectors and various things. Update coming soon, but it's not exactly my highest priority. Godspeed.

Logins into SIS and scrapes grades and quarter for current classes, not to mention every class you've had in SIS, thanks to the "Grades" page.

How this was made possible?

Usually, it's VERY easy to scrape a website for data, especially one as simple as Focus SIS, which lacks any type of captchas and is VERY organized. However, they implemented an anti-inspect element script that prevents you from opening Inspect Element. Thanks to the fact that the script isn't inlined, it isn't always loaded first, so you can cancel loading Focus SIS when you have the dashboard loaded, but not other non-critical scripts.

Things to be aware of

This scrapper was designed around Palm Beach County's District portal. I am aware that the Focus SIS software can be utilized by other districts, however, their implementation may be older or newer than the one tested. Support is only provided for Palm Beach County's District Portal. If you'd like to test if it works on your district's version of Focus SIS, you can easily edit the SISFocusBaseURL variable in index.js.

Features

  • Quarter detection; outputted to console
  • Can get ALL your classes from SIS.
  • Session saved (we legit just save cookies, it's that easy)
  • Saves your active classes grades to a JSON file.
  • Evasion measures + tries to act like a human
  • Assignment parsing

Tips

If you can, you should try to run this project LOCALLY. Not behind any VPN or anything like that, so the scrapper doesn't get flagged as a possible robot. This project SHOULD be able to be hosted on a Raspberry Pi.

Coming Soon

  • Webhook/POST to another service?
  • Repeated scrapping
  • SQLite integration?
  • Types
  • Not Graded assignment parsing 😭

Getting Started

  • Install Node.js
  • Run npm install
  • Rename example.creds.json to creds.json
  • Populate the JSON file with your credentials
  • Profit

Warning, again

Do not share your username and password with others. If done, you could have A HUGE amount of your personal information leaked. That's something you don't want. I made this project just to simply check my grades. If you feel this code may be insecure or malicious, review it. It's very simple, to be honest.

Technologies

Contributing

Of course, contributions are welcome! I know right now the scrapper is limited in what it actually does with data, so I'd love to hear other people's ideas.

Found any bugs/ the project is broken? Leave an issue

About

Scrape your grades and take control of YOUR DATA!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published