ioStudKit is an open-source Swift Package that provides access to Sapienza University's InfoStud platform, enabling authentication, data retrieval, and exam reservations for your iOS/macOS apps.
Authentication
- Login
- Security question and password recovery
- Passsword reset
Profile
- Student infos
- Certificates
- Photo and student card
Classroom
- Classroom and timetable
Exams
- Doable and done exams
- Active and available reservations
- Insert and delete reservations
- Course surveys (OPIS)
- Pdf reservation
- Calendar events
Taxes
- Paid and unpaid taxes
- Current ISEE and ISEE history
News
- News and newsletter events
You can add IoStudKit to your Swift project either in Xcode or via the Swift Package Manager in Visual Studio Code. Steps may vary slightly depending on your IDE version.
-
In the menu bar, select File > Add Packages…
-
Paste the repository URL: https://github.com/IoStud/ioStudKit
-
Choose the version requirement and target project.
-
Click Add Package.
-
In your Swift files, import the module:
import IoStudkit
-
Edit your Package.swift to include IoStudKit as a dependency:
import PackageDescription let package = Package( name: "YourProject", dependencies: [ .package(url: "https://github.com/IoStud/ioStudKit", from: "1.0.0") ], targets: [ .target( name: "YourProject", dependencies: ["ioStudKit"] ) ] )
-
Build your project:
swift build
All functionalities are accessible through a single IoStud instance by calling the corresponding methods. First, create your IoStud client with your student ID and password. The library handles login and token refresh automatically.
let ioStud = IoStud(studentID: "12345678", studentPwd: "yourPassword")
Below are common usage examples:
if let bio = try await ioStud.retrieveStudentBio() {
print(bio.name, bio.institutionalEmail, bio.academicYearOfCourse)
} else {
print("Error while fetching student bio")
}
if let doneExams = await ioStud.retrieveDoneExams() {
for exam in doneExams {
print("Course:", exam.courseName)
print("Grade:", exam.grade)
print("Date:", exam.date)
print("-----")
}
} else {
print("Error while fetching completed exams")
}
This project is not an official InfoStud client and is not affiliated with Sapienza University or the InfoStud platform in any way. It was developed independently by the contributors and does not include any input or endorsement from the InfoStud team.
A significant part of the IoStudKit code was done by adapting and taking inspiration from OpenStudDriver, an open-source Java library primarily built for Android applications, which allows access to Infostud.
- The original OpenStudDriver code was developed by @leosarra and other contributors.
- The current, up-to-date OpenStudDriver code is maintained by @matypist.