Your college attendance & academics — beautifully synced.
BunkBook is a native iOS app that gives KIET students a clean, fast dashboard to track attendance, view schedules, check exam results, and stay updated — all from their phone.
It connects to the KIET CyberVidya portal, securely captures the auth token via an embedded WebView login, and then fetches all academic data through the university's API.
| Feature | Description |
|---|---|
| 📊 Attendance Dashboard | Overall & per-subject attendance percentage with visual indicators |
| 📚 Course Overview | All registered courses with component-wise attendance breakdowns |
| 📅 Timetable | Daily class schedule with faculty, classroom, and timings |
| 📝 Exam Schedule | Upcoming exam dates, course details, and evaluation types |
| 🎓 Exam Results | Semester-wise grades, SGPA, CGPA, and subject-level scores |
| 🎫 Hall Ticket | View and download hall tickets for exams |
| 📆 Academic Calendar | Holidays, events, and important academic dates |
| 🔔 Notifications | Push notifications for attendance changes and alerts |
| 🔐 Secure Login | WebView-based authentication with token capture from CyberVidya |
The project follows the MVVM (Model-View-ViewModel) pattern:
Ksync/
├── App/
│ └── BunkBook App.swift # App entry point & navigation root
├── Models/
│ ├── AttendanceModels.swift # User, courses, attendance, exams, scores
│ └── EventModel.swift # Academic calendar events
├── ViewModels/
│ └── HomeViewModel.swift # Central data-fetching & state management
├── Views/
│ ├── Components/
│ │ ├── AttendanceComponents.swift # Reusable attendance cards & widgets
│ │ └── WebView.swift # WKWebView wrapper for login
│ └── Screens/
│ ├── HomeScreen.swift # Main dashboard
│ ├── LoginPage.swift # WebView-based authentication
│ ├── ScheduleScreen.swift # Daily timetable
│ ├── CourseDetailScreen.swift # Per-course attendance & lectures
│ ├── ExamScheduleScreen.swift # Upcoming exams
│ ├── ExamResultView.swift # Semester-wise results & grades
│ ├── HallTicketView.swift # Exam hall ticket viewer
│ ├── EventScreen.swift # Academic calendar
│ ├── AboutScreen.swift # App info
│ └── SplashScreenView.swift # Launch animation
└── Services/
├── AttendanceMonitor.swift # Background attendance tracking
└── NotificationManager.swift # Push notification handling
- Xcode 15+ (with Swift 5.9)
- iOS 16+ device or simulator
- A valid KIET CyberVidya student account
-
Clone the repository
git clone https://github.com/yourusername/Ksync.git cd Ksync -
Open in Xcode
open Ksync.xcodeproj
-
Build & Run
- Select your target device/simulator
- Press
Cmd + Rto build and run
-
Login
- The app opens a secure WebView to the KIET CyberVidya portal
- Log in with your student credentials
- The auth token is captured automatically and you're taken to the dashboard
- Auth tokens are stored locally in
UserDefaults/@AppStorage - No credentials are stored or transmitted by the app — login happens entirely through the official CyberVidya portal
- All API requests use the captured token with HTTPS
| Technology | Usage |
|---|---|
| Swift 5.9 | Primary language |
| SwiftUI | Declarative UI framework |
| WKWebView | Secure login via embedded browser |
| MVVM | Architecture pattern |
| UserDefaults | Local token persistence |
| Async/Await | Modern concurrency for API calls |
| Push Notifications | Attendance alerts |
This project is for educational and personal use.
