How salmanmalvasi/studentcc works
StudentCC is an offline-first Android academic companion for VIT students. Students use its dashboard and feature screens to review locally cached academic data, calculate attendance and performance, sync with VTOP, and access campus-life tools. The README documents Room-backed offline presentation and background refresh; the source index additionally confirms key service, freshness, database, and UI dependencies. Many feature implementations are not excerpted, so those branches reflect documented capabilities, not inspected call-by-call wiring.
Main entry points: MainActivity.java Main dashboard · QuickSyncService.java Quick sync · AppDatabase.java Room database · widgets Home widgets
Components 20
Student experience
- Main dashboard
app/src/main/java/com/salmanmalvasi/studentcc/activities/MainActivity.java - Feature screens
app/src/main/java/com/salmanmalvasi/studentcc/fragments - Home widgets
app/src/main/java/com/salmanmalvasi/studentcc/widgets
Academic features
- Attendance tools
app/src/main/java/com/salmanmalvasi/studentcc/fragments/AttendanceCalculatorFragment.java - Skip advisor
app/src/main/java/com/salmanmalvasi/studentcc/helpers/SkipAdvisorEngine.java - Semester analytics
app/src/main/java/com/salmanmalvasi/studentcc/activities/AllSemestersAnalyticsActivity.java - Calendar sync
app/src/main/java/com/salmanmalvasi/studentcc/helpers/GoogleCalendarHelper.java
Sync and persistence
- Quick sync
app/src/main/java/com/salmanmalvasi/studentcc/services/QuickSyncService.java - Scheduled sync
app/src/main/java/com/salmanmalvasi/studentcc/workers/NightlySyncWorker.java - VTOP data retrieval
app/src/main/java/com/salmanmalvasi/studentcc/services/VTOPService.java - Portal authentication
app/src/main/java/com/salmanmalvasi/studentcc/sync/VTOPAuthClient.java - Freshness tracking
app/src/main/java/com/salmanmalvasi/studentcc/sync/DataFreshnessManager.java - Room database
app/src/main/java/com/salmanmalvasi/studentcc/helpers/AppDatabase.java - Settings and secrets
app/src/main/java/com/salmanmalvasi/studentcc/helpers/SettingsRepository.java
Campus and platform
- Hostel and mess
app/src/main/java/com/salmanmalvasi/studentcc/helpers/HostelDataHelper.java - Events and placements
app/src/main/java/com/salmanmalvasi/studentcc/fragments/EventsFragment.java - Push notifications
app/src/main/java/com/salmanmalvasi/studentcc/services/VTOPFirebaseMessagingService.java - In-app messages
app/src/main/java/com/salmanmalvasi/studentcc/helpers/InAppMessageManager.java
Other components
- Student
- VTOP portal
Connections 21
- Student → Main dashboard: opens
- Main dashboard → Feature screens: presents features
app/src/main/java/com/salmanmalvasi/studentcc/activities/MainActivity.java - Student → Home widgets: checks schedule
- Feature screens → Attendance tools: offers attendance tools
app/src/main/java/com/salmanmalvasi/studentcc/fragments/HomeFragment.java - Attendance tools → Skip advisor: uses projections
app/src/main/java/com/salmanmalvasi/studentcc/fragments/AttendanceCalculatorFragment.java - Student → Semester analytics: reviews trends
- Student → Calendar sync: exports dates
- Student → Hostel and mess: checks services
- Student → Events and placements: discovers events
- Main dashboard → Quick sync: requests refresh
app/src/main/java/com/salmanmalvasi/studentcc/services/QuickSyncService.java - Scheduled sync → VTOP data retrieval: runs sync
- Quick sync → Freshness tracking: checks staleness
app/src/main/java/com/salmanmalvasi/studentcc/services/QuickSyncService.java - Quick sync → Room database: updates cache
app/src/main/java/com/salmanmalvasi/studentcc/services/QuickSyncService.java - Quick sync → Settings and secrets: reads preferences
app/src/main/java/com/salmanmalvasi/studentcc/services/QuickSyncService.java - VTOP data retrieval → Room database: writes academic data
app/src/main/java/com/salmanmalvasi/studentcc/services/VTOPService.java - Portal authentication → VTOP portal: authenticates
- Portal authentication → Room database: activates staged data
app/src/main/java/com/salmanmalvasi/studentcc/sync/VTOPAuthClient.java - Home widgets → Room database: reads schedule
app/src/main/java/com/salmanmalvasi/studentcc/widgets/DayTimetableWidgetService.java - Home widgets → Settings and secrets: reads preferences
app/src/main/java/com/salmanmalvasi/studentcc/widgets/DayTimetableWidgetService.java - Push notifications → Main dashboard: routes navigation
- Main dashboard → In-app messages: initializes messaging
app/src/main/java/com/salmanmalvasi/studentcc/activities/MainActivity.java