Coder Social home page Coder Social logo

schtoics's Introduction

Schtoics

Pronounced "Skuh-tow-icks", Schtoics is a tool that converts a UCSD WebReg schedule and the official UCSD Academic Calendar to a .ICS file that can be used in Google Calendar.

This script should work indefinitely, provided UCSD does not change WebReg or the academic calendar page in any major ways. It was last checked and was working for the Spring 2024 Quarter on 04/06/2024.

This was a project done for fun on my own time, I do not make any guarantees about its functionality.

Features

  • Supports every kind of class type, e.g. seminars, labs, exam-only classes, summer classes, etc.
  • Automatically scrapes information from the official UCSD calendar in order to determine correct start and end dates for fall, winter, spring quarters and both summer sessions.
  • Adds holes in schedule for holidays.
  • Handles classes with multiple time-slots for an exam/discussion which make you pick one by allowing you to add either all of the options or just one to your calendar.
  • More generally, warns you if theres duplicate entries and allows you to choose which ones to keep.
  • Allows you to choose whether or not you’d like to combine the official UCSD calendar with your schedule calendar (useful if you use the program for different quarters in the same schoolyear).
  • Includes planned/waitlisted classes from your schedule.

If you find out that your schedule doesn't work with Schtoics, send me the .html file with your class list information at [email protected] and I'll make it work.

Usage

There are two options, you can have the script either sign into WebReg for you and scrape the required information, or you can provide the program with an html copy of your WebReg page or just the table with your schedule on it. When providing the script with a copy of your WebReg page, make sure the file is located in the same directory as the script, and make sure the table is actually included in the file (double check by opening the .html file and look for the table there). If you do not see the table after saving the page, inspect element and copy and paste the html code for just the table into a file and put it in the same document (make sure it has some sort of extension, if there is none, the script will assume you left out .html).

How to Run

  • Download python for your platform (last checked with Python 3.11)
  • Download Firefox for your platform.
  • Download the main.py and requirements.txt files and place them in the same directory.
  • Open a terminal and navigate to the directory where you placed main.py and create a python environment by running python -m venv .
  • Install the additional required packages by running ./bin/pip install -r requirements.txt
  • Run ./bin/python main.py and follow the instructions.

Adding to Google Calendar

  • Go to calendar.google.com
  • Click the "+" next to "Other Calendars"
  • Choose "Create new Calendar"
  • Name it something like "UCSD Schedule" and set the timezone to LA
  • Choose "Import & Export" in the leftmost menu
  • Choose "Select file from your computer" and navigate to the Calendar.ics file (should be located in the same directory as the script)
  • Choose the calendar you created from the dropdown
  • Click import

IT IS VERY IMPORTANT THAT YOU MAKE A NEW CALENDAR FOR THIS FILE, AS MY PROGRAM IS NOT PERFECT AND CAN SOMETIMES BREAK

If you have problems you can try using an incognito window or use another browser (Firefox seems to work best).

License

GNU GPLv3

schtoics's People

Contributors

isaiahtx avatar samir-rashid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

samir-rashid

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.