51 lines
3.5 KiB
Markdown
51 lines
3.5 KiB
Markdown
# Siro Driver App - Authentication Flow & Cleanup Report
|
|
|
|
We traced the active routing flow of the driver app starting from the main entry point to document the actual user journey and identify unused legacy files.
|
|
|
|
## 1. Active User Authentication Flow
|
|
|
|
```mermaid
|
|
graph TD
|
|
A[main.dart] --> B[SplashScreen]
|
|
B --> C{onboarding Done?}
|
|
C -- No --> D[OnBoardingPage]
|
|
C -- Yes --> E{Phone Registered?}
|
|
E -- No --> F[LoginCaptin]
|
|
E -- Yes --> G[Auto Login & Go to HomeCaptain]
|
|
F --> H{Terms & Location Perms?}
|
|
H -- No --> I[Show Agreement & Perm Pages]
|
|
H -- Yes --> J[PhoneNumberScreen in otp_page.dart]
|
|
J --> K[Send OTP via Nabih]
|
|
K --> L[OtpVerificationScreen]
|
|
L --> M{isRegistered?}
|
|
M -- No --> N[RegistrationView]
|
|
M -- Yes --> G
|
|
```
|
|
|
|
### Flow Breakdown
|
|
1. **Splash & Initial Check**: Starting from `main.dart`, the app boots into `SplashScreen` and queries `SplashScreenController`.
|
|
2. **Onboarding Check**: Checks `BoxName.onBoarding`. If not completed, redirects to `OnBoardingPage`.
|
|
3. **Identity Check**: If `BoxName.phoneDriver` is null, routes to `LoginCaptin` inside `login_captin.dart`.
|
|
4. **Permissions & Phone Screen**: `LoginCaptin` builds and checks `agreeTerms` and `locationPermission`. Once granted, it renders the `PhoneNumberScreen` widget directly (which is imported from `otp_page.dart`).
|
|
5. **OTP Validation**: Once the 3-digit SMS OTP code is verified, `PhoneAuthHelper.verifyOtp` determines next steps:
|
|
- **New Captain**: Redirects to `RegistrationView` in `registration_view.dart` (which guides them through document capture and Gemini OCR extraction).
|
|
- **Existing Captain**: Authenticates using the standard controller credentials and redirects to the `HomeCaptain` map/dashboard page.
|
|
|
|
---
|
|
|
|
## 2. Identified Unused Legacy Files
|
|
The following files are completely unreferenced by the driver app's active screens and routing controllers:
|
|
|
|
### Unused Authentication Views
|
|
- [register_page.dart](file:///Users/hamzaaleghwairyeen/development/App/Siro/siro_driver/lib/views/auth/register_page.dart) - Unused email/password signup layout (leftover from Rider app).
|
|
- [verify_email_page.dart](file:///Users/hamzaaleghwairyeen/development/App/Siro/siro_driver/lib/views/auth/verify_email_page.dart) - Unused email OTP verification screen.
|
|
- [register_captin.dart](file:///Users/hamzaaleghwairyeen/development/App/Siro/siro_driver/lib/views/auth/captin/register_captin.dart) - Unused captain email registration form.
|
|
- [forget.dart](file:///Users/hamzaaleghwairyeen/development/App/Siro/siro_driver/lib/views/auth/captin/forget.dart) - Unused forgot password screen.
|
|
|
|
### Unused Controllers
|
|
- [login_controller.dart](file:///Users/hamzaaleghwairyeen/development/App/Siro/siro_driver/lib/controller/auth/login_controller.dart) - Unreferenced auth controller.
|
|
- [register_controller.dart](file:///Users/hamzaaleghwairyeen/development/App/Siro/siro_driver/lib/controller/auth/register_controller.dart) - Unreferenced registration logic.
|
|
- [verify_email_controller.dart](file:///Users/hamzaaleghwairyeen/development/App/Siro/siro_driver/lib/controller/auth/verify_email_controller.dart) - Unreferenced email OTP logic.
|
|
- [facebook_login.dart](file:///Users/hamzaaleghwairyeen/development/App/Siro/siro_driver/lib/controller/auth/facebook_login.dart) - Unused Facebook login helper.
|
|
- [apple_sigin.dart](file:///Users/hamzaaleghwairyeen/development/App/Siro/siro_driver/lib/controller/auth/apple_sigin.dart) - Unreferenced Apple sign-in handler (now that social login is removed from driver views).
|