How tomhula/jecnamobile works
Ječná Mobile is an unofficial Android client for SPŠE Ječná students to read school-portal information and use related services. The principal journey enters through MainActivity, which selects login, welcome, or the main app; the main app exposes distinct school-data screens. Feature directories also cover absences, documents, substitutions, rooms, student profiles and certificates, alongside the README’s grades, timetable, canteen, attendance, news and teacher capabilities. The sampled source confirms authentication persistence, timetable retrieval and caching, and grade-change notifications. Other feature wiring and integrations are represented conservatively from the README and tree.
Main entry points: MainNavDisplay.kt App navigation · MainActivity.kt App activity · TimetableRepositoryImpl.kt Timetable repository · GradeCheckerWorker.kt Grade checker
Components 23
App entry
- App activity
app/src/main/kotlin/me/tomasan7/jecnamobile/MainActivity.kt - Login screen
app/src/main/kotlin/me/tomasan7/jecnamobile/login/LoginScreen.kt - Main screen
app/src/main/kotlin/me/tomasan7/jecnamobile/mainscreen/MainScreen.kt - App navigation
app/src/main/kotlin/me/tomasan7/jecnamobile/navigation/MainNavDisplay.kt
School features
- Grades and averages
app/src/main/kotlin/me/tomasan7/jecnamobile/grades/GradesSubScreen.kt - Timetable and substitutions
app/src/main/kotlin/me/tomasan7/jecnamobile/timetable/TimetableSubScreen.kt - Canteen and exchange
app/src/main/kotlin/me/tomasan7/jecnamobile/canteen/CanteenSubScreen.kt - Attendance
app/src/main/kotlin/me/tomasan7/jecnamobile/attendances/AttendancesSubScreen.kt - News
app/src/main/kotlin/me/tomasan7/jecnamobile/news/NewsSubScreen.kt - Teachers
app/src/main/kotlin/me/tomasan7/jecnamobile/teachers/TeachersSubScreen.kt - Absences
app/src/main/kotlin/me/tomasan7/jecnamobile/absence/AbsencesSubScreen.kt - Documents
app/src/main/kotlin/me/tomasan7/jecnamobile/documents/DocumentsSubScreen.kt - Rooms
app/src/main/kotlin/me/tomasan7/jecnamobile/rooms/RoomsSubScreen.kt - Student profile
app/src/main/kotlin/me/tomasan7/jecnamobile/student/StudentProfileScreen.kt - Certificates
app/src/main/kotlin/me/tomasan7/jecnamobile/student/cert/StudentCertificatesScreen.kt
Data services
- Auth storage
app/src/main/kotlin/me/tomasan7/jecnamobile/login/ObfuscatedSharedPreferencesAuthRepository.kt - File cache
app/src/main/kotlin/me/tomasan7/jecnamobile/caching/CacheRepository.kt - Timetable repository
app/src/main/kotlin/me/tomasan7/jecnamobile/timetable/TimetableRepositoryImpl.kt
Notifications
- Grade checker
app/src/main/kotlin/me/tomasan7/jecnamobile/gradenotifications/GradeCheckerWorker.kt
Other components
- Student
- Ječná portal API
- Substitution service
- Android notifications
Connections 23
- Student → App activity: opens
- App activity → Auth storage: checks credentials
- App activity → Login screen: shows login
- App activity → Main screen: shows app
- Student → Main screen: uses
- Main screen → App navigation: hosts navigation
- App navigation → Grades and averages: routes to
- App navigation → Timetable and substitutions: routes to
- App navigation → Canteen and exchange: routes to
- App navigation → Attendance: routes to
- App navigation → News: routes to
- App navigation → Teachers: routes to
- App navigation → Absences: routes to
- App navigation → Documents: routes to
- App navigation → Rooms: routes to
- App navigation → Student profile: routes to
- App navigation → Certificates: routes to
- Timetable repository → Ječná portal API: fetches timetable
- Timetable repository → Substitution service: fetches schedule
- Timetable repository → File cache: cached by
- Grade checker → File cache: refreshes grades
- Grade checker → Ječná portal API: checks grades
- Grade checker → Android notifications: posts alerts