Since Tokyo Institute of Technology is merged and renamed to Institute of Science Tokyo along with the web system renewed, this project is archived since Sept. 23, 2024.
A Chrome extension to ease the use and improve user experience of the IT facilities in Tokyo Institute of Technology.
Currently it supports only auto-login and course calendar generation.
You can select pages from the navigation bar on the left. Importing and exporting options via JSON files is also possible in any page.
Language
Currently supports English, Japanese and Simplified Chinese.Auto Login
: If checked, he extension will log in when the portal page is openedPeriods
: The interval of each periods. Time table can be found on the official website and the Educational Web System system.
The account, password and matrix authentication code is configured inside options page. One can open options page by right-clicking the extension icon.
After the Portal page is open, if Auto Login
is checked,
the extension starts to log in automatically. Otherwise, the Matrix Code Authentication button needs to be manually clicked, and a hint is displayed under the button indicating that the extension is ready.
If there is any wrong info, an alert dialog will be popped.
A button of label Generate Calendar
will appear if available.
- After an OCW course detail page is opened, the button will appear on the right side under the course title.
- After the Course Registration page of the Educational Web System is opened, it will appear above the
Print
button.
After the button is clicked, one can set the interval of all quarters, choose which day to omit on the popped-up window.
Click the Generate iCalendar File
on the bottom of the window, and a link will be generated.
The generated file's format is iCalendar format with extension .ics
. It can be imported to common calendar management softwares like Google Calendar.
- All private information stored are encrypted by AES-256 using key and initial vector generated by the user's e-mail address & identification code. If no users are logged in to Chrome, a default key and iv will be used to encrypt and decrypt data instead.
- This means:
- If the user status is changed (e.g. you logged out or switched an account), the data stored inside the storage will be no longer usable.
- If you leaked both your e-mail and identification code, then the data is possible to be decrypted by anyone who has the source code of this extension.
- For more details, see https://developer.chrome.com/docs/extensions/reference/identity/#method-getProfileUserInfo
- This means:
- No HTTP request is created directly by this extension during its lifetime.
- This means no information is sent manually to any servers (including my private ones).
- You can output and input information in plain text in options page. Please store them in some location safe and trusted.
By using this extension you agree with The developer of this extension is not responsible for any privacy leaks.
The project uses
- Vite and CRXJS for packaging
- Mithril.js for frontend rendering
- md5.js and CryptoJS for encryption and decryption
- ical.js for calendar generation
- day.js for immutable datetime representation
- i18next for internationalization
- Pure CSS for UI display.
If you want to build and debug in your own environment, follow this instruction.