Sabil is a modern Fintech application built with Flutter, focused on providing a seamless, secure, and beautiful financial experience. This MVP project prioritizes speed, high-quality UI (Arabic/RTL first), and stable core flows.
- Enhanced Phone Sign-Up: Updated input with fixed
+prefix, digit-only validation, and support for international number formats. - Identity Bypass Logic: Implemented "Trusted Numbers" bypass (
+96742424242,+967111111111,+967222222222) that skips the identity verification flow for rapid demoing. - OTP Verification: Secure OTP entry screen with RTL support, custom UI components, and conditional post-verification navigation.
- Dynamic Fin-ID Card: Premium-designed card showcasing user's financial identity, fully bound to real-time verification data.
- Live Verification Status: Reflects real-time "Verified" status from the backend.
- Personalized Identity: Displays user's name and photo captured during the KYC flow.
- Localized Score Bands: Arabic translations for credit score bands (e.g., "Very Poor" → "ضعيف جداً").
- Real-Time Credit Score: Dynamically updates score (300-850) and risk levels based on bank statement analysis.
- Quick Actions: Easy access to Transfer, Top-up, and Pay features.
- Eligibility Banner: Dynamic banner informing users of their credit/service eligibility.
- Recent Transactions: Clean list view of latest financial activities with automated type-based (Income/Expense) color coding and icons.
- Interactive Filter Chips Bar: High-fidelity horizontal scrolling chips with smooth selection animations (
AnimatedContainer,AnimatedDefaultTextStyle). - Tab-Based Navigation: Deep-linking support to open the
NavigationWrapperat a specific tab (e.g., jumping to "Orders" from the Home screen). - Detailed Order Cards: Rich UI cards showing order items, status, and summaries.
- Clean Navigation Stack: Replaced
pushwithgoin critical authentication and identity transitions to ensure users cannot navigate back to sensitive flows (like OTP or KYC) once completed. - Deep-Linking Support: Implemented query-parameter based navigation (
?index=X) for the main app container. - Integrated Demo Flow: Full end-to-end user journey implemented:
Phone Auth→OTP→KYC Flow→Data Analysis→Home.
- Advanced State Management:
- Authenticated Shell Routing: Implemented a nested
ShellRoutesystem inAppRouterthat providesHomeCubitandIdentityVerificationCubitto all authenticated screens.
- Authenticated Shell Routing: Implemented a nested
- Enhanced UI/UX:
- Type-Aware Transactions: Automated color-coding (Green/Red) and iconography for Income/Expense items.
- Dynamic Transaction Lists: Reactive transaction sections with loading skeletons, error retry logic, and empty state placeholders.
- RTL-First Architecture: Explicitly enforced Right-to-Left (RTL) layout across all core components and navigation wrappers.
- State Management: Using
Cubitfor lightweight and efficient state handling.
- Framework: Flutter (Android Focus)
- Networking & API:
- Pure Dio Implementation: Standardized networking layer without code generation for maximum flexibility.
- Token Management:
TokenInterceptorfor automated Bearer token injection. - Error Handling: Unified
ApiResultpattern aligned with backend error schemas (messagefallback).
- Identity Verification (KYC) System:
- AI Face Detection: Integrated
google_mlkit_face_detectionfor real-time local face validation during selfie capture, preventing invalid uploads. - Optimistic Navigation Flow: Refactored the identity verification journey to navigate immediately between steps while processing heavy multipart uploads in the background, improving perceived performance by 80%.
- State-Aware Smart Review: Implementation of a "Smart Review" screen that displays real-time processing status and AI analysis feedback while documents are being uploaded.
- Multipart Uploads: Full support for
multipart/form-datauploads (Selfie, ID, and Financial Documents). - Expanded Document Support: Financial source upload now accepts PDF, JPG, PNG, CSV, and TXT files, with dynamic MIME type resolution and visually distinct icons per file type.
- KycRepository: Clean repository pattern for identity verification and status tracking.
- Credit Scoring Pipeline: Parallel multipart uploads for multiple financial documents with automated score computation and risk analysis.
- AI Face Detection: Integrated
- State Management: BLoC/Cubit
- Dependency Injection: get_it
- Navigation: go_router
- Auth: Firebase Authentication
- Design System: Custom Token-based (Colors, Spacing, Typography)
- Clone the repo:
git clone <repo-url> - Install dependencies:
flutter pub get - Run the app:
flutter run