ukeysuite
Bu dosyayı Türkçe olarak da okuyabilirsiniz.
A suite to retrieve course information, keep a database and download items from UKEY (Uludağ KEY). ukeysuite
is powered by Puppeteer – a Node.js library to automate Chrome/Chromium, automating logins and scraping related content.
None of your data – including your username (student code), password or any of the content accessed on UKEY leaves your device (if you don't explicitly share, upload or commit parts of it. See below for more details). ukeysuite
is fully open-source and is licensed by GNU GPL v2.
Example Use Cases
1. Credentials and logging into UKEY
File: credentials.json
{
username: "032090001",
password: "verysecure",
}
const credentials = getCredentials('credentials.json');
const instance = await loginToUkey(credentials);
2. Fetching taken courses
const courses = await fetchCoursesInstance(instance);
console.log('Courses I take this semester:');
courses!.forEach((course) => { console.log(course.courseName) });
3. Create a comparable database
createCourseDatabaseFile(courses, instance);
Features
Feature | Exists | Version |
---|---|---|
Read/write credentials file | DONE | v1.0.0 |
Fetch all taken courses | DONE | v1.0.0 |
Create database file with courses and course items | DONE | v1.0.0 |
Full types, interfaces and comments | DONE | v1.0.0 |
Download all files, select courses, or select items | TODO | ... |
Data Privacy
As previously stated, ukeysuite
is designed to be run on any environment (including public-facing, public IP-addressed production servers), and it has no known security flaws or backdoors. By using this library, you accept that any data you generate, any data you explicitly or inexplicitly share, or commit to VCS that is a product of ukeysuite
, and any metadata that can be associated with it is in your liability. It is your obligation to ensure that your private data, which is generated by ukeysuite
, is securely stored and, if transported by any means, is transported securely.
Contributing
I welcome contributions to enhance and improve this library! Whether you want to fix a bug, add a new feature, or suggest an improvement, your contributions are highly appreciated.
Just so you know, by contributing to this project, you agree to license your contributions under the same license governing this library. If you're unsure or have questions about the contribution process, please get in touch with me by opening an issue.
Kapanış
Feel free to contact me for collaboration on anything!
Ferit Yiğit BALABAN, fybalaban@fybx.dev
My Website • My Bento • X • LinkedIn
2023