How taqsiimtq/compusconnect-android works
CampusConnect is an Android app for students and club managers. Users sign in or restore a session, then enter role-specific navigation: students discover clubs and events, participate in the feed, book rooms or facilities, report issues, and view notifications; managers handle club posts, events, requests, and attendance. Feature ViewModels mediate UI actions and repositories expose backend operations; authentication also persists a token and caches user data locally. The README and API surface establish major capabilities, but unsampled feature implementations limit confidence about their exact call wiring.
Main entry points: student Student features · ApiService.kt API service · UserRepository.kt User repository · MainActivity.kt Role selection
Components 21
App entry
- Role selection
app/src/main/java/com/taqsiim/compusconnect/MainActivity.kt - Role navigation
app/src/main/java/com/taqsiim/compusconnect/ui/navigation/AppRoots.kt
Identity and data
- Login and session
app/src/main/java/com/taqsiim/compusconnect/ui/auth - Auth state
app/src/main/java/com/taqsiim/compusconnect/ui/auth/AuthViewModel.kt - User repository
app/src/main/java/com/taqsiim/compusconnect/data/repository/UserRepository.kt - Token storage
app/src/main/java/com/taqsiim/compusconnect/data/local/TokenManager.kt - Auth interceptor
app/src/main/java/com/taqsiim/compusconnect/di/AuthInterceptor.kt - Campus cache
app/src/main/java/com/taqsiim/compusconnect/data/local/CampusDatabase.kt - Campus DAO
app/src/main/java/com/taqsiim/compusconnect/data/local/dao/CampusDao.kt
Student experience
- Student features
app/src/main/java/com/taqsiim/compusconnect/ui/student - Club operations
app/src/main/java/com/taqsiim/compusconnect/data/repository/ClubRepository.kt - Event operations
app/src/main/java/com/taqsiim/compusconnect/data/repository/EventRepository.kt - Feed operations
app/src/main/java/com/taqsiim/compusconnect/data/repository/PostRepository.kt - Facility bookings
app/src/main/java/com/taqsiim/compusconnect/data/repository/FacilityRepository.kt - Room bookings
app/src/main/java/com/taqsiim/compusconnect/data/repository/RoomRepository.kt - Issue reporting
app/src/main/java/com/taqsiim/compusconnect/data/repository/ReportRepository.kt
Club management
- Manager features
app/src/main/java/com/taqsiim/compusconnect/ui/clubManager
Backend services
- API service
app/src/main/java/com/taqsiim/compusconnect/data/api/ApiService.kt - Campus backend
Other components
- Student
- Club manager
Connections 28
- Role selection → Login and session: shows
- Role selection → Role navigation: routes by role
- Student → Role selection: uses
- Club manager → Role selection: uses
- Login and session → Auth state: dispatches intents
- Auth state → User repository: requests session
- User repository → API service: authenticates and fetches profile
- User repository → Token storage: saves and reads token
- User repository → Campus DAO: caches user
- Campus DAO → Campus cache: reads and writes
- Auth interceptor → Token storage: reads token
- Role navigation → Student features: opens student app
- Role navigation → Manager features: opens manager app
- Student features → Club operations: uses club operations
- Student features → Event operations: uses event operations
- Student features → Feed operations: uses feed operations
- Student features → Facility bookings: uses facility booking
- Student features → Room bookings: uses room booking
- Student features → Issue reporting: submits reports
- Manager features → Feed operations: manages posts
- Manager features → Event operations: schedules and tracks events
- Club operations → API service: calls
- Event operations → API service: calls
- Feed operations → API service: calls
- Facility bookings → API service: calls
- Room bookings → API service: calls
- Issue reporting → API service: calls
- API service → Campus backend: sends requests