With all the duties a Student Leader must perform on a daily basis, it can be challenging to remember the little things such as monitoring the schedule. This extension aims to help with that. Utilizing advanced programming technology, and hours of pain, sweat, and tears, this extension now does the thinking for you. It reminds you when technicians should be starting their shifts, when they should be ending their shifts, and who should be on shift right now.
To help you read through the schedule, after sending a notification, the schedule on Schedule Source is modified to show you who's getting on, who should be on, etc! More information on this below.
- Download and extract the .zip file containing the extension
- Save the folder somewhere you'll be able to find later
- Open Google Chrome and navigate to the options menu by clicking on the three dots in the top right corner of the browser
- Click "More tools"
- Click "Extensions"
- In the top right, click "Developer Mode"
- Click "Load unpacked"
- Open the main folder containing the extension and then select the 'src' folder
- If you get an error saying the manifest could not be loaded, make sure you're selecting the 'src' folder and try again
- The extension should now be showing up in your browser
- If you can't see the extension, you may have to click on the small puzzle piece to show all extensions
Due to an issue with Chrome native notifications and macs running Catalina or higher versions of MacOS, there are a few extra steps to take to enable extension functionality:
- Enter chrome://flags in the address bar and hit enter
- Search for "Enable native notifications"
- Change "Enable native notifications" to Disabled
- Restart Google Chrome
- To update the extension, first download the new .zip file containing the updated code
- Unzip the file and copy all of the files (including src)
- Paste the new files into the folder where the old version of the extension is currently installed
- Click "replace" or "overwrite" if prompted
- Open up the extensions menu in Chrome and click "Update"
- Check the options page for new options
- Your old preferences will be saved between versions
- Right click on the extension and click "Options"
- Configure the extenion as you'd like and save the configuration
- Navigate to todays schedule in schedule source
- Click on the extension (Schedule Source icon) in your extensions
- Click "Run once" to make sure you're receiving notifications from the extension and it's able to interact with Schedule Source (It may take a few seconds, so be patient)
- Click "Toggle" to activate the extension
- Wait for the next shift change and see what happens, or click "Run once" again to highlight the schedule
- Color key:
- Shift highlighted in 🔴red: This shift is ending
- Shift highlighted in 🟠orange: This shift is starting
- Shift highlighted in 🟢green: This shift is on-going
- Shift highlighted in 🟡yellow: This is your shift
- Clicking the notification will bring you to the schedule on Schedule Source
- There are a lot configuration options in the extension's options page, if something's bothering you, see if you can change it there
- If you have any suggestions, questions, or run into any bugs, send an email to becker@tamu.edu, open an issue in the repository (https://github.tamu.edu/matthew-becker/ScheduleSourceAssistant/issues), or shoot me a message on Teams!
- Unfortunately, due to the way the Google Chrome.Notifications API works on MacOS, this is an unavoidable issue and can not be fixed.
If the window is too small and one row becomes the width of multiple rows, the extension does not behave as expected
- Due to the length of some names in Schedule Source, if the schedule window has it's width reduced to the point where any one row takes up two lines to accomodate the name, the extension is not able to properly color-code the schedule.
- To avoid this issue, it's recommended to keep the window wide enough where each row is the same size.
- Bug squashing (I'm sure they're lurking around every function)
- No further plans for now, but I'm always open to suggestions!
- The extension can only read information from Schedule Source, no other websites are listed in manifest.json (You can check this manually if you'd like)
- The only information stored by the extension is your configuration options and a few backend variables (ex. which tab the schedule is on)
- No login information or other personal information is stored in the extension
- Unlike Honorlock, this extension doesn't even collect data that could be sold to third parties
- https://developer.chrome.com/
- https://stackoverflow.com/questions/38261197/how-to-check-if-a-key-is-set-in-chrome-storage/38261950
- https://stackoverflow.com/questions/40613173/chrome-extension-oninstalled-event
- https://www.w3schools.com/ (Essentially all the CSS)
- https://levelup.gitconnected.com/how-to-use-background-script-to-fetch-data-in-chrome-extension-ef9d7f69625d
- https://stackoverflow.com/questions/39840560/chrome-extension-get-active-tab-id-in-browser-action-popup
- https://sung.codes/blog/2019/02/17/getting-dom-content-from-chrome-extension-2/
- https://stackoverflow.com/questions/35882089/popup-is-not-appearing-when-used-page-action/35882614
- https://stackoverflow.com/questions/11821261/how-to-get-all-selected-values-from-select-multiple-multiple
- https://stackoverflow.com/questions/14707313/set-checkbox-label-to-right-side-or-fixed-position
- https://stackoverflow.com/questions/16571393/the-best-way-to-check-if-tab-with-exact-id-exists-in-chrome
- https://stackoverflow.com/questions/2705583/how-to-simulate-a-click-with-javascript
- https://developer.mozilla.org/en-US/
- https://stackoverflow.com/questions/17567624/pass-a-parameter-to-a-content-script-injected-using-chrome-tabs-executescript
- https://stackoverflow.com/questions/11517150/how-to-change-background-color-of-cell-in-table-using-java-script
- https://stackoverflow.com/questions/11509830/how-to-add-color-to-githubs-readme-md-file