Modules

This section provides a detailed breakdown of each major feature module.

1. Onboarding Module (/lib/onboarding)

This module is responsible for the user's first experience with the app.

  • Splash Screen: A visually rich, animated splash screen that appears for 3 seconds on the first launch. Managed by SplashController.

  • Onboarding Flow: An engaging, 4-step onboarding process with auto-advancing screens and animated progress bars.

  • State Persistence: The OnboardingProvider uses shared_preferences to track whether the user has completed the flow, ensuring it's only shown once.

[Placeholder for a GIF showing the animated onboarding flow.]

2. Authentication Module (/lib/auth)

This module handles user registration and login, architected with a clear separation of data, application, and presentation layers.

  • UI Flow: The LoginScreen presents a multi-step input process, first asking for a username, then for a password.

  • State Management: The AuthProvider manages the user's authentication state (isAuthenticated, isLoading, error).

  • Routing: The app's router logic listens to AuthProvider and directs the user to the HomePage upon successful login.

[Placeholder for a screenshot of the Login Screen.]

3. Agent Interaction Module (/lib/agent)

This is the core feature where the user has a real-time conversation with the D-ID avatar.

The process is a sophisticated orchestration of several services:

Code snippet

Copy

Last updated