Skip to content

digas99/schedule-ua

Repository files navigation

schedule-ua

SchedUA - Schedule for Universidade de Aveiro

Latest Release Chrome Users

Browser Extension for easy access to your Schedule from Universidade de Aveiro. This extension uses the PACO-UA API to fetch the data from the schedule and present it in the Extension Popup.

logo

chrome-webstore
Idea for this project: jtsimoes

Table of Contents

  1. Latest Features
  2. Usage Guide
    1. Load Schedule
    2. Schedule Page
    3. Settings
  3. Pictures

Latest Features

Bug Fixes

  • Fixed minor bugs on bottom message bar
  • Fixed bug when adding a new class on an expanded day (with overlapping classes) that would cause the new class to be added to the wrong day
  • Limited expansion of days with overlapping classes to one day at a time (expanding a day will now collapse any other expanded day)

(All changelogs)


Usage Guide

This is a simple browser extension that takes a json containing information on a schedule and shows it using HTML Tables. Because it is a browser extension, you can check your schedule anytime, anywhere while browsing the web.

Load Schedule

The schedule can be loaded in many different ways, using the the first page of the extension. Some of the ways are as follows:

  • PACO API: This extension uses an unofficial API that fetches data directly from https://paco.ua.pt/secvirtual. One of the endpoints is the student's schedule. For this to work, the institutional email and password need to be provided, hence the "login" page at the beginning [3]. This will fetch the schedule configuration into the extension.

  • Upload directly from PACO: While using the extension, two buttons are added to the schedule interface [2] at https://paco.ua.pt/secvirtual/horarios/c_horario_aluno.asp. If you click the Upload ⭱ button, the schedule configuration will be added to the extension.

  • Drag and drop configuration file: If you have a configuration JSON file of the schedule, you can simply drag and drop it in the "login" page at the beginning [3]. A configuration file can be obtained either within the extension, on an already setup schedule, through the Download ⭳ button in the side bar [1], or through the same button within the schedule interface in https://paco.ua.pt/secvirtual [2].

  • Use file explorer: Instead of droping the file into the right container, if you click that container, your operating system's file explorer will open and you can load the configuration JSON file from there.

  • Through the Browser Console: A less convenient way would be to use the Browser Console and, using JavaScript, update the storage manually. To achieve this, do the following:

    • Right click anywhere within the Extension and select Inspect
    • When the DevTools window opens, click Console in the top navbar
    • Write the code of [example code]
    • Press Enter. If the ouput is something like Promise {<pending>}, then it worked

Example code

// pass the JSON schedule configuration to the function set()
chrome.storage.sync.set({
    "schedule": {
        "Segunda": [
            {
            ...
            },
            {
            ...
            },
            ...
        ],
        "Terça": [
            {
            ...
            },
            ...
        ],
        ...
    },
    "school_year": "2021/2022",
    "semester": 1
})

To know more about the format of the Schedule Configuration JSON, go to https://github.com/digas99/paco-ua-api/blob/main/docs/README.md#hor%C3%A1rio.

Schedule Page

When a schedule is successfully loaded into the extension, it is displayed in a different page, on a table [1]. When you hover over the schedule button on the sidebar, you can select the view of the entire Week (W), or simply the classes for Today (N), the day before (Yesterday (Y)) and the day after (Tomorrow (T)). The view you choose will show up the next time you open the extension.

Clicking on the days of the week in the Week view will also show the classes for that one day specifically.

Every view of a single day will show a lateral info container with details on the classes for that day.

The lateral navbar has three buttons with actions on the schedule:

  • Expand/Trim: adapt the number of hours shown in the schedule, where trimming removes the hours not used for classes (holes in the schedule won't be removed)
  • Download Schedule Configuration: download JSON file with the configuration of the schedule
  • Print Schedule: take a picture of the schedule and download it

Days with overlapping classes have arrows on them. When right clicking on them, their column expands showing the overlapping classes.

Settings

There is a page that provides ways of customizing your experience with the app. The settings are the following:

  • Schedule
    • Schedule on Startup: choose which type of schedule should show when opening the extension.
    • Subject Colors: customize the colors of each subject.
    • Highlight Cell of Now: Highlight the cell in the schedule that corresponds to the current time.
    • Limit Schedule Trim: limit min and max hours of the trim. This values are taken from the schedule itself.
    • Show Popup with Information on a Class on hover: show popup with information when hovering over a class wihtin the schedule.
  • General
    • Remember Email: remember email the next time you logout.
    • Color Theme: app color theme.
      • Light Mode
      • Light High Contrast
      • Dark Mode
      • Dark High Contrast
      • Sapphire
      • Ambar
    • Show Current/Next Class on the Extension Icon: Show current/next class of the day on the extension icon.
  • PACO
    • Download and Upload buttons: extra buttons above the schedule in the schedule page in PACO - Secretaria Virtual.

Pictures

1 - Some pages within the extension popup.

picture1

picture2

2 - Possibility to either download the schedule configuration, or upload it directily to the extension.

picture3

3 - Different ways to load the schedule.

picture4