A native iOS app for browsing Technion course materials — built after the university's own resource site went down and left nothing usable in its place.
The Technion had a community resource site (studybuddy.co.il) aggregating lessons and exams by course. When it became unreliable I decided to build a cleaner mobile version: one that loads fast, works offline for saved content, and actually looks like a modern iOS app.
- Loads a course list from a remote CSV (hosted on GitHub), so data stays up to date without app updates
- Search with live results across all courses
- Browse lessons and exams per course
- Scrapes lesson links directly from studybuddy.co.il using SwiftSoup when needed
- Favorite courses, persisted across sessions
- Per-week completion tracking
- Home screen quick actions ("Show Favorites") via the iOS shortcut system
- Localization support (Hebrew/English)
- Swift, SwiftUI
- SwiftCSV — CSV parsing for the course list
- SwiftSoup — HTML scraping for lesson links
UserDefaults— lightweight persistence for favorites and completion state
The app is small but structured deliberately:
StudyBuddy— root view, navigation stack, search area, CSV fetch on launchCoursesData— data models (Course,Exam,Courses), scraping logic, state managementCourseView— per-course screen with lesson/exam tabs and toolbar actionsSearchViewModel— typed search with live filtering over the course listActionService/AppDelegate— handles iOS quick actions registered at startup
This was a self-directed project during a break in studies — I learned SwiftUI from scratch, following guides but consistently going beyond them to add my own features and design preferences. The scraping layer and the GitHub-hosted CSV data source were both decisions I made to keep the app useful without needing a backend.