Thanks to visit codestin.com
Credit goes to github.com

Skip to content

V1shal-dev/LoanConnect

Repository files navigation

LoanConnect Logo

💼 LoanConnect

A Professional Loan TeleCRM Platform — Engineered for Modern Lending Teams

Streamline lead management, agent tracking, and loan processing — all from a single beautifully crafted Flutter application.


Flutter Dart Firebase BLoC Platforms License


FeaturesScreenshotsTech StackArchitectureGetting StartedRoadmap


📖 Overview

LoanConnect is a production-ready, full-stack TeleCRM (Tele-Calling CRM) mobile and web application purpose-built for banks, NBFCs, DSAs, and lending agencies that operate distributed sales teams. It empowers Admins to upload leads in bulk, assign them to tele-calling agents, track them live on a map, and analyze conversion funnels — while giving Employees a frictionless, beautifully animated interface to call customers, log outcomes, and submit loan applications across 7 different loan products.

Built with a clean four-layer architecture (Presentation → Business Logic → Data → Core), real-time Firestore sync, and a modern indigo-purple Material 3 design language inspired by today's best fintech apps.


✨ Features

👨‍💼 Admin Suite

Feature Description
📊 Smart Dashboard Real-time KPIs — total leads, assigned/unassigned, calls today, conversion rate, active employees
👥 Employee Management Create, edit, activate/deactivate, and delete tele-calling agents with role-based access
📤 Bulk Contact Upload Import thousands of leads from CSV / Excel in a single click
🗂️ Lead Assignment Auto/manual lead distribution to employees with full audit trail
🗺️ Live GPS Tracking View every field/remote employee on a Google Map in real time
📈 Analytics & Charts Beautiful charts powered by fl_chart & syncfusion_flutter_charts
📂 Data Export Export contacts, calls, and loan applications to Excel, CSV, and PDF
🌙 Dark Mode Full light/dark theme support across every screen

👨‍💻 Employee Suite

Feature Description
🏠 Personal Dashboard Daily targets, call stats, and assigned leads at a glance
📞 Direct Calling One-tap native dialer via flutter_phone_direct_caller
🔄 9-Status Call Logging Interested · Not Interested · No Answer · Callback · Wrong Number · Rejected · Line Busy · Not Reachable · Follow Up
📝 7 Dynamic Loan Forms Tailored forms for every loan product (see below)
👤 Customer 360° Full customer history, previous calls, and loan applications in one screen
📍 Background Location Privacy-friendly periodic check-ins via workmanager

🏦 Supported Loan Products

🏠 Home 👤 Personal 💼 Business 🎓 Education 🚗 Vehicle 🪙 Gold 🌾 Agriculture

Each loan type has its own dedicated, validated, multi-step form with conditional fields, file uploads (KYC documents), and direct Firestore submission.


🛠️ Tech Stack

Frontend

  • Framework: Flutter 3.2+ — single codebase, six platforms
  • Language: Dart 3.0+
  • State Management: flutter_bloc (BLoC + Cubit) · equatable · get_it (DI) · provider
  • UI / UX: google_fonts (Poppins) · animate_do · shimmer · lottie · flutter_svg · cached_network_image
  • Charts: fl_chart · syncfusion_flutter_charts
  • Date Picker: syncfusion_flutter_datepicker · intl

Backend (Serverless)

Native Integrations

  • Maps & Location: google_maps_flutter · geolocator · location
  • Telephony: flutter_phone_direct_caller · url_launcher
  • File I/O: file_picker · excel · csv · pdf · path_provider · open_file · share_plus
  • Background: workmanager
  • Permissions: permission_handler
  • Networking: dio

🏗️ Architecture

LoanConnect follows a clean, layered architecture that keeps UI, business logic, and data sources strictly decoupled — making the app testable, scalable, and easy to onboard new contributors to.

lib/
├── core/                       ← Theme, colors, strings, constants, validators
│   ├── constants/              ← App-wide constants (routes, colors, strings)
│   ├── theme/                  ← Light & dark Material 3 themes
│   ├── utils/                  ← Validators, formatters, permission helpers
│   └── widgets/                ← Reusable UI primitives (buttons, fields, loaders)
│
├── data/                       ← Models, repositories & remote services
│   ├── models/                 ← UserModel · ContactModel · CallModel · LoanApplicationModel · LocationModel
│   ├── repositories/           ← AuthRepository · ContactRepository · LocationRepository
│   └── services/               ← FirebaseService · LocationService · ExportService
│
├── business_logic/             ← BLoC & Cubit state machines
│   ├── blocs/                  ← AuthBloc · ContactBloc
│   └── cubits/                 ← ThemeCubit (dark/light)
│
├── presentation/               ← UI layer (screens & widgets)
│   ├── auth/                   ← Splash · Login · Forgot Password
│   ├── admin/                  ← Dashboard · Employees · Contacts · Tracking · Analytics
│   ├── employee/               ← Dashboard · My Contacts · Call · 7 Loan Forms
│   └── common/                 ← Profile · Settings
│
├── firebase_options.dart       ← Auto-generated Firebase config
└── main.dart                   ← App entry point + dependency injection

🧩 Architectural Highlights

  • Repository Pattern — UI never talks to Firestore directly
  • Dependency Injection via RepositoryProvider & get_it
  • Reactive Streams — Firestore snapshots → BLoC → UI rebuilds automatically
  • Route Management — centralized named routes in AppRoutes with dynamic arg handling
  • Theming — single source of truth in AppColors + Material 3 ColorScheme

📱 Platforms Supported

Android iOS Web macOS Linux Windows

🚀 Getting Started

✅ Prerequisites

Make sure the following are installed and configured:

📥 1. Clone the Repository

git clone https://github.com/V1shal-dev/LoanConnect.git
cd LoanConnect

📦 2. Install Dependencies

flutter pub get

🔥 3. Configure Firebase

This project ships with a Firebase configuration. To connect your own Firebase project:

# Install FlutterFire CLI (one-time)
dart pub global activate flutterfire_cli

# Re-generate firebase_options.dart for your project
flutterfire configure

Then, in your Firebase Console:

  1. Enable Authentication → Email/Password
  2. Create a Cloud Firestore database (start in production mode)
  3. Enable Firebase Storage
  4. Create the following collections: users, contacts, calls, loan_applications, locations

🗺️ 4. Add Your Google Maps API Key

  • Android: add to android/app/src/main/AndroidManifest.xml
  • iOS: add to ios/Runner/AppDelegate.swift

▶️ 5. Run the App

# List available devices
flutter devices

# Run on the connected device / emulator
flutter run

# Or target a specific platform
flutter run -d chrome        # Web
flutter run -d macos         # macOS
flutter run -d windows       # Windows

🏗️ 6. Build for Production

flutter build apk --release            # Android APK
flutter build appbundle --release      # Android AAB (Play Store)
flutter build ios --release            # iOS
flutter build web --release            # Web
flutter build macos --release          # macOS
flutter build windows --release        # Windows

🎨 Design System

LoanConnect uses a meticulously crafted, fintech-inspired design language:

Token Value
Primary #6366F1 Indigo
Secondary #8B5CF6 Purple
Accent #06B6D4 Cyan
Success #10B981 Emerald
Warning #F59E0B Amber
Error #EF4444 Red
Font Family Poppins (400/500/600/700)
Theme Material 3 (Light + Dark)

Each of the 9 call statuses and 7 loan types has its own dedicated semantic color for instant visual recognition.


📂 Project Structure (Top-Level)

loanconnect/
├── android/             ← Android native shell
├── ios/                 ← iOS native shell
├── web/                 ← PWA / web shell
├── macos/  linux/  windows/   ← Desktop shells
├── assets/
│   ├── fonts/           ← Poppins family
│   ├── images/          ← App icon & illustrations
│   └── animations/      ← Lottie files
├── lib/                 ← Dart source (see architecture above)
├── test/                ← Widget & unit tests
├── pubspec.yaml         ← Dependencies & app metadata
├── firebase.json        ← FlutterFire config
└── README.md            ← You are here

🧪 Testing

flutter test                   # Run all tests
flutter test --coverage        # Generate coverage report
flutter analyze                # Static analysis

🗺️ Roadmap

  • 🔔 Push Notifications (FCM) for callback reminders & lead assignments
  • 🌐 Multi-language support (i18n: English · Hindi · Marathi · Tamil)
  • 🤖 AI-powered Lead Scoring using customer engagement metrics
  • 📧 WhatsApp & Email integration for omnichannel outreach
  • 🧾 In-app loan EMI calculator for instant customer quotes
  • 🔐 Biometric authentication (fingerprint / Face ID)
  • 📊 Advanced funnel analytics & cohort reports
  • 🧑‍💼 Manager / Team-Lead role (3-tier RBAC)

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

# 1. Fork the repository
# 2. Create your feature branch
git checkout -b feature/AmazingFeature

# 3. Commit your changes (follow conventional commits)
git commit -m "feat: add AmazingFeature"

# 4. Push to the branch
git push origin feature/AmazingFeature

# 5. Open a Pull Request

Please make sure your PR:

  • Passes flutter analyze with zero warnings
  • Includes relevant widget/unit tests
  • Follows the existing folder structure & naming conventions

📄 License

Distributed under the MIT License. See LICENSE for more information.

Copyright (c) 2025 LoanConnect

👨‍💻 Author

Built with ❤️ by a Full-Stack Engineer


🙏 Acknowledgements

  • Flutter Team — for an incredible cross-platform toolkit
  • Firebase — for the serverless backbone
  • Material Design 3 — for the design foundation
  • Syncfusion — for industry-grade charts & date pickers
  • Every open-source maintainer of the 30+ packages powering this app

⭐ If you found this project useful, please consider giving it a star — it really helps!

Made with Flutter 💙 — One codebase. Every platform. Endless possibilities.

About

A Professional Loan TeleCRM Platform - Engineered for Modern Lending Teams.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors