Skip to content

danycli/Assignly

Repository files navigation

logo

Assignly — COMSATS Student Portal Client

A native Android client for COMSATS University Islamabad, Abbottabad Campus (CUIIT) students
to manage academic life, track attendance, view results, and submit assignments — without ever opening a browser.

Platform Language UI Min SDK Target SDK


Battle-tested. This app has been personally used by the developer to navigate academic life and submit real assignments through the COMSATS student portal. Every feature has been validated in production, not just on paper.


Overview

Assignly is an all-in-one Android client for the COMSATS Student Information System (SIS) portal. It transforms the clunky web experience into a native mobile app — complete with a central dashboard, attendance insights, result tracking, fee management, and a smart timetable.

No more fighting with broken mobile web layouts, missed deadlines, or forgotten lecture rooms.


Key Features

Central Academic Dashboard

The heart of the app. A unified hub that surfaces your entire academic status:

  • Student Identity Card: Shows your profile photo, registration number, program, and section.
  • Smart Badge: Automatically detects and highlights your Scholarship Status.
  • Academic Snapshot: At-a-glance view of your current CGPA, average Attendance, and total Registered Credits.
  • Quick Shortcuts: One-tap access to all portal modules (Timetable, Result, Fee, etc.).

Timetable & Class Tracker

A live timetable that ensures you're never late for a lecture:

  • Live "Now" Indicator: Highlights the class currently in progress with a real-time progress bar.
  • Next Class Widget: Shows exactly what's coming up next and how long until it starts.
  • Swipeable Days: Smoothly navigate between Monday and Saturday.
  • Offline Caching: Your schedule is saved locally; check your room number even without internet.
  • Smart Reminders: Automated notifications before each class starts.

Attendance Tracker

Stay on top of your presence:

  • Aggregate Percentage: See your total attendance average across all courses.
  • Detailed Logs: Drill down into any course to see a full history of presents, absences, and leaves.
  • Attendance Insights: Displays a sarcastic (but helpful) status message based on your attendance levels.

Assignments Management

Manage your submissions with ease:

  • Clean Search & Filters: Quickly find assignments by subject or filter by Due Today, Next 3 Days, or Next 7 Days.
  • Long-Press Actions: Copy titles or jump directly to the course portal via a context menu.
  • Instruction Downloads: One-tap fetch for instruction files (handles redirects and PostBack triggers).
  • Flexible Uploads: Pick any file and upload with background support. Refresh is automatic.
  • Submission History: A dedicated screen for submitted and closed assignments with instructor feedback.

Academic Results & Marks

Check your performance without the stress:

  • Result History: View your GPA/CGPA and course grades for every completed semester.
  • Internal Marks: Real-time view of Sessional 1, Sessional 2, Quizzes, and Assignments marks.
  • Marks Notifications: Get notified the moment a professor uploads a new sessional or quiz result.

Secure & Private

  • Biometric App Lock: Secure your academic data with Fingerprint/Face ID.
  • Encrypted Storage: Credentials are stored using Android AES-256 encryption.
  • Password Management: Change your portal password directly from the app with built-in rule validation.
  • Session Sync: Smart WebView session syncing for CAPTCHA handling and login persistence.

Tech Stack

Layer Technology
Language Kotlin
UI Jetpack Compose + Material 3
Networking OkHttp 4
HTML Parsing Jsoup 1.18
Credential Storage AndroidX Security Crypto (EncryptedSharedPreferences)
Background Work AndroidX WorkManager
Biometrics AndroidX Biometric
Build System Gradle (Kotlin DSL)
Target SDK Android 15 (API 35)

Project Structure

app/src/main/java/com/danycli/assignmentchecker/
├── MainActivity.kt              # App entry, biometric lock & navigation
├── MainViewModel.kt             # Shared state & portal communication bridge
├── PortalRepository.kt          # Networking layer (Login, Scrapers, Uploads)
├── PortalUseCases.kt            # Clean architecture business logic
│
├── AppSettingsStore.kt          # User preferences & theme settings
├── CredentialsStore.kt          # Encrypted credential persistence
├── AssignmentCacheStore.kt      # Offline caches for all portal data
├── TimetableCacheStore.kt       # (Attendance, Marks, Grades, Profile, etc.)
│
├── AssignmentNotifications.kt   # System notifications & alerts
├── BackgroundSyncWork.kt        # Periodic data refresh worker
├── DownloadWork.kt              # Background file download worker
├── UploadWork.kt                # Background submission worker
│
├── AppUpdateChecker.kt          # GitHub Releases version checker
├── SecurityUtils.kt             # Crypto & Biometric helpers
│
└── ui/
    ├── DashboardScreen.kt       # Central hub (inside AssignmentsScreen.kt)
    ├── AssignmentsScreen.kt     # Pending assignments & filters
    ├── HistoryScreen.kt         # Submitted assignment logs
    ├── TimetableScreen.kt       # Live class schedule
    ├── AttendanceScreen.kt      # Attendance logs & insights
    ├── GradesScreen.kt          # Result history (GPA/CGPA)
    ├── MarksScreen.kt           # Internal sessionals/quizzes marks
    ├── FeeScreen.kt             # Fee status & challan downloads
    ├── ProfileScreen.kt         # Detailed student information
    ├── LoginScreen.kt           # Portal authentication
    ├── AppLockScreen.kt         # Biometric security UI
    └── theme/                   # Material 3 design system

Registration Number Format

SP25-BCS-001
│    │    └── Roll number (zero-padded)
│    └────── Program code (e.g. BCS, BEE, BBA)
└─────────── Session (SP = Spring, FA = Fall + 2-digit year)

The app automatically normalises your input and handles the portal's complex session selection logic for you.


Disclaimer

This is an unofficial third-party client for the COMSATS SIS portal. It is not affiliated with, endorsed by, or maintained by COMSATS University. Use it responsibly and in accordance with your institution's policies.


Author

Built by danycli — because academic life is hard enough without a bad website.

Made with frustration, caffeine, and Jetpack Compose.

About

A purpose built Android app for CUI, Abbottabad Campus students to manage, download, and submit assignments without ever opening a browser.

Topics

Resources

Stars

Watchers

Forks

Contributors