Skip to main content

๐Ÿงญ Mobile Navigation Structure

This document provides a comprehensive overview of the ComDEALL mobile application's navigation architecture, including tab organization, screen hierarchy, and navigation patterns.

๐Ÿ—๏ธ Navigation Architecture Overviewโ€‹

The mobile app uses a hierarchical navigation structure with role-based access control:

App Entry Point
โ”œโ”€โ”€ Authentication Stack
โ”‚ โ”œโ”€โ”€ Login Screen
โ”‚ โ”œโ”€โ”€ OTP Verification
โ”‚ โ”œโ”€โ”€ Onboarding Flow
โ”‚ โ””โ”€โ”€ Language Selection
โ”œโ”€โ”€ Parent Navigation
โ”‚ โ”œโ”€โ”€ Parent Tabs (5 tabs)
โ”‚ โ””โ”€โ”€ Parent Stack Screens
โ””โ”€โ”€ Therapist Navigation
โ”œโ”€โ”€ Therapist Tabs (5 tabs)
โ””โ”€โ”€ Therapist Stack Screens

๐Ÿ” Authentication Stackโ€‹

Authentication Flowโ€‹

Splash Screen โ†’ Login โ†’ OTP Verification โ†’ Role Selection โ†’ Onboarding

Screens in Authentication Stackโ€‹

  • SplashScreen: App initialization and loading
  • LoginScreen: Phone number input
  • OTPScreen: OTP verification
  • OnboardingScreen: First-time user setup
  • LanguageSelectionScreen: Language preference selection
  • Auto-login: Check for existing valid session
  • Role-based Routing: Navigate to appropriate user flow
  • Onboarding Check: Complete onboarding for new users
  • Language Setup: Set preferred language

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Parent Navigation Structureโ€‹

Parent Tab Navigation (Bottom Tabs)โ€‹

The parent experience is organized into 5 main tabs:

๐Ÿ  Home Tabโ€‹

  • Screen: ParentHome
  • Purpose: Dashboard and overview
  • Features:
    • Child selection dropdown
    • Quick actions
    • Recent activity
    • Subscription status
    • Notifications

๐Ÿ“Š Assessment Tabโ€‹

  • Screen: ParentAssessment
  • Purpose: Assessment management
  • Features:
    • Assessment history
    • Active assessments
    • Assessment details
    • Progress tracking
    • File attachments

๐Ÿ“š Lesson Plan Tabโ€‹

  • Screen: ParentLessonPlan
  • Purpose: Lesson plan access
  • Features:
    • Lesson plan library
    • Assigned plans
    • Progress tracking
    • Activity details
    • Offline access

๐Ÿ’ฌ Chat Tabโ€‹

  • Screen: ParentChat
  • Purpose: Communication with therapist
  • Features:
    • Therapist communication
    • Message history
    • Media sharing
    • Real-time notifications
    • File attachments

๐Ÿ‘ค Profile Tabโ€‹

  • Screen: ParentProfile
  • Purpose: Account management
  • Features:
    • Personal information
    • Child management
    • Subscription management
    • Settings
    • Support

Parent Stack Screensโ€‹

Child Managementโ€‹

  • AddChildScreen: Add new child
  • EditChildScreen: Edit child information
  • ChildDetailsScreen: View child details
  • ChildListScreen: List all children

Assessment Screensโ€‹

  • AssessmentDetailsScreen: View assessment details
  • AssessmentFormScreen: Complete assessment
  • AssessmentHistoryScreen: View assessment history
  • AssessmentReportScreen: View assessment report

Lesson Plan Screensโ€‹

  • LessonPlanDetailsScreen: View lesson plan details
  • LessonPlanActivityScreen: View activity details
  • LessonPlanProgressScreen: Track progress
  • LessonPlanLibraryScreen: Browse lesson plans

Chat Screensโ€‹

  • ChatScreen: Main chat interface
  • ChatHistoryScreen: Message history
  • MediaPreviewScreen: Preview shared media
  • FileViewerScreen: View shared files

Profile Screensโ€‹

  • EditProfileScreen: Edit personal information
  • SubscriptionScreen: Manage subscription
  • PaymentScreen: Payment management
  • SettingsScreen: App settings
  • SupportScreen: Contact support

๐Ÿ‘ฉโ€โš•๏ธ Therapist Navigation Structureโ€‹

Therapist Tab Navigation (Bottom Tabs)โ€‹

The therapist experience is organized into 5 main tabs:

๐Ÿ  Home Tabโ€‹

  • Screen: TherapistHome
  • Purpose: Dashboard and overview
  • Features:
    • Today's schedule
    • Quick stats
    • Upcoming appointments
    • Recent messages
    • Approval status

๐Ÿ“… Appointment Tabโ€‹

  • Screen: TherapistAppointment
  • Purpose: Appointment management
  • Features:
    • Schedule management
    • Appointment booking
    • Calendar view
    • Time slot management
    • Session notes

๐Ÿ‘ถ Child Tabโ€‹

  • Screen: TherapistChildList
  • Purpose: Child management
  • Features:
    • Assigned children
    • Child profiles
    • Age-based filtering
    • Assessment history
    • Progress tracking

๐Ÿ’ฌ Chat Tabโ€‹

  • Screen: TherapistChat
  • Purpose: Communication with parents
  • Features:
    • Parent communication
    • Message history
    • Media sharing
    • Real-time notifications
    • Group chats

๐Ÿ‘ค Profile Tabโ€‹

  • Screen: TherapistProfile
  • Purpose: Professional management
  • Features:
    • Professional profile
    • Document management
    • Availability settings
    • Earnings dashboard
    • Wallet management

Therapist Stack Screensโ€‹

Schedule Managementโ€‹

  • ScheduleScreen: View and manage schedule
  • AvailabilityScreen: Set availability
  • TimeSlotScreen: Manage time slots
  • CalendarScreen: Calendar view
  • RecurringScheduleScreen: Set recurring schedules

Child Managementโ€‹

  • ChildDetailsScreen: View child details
  • ChildAssessmentScreen: Conduct assessments
  • ChildProgressScreen: Track progress
  • ChildReportsScreen: Generate reports
  • ChildLessonPlanScreen: Assign lesson plans

Appointment Screensโ€‹

  • AppointmentDetailsScreen: View appointment details
  • BookAppointmentScreen: Book new appointment
  • RescheduleScreen: Reschedule appointment
  • SessionNotesScreen: Add session notes
  • AppointmentHistoryScreen: View history

Professional Screensโ€‹

  • EditProfileScreen: Edit professional information
  • DocumentUploadScreen: Upload documents
  • AvailabilitySettingsScreen: Manage availability
  • EarningsScreen: View earnings
  • WalletScreen: Manage wallet
  • WithdrawScreen: Withdraw earnings

๐Ÿ”„ Navigation Patternsโ€‹

Tab Navigationโ€‹

  • Bottom Tab Bar: Primary navigation method
  • Tab Icons: Visual indicators for each tab
  • Badge Counts: Unread message indicators
  • Active States: Visual feedback for current tab
  • Accessibility: Screen reader support

Stack Navigationโ€‹

  • Hierarchical Navigation: Parent-child screen relationships
  • Back Navigation: Automatic back button handling
  • Screen Transitions: Smooth navigation animations
  • Deep Linking: URL-based navigation
  • Modal Presentations: Overlay screens
  • Full-screen Modals: Important actions and forms
  • Bottom Sheets: Additional options and details
  • Alert Dialogs: Confirmations and notifications
  • Action Sheets: Multiple choice selections

๐ŸŽฏ Navigation Logicโ€‹

Role-based Access Controlโ€‹

// Navigation access control
const hasAccessToTabs = (userRole: string, approvalStatus: string) => {
if (userRole === 'therapist') {
return approvalStatus === 'approved';
}
return true; // Parents have access by default
};

Tab Access Controlโ€‹

  • Parent Tabs: Accessible after adding child
  • Therapist Tabs: Accessible after approval
  • Conditional Navigation: Show/hide tabs based on status
  • Access Warnings: Toast messages for restricted access

Deep Linkingโ€‹

  • URL Schemes: com.comdeall.communicaids://
  • Universal Links: https://mobileapp.communicaids.com/
  • Route Parameters: Pass data through navigation
  • Navigation State: Maintain navigation state

๐Ÿ“ฑ Mobile-Specific Navigation Featuresโ€‹

Gesture Navigationโ€‹

  • Swipe Back: iOS-style swipe to go back
  • Swipe Tabs: Swipe between tabs
  • Pull to Refresh: Refresh content
  • Swipe Actions: Quick actions on list items

Touch Interactionsโ€‹

  • Large Touch Targets: Optimized for finger navigation
  • Haptic Feedback: Touch feedback
  • Touch States: Visual feedback for interactions

Performance Optimizationsโ€‹

  • Lazy Loading: Load screens on demand
  • Screen Caching: Cache frequently used screens
  • Memory Management: Proper cleanup of screens
  • Animation Performance: Smooth 60fps animations

๐Ÿ”„ Navigation State Managementโ€‹

// Navigation state structure
interface NavigationState {
currentRoute: string;
previousRoute: string;
navigationHistory: string[];
tabState: {
parent: string;
therapist: string;
};
modalState: {
isVisible: boolean;
currentModal: string;
};
}

State Persistenceโ€‹

  • Navigation History: Maintain navigation history
  • Tab State: Remember current tab selection
  • Modal State: Track modal presentations
  • Deep Link State: Handle deep link navigation

๐ŸŽจ Navigation UI Componentsโ€‹

Tab Bar Componentsโ€‹

  • Tab Icons: SVG icons for each tab
  • Active States: Visual feedback for active tab
  • Badge Indicators: Unread message counts
  • Accessibility Labels: Screen reader support
  • Header Components: Custom headers for screens
  • Back Button: Custom back button component
  • Search Bar: Search functionality
  • Filter Components: Content filtering
  • Bottom Sheet: Slide-up panels
  • Alert Dialog: Confirmation dialogs
  • Action Sheet: Multiple choice selections
  • Loading Modal: Loading state indicators

๐Ÿ”ง Navigation Configurationโ€‹

Tab Configurationโ€‹

// Parent tabs configuration
const parentTabs = [
{ name: 'Home', icon: 'home', screen: 'ParentHome' },
{ name: 'Assessment', icon: 'assessment', screen: 'ParentAssessment' },
{ name: 'LessonPlan', icon: 'lesson-plan', screen: 'ParentLessonPlan' },
{ name: 'Chat', icon: 'chat', screen: 'ParentChat' },
{ name: 'Profile', icon: 'profile', screen: 'ParentProfile' }
];

Screen Configurationโ€‹

// Screen options configuration
const screenOptions = {
headerShown: true,
headerShadowVisible: false,
tabBarActiveTintColor: colors.primary36,
tabBarInactiveTintColor: colors.secondary8F,
tabBarStyle: {
borderTopLeftRadius: 16,
borderTopRightRadius: 16,
shadowOffset: { width: 0, height: -4 },
shadowColor: colors.black,
shadowRadius: 4,
shadowOpacity: 0.1,
elevation: 5
}
};

๐Ÿš€ Navigation Performanceโ€‹

Optimization Strategiesโ€‹

  • Screen Lazy Loading: Load screens on demand
  • Component Memoization: Prevent unnecessary re-renders
  • Navigation Caching: Cache navigation state
  • Animation Optimization: Smooth navigation animations

Memory Managementโ€‹

  • Screen Cleanup: Proper screen unmounting
  • State Cleanup: Clear unused state
  • Event Cleanup: Remove event listeners
  • Resource Cleanup: Free up resources

๐ŸŽฏ Next Stepsโ€‹