How fangdadai/helloasl works
HelloASL is a multiplatform ASL learning and translation app. Users enter through the app navigation, then authenticate or use learning, lesson, profile, starred-sign, and translation screens. Learning activity updates lesson completion and progress; translation supports English-to-ASL sign materials and Android video recognition sent to a documented external model server. The tree and excerpts establish the app composition, repositories, and Android recognition call; individual screen-to-model wiring and several repository implementations were not sampled, so uncertain links are omitted.
Main entry points: AppNavigation.kt App navigation · learning Learning screens · App.kt App composition · auth Sign in and signup
Components 24
App and Navigation
- App composition
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/App.kt - App navigation
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/ui/navigations/AppNavigation.kt - Sign in and signup
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/ui/screens/auth - Home and profile
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/ui/screens/home
Learning and Progress
- Learning screens
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/ui/screens/learning - Starred signs
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/ui/screens/star - Learning content
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/data/learningRepository/LearningRepository.kt - User learning state
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/data/userRepository/UserRepository.kt - Learning progress
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/data/progressTrackerRepository/ProgressTrackerRepository.kt - Star collections
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/data/starRepository/StarRepository.kt - ASL domain models
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/domain
ASL Translation
- Translate screen
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/ui/screens/translate/TranslateView.kt - Translation repository
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/data/translateRepository/TranslateRepository.kt - Video recognition
HelloASL/composeApp/src/androidMain/kotlin/ca/uwaterloo/helloasl/data/translateRepository/AndroidVideoRecognitionService.kt - Translation API client
HelloASL/composeApp/src/androidMain/kotlin/ca/uwaterloo/helloasl/data/translateRepository/ApiService.kt
Accounts and Data
- Authentication
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/data/authRepository/AuthRepository.kt - Supabase authentication
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/data/authRepository/SupabaseAuthRepository.kt
Reminders
- Notification handling
HelloASL/composeApp/src/commonMain/kotlin/ca/uwaterloo/helloasl/data/notificationRepository/NotificationRepository.kt - Device token sync
HelloASL/composeApp/src/androidMain/kotlin/ca/uwaterloo/helloasl/data/notificationRepository/AndroidTokenSyncer.kt - Firebase messaging
HelloASL/composeApp/src/androidMain/kotlin/ca/uwaterloo/helloasl/data/notificationRepository/FirebaseMessagingService.kt
Other components
- App user
- ASL model server
- Supabase services
- Firebase Cloud Messaging
Connections 23
- App user → App composition: opens
- App composition → App navigation: composes
- App navigation → Sign in and signup: routes to
- App navigation → Home and profile: routes to
- App navigation → Learning screens: routes to
- App navigation → Starred signs: routes to
- App navigation → Translate screen: routes to
- Sign in and signup → Authentication: authenticates via
- Authentication → Supabase authentication: implemented by
- Supabase authentication → Supabase services: auth requests
- Learning screens → Learning content: loads lessons
- Learning screens → User learning state: updates completion
- Learning screens → Learning progress: records study time
- Learning screens → ASL domain models: uses lesson models
- Starred signs → Star collections: manages collections
- Translate screen → Translation repository: requests translation
- Translation repository → Video recognition: recognizes video
- Video recognition → Translation API client: submits video
- Translation API client → ASL model server: posts video
- App composition → Notification handling: configures repository
- Device token sync → Supabase services: syncs device token
- Firebase messaging → Firebase Cloud Messaging: receives messages
- Firebase Cloud Messaging → Firebase messaging: delivers push