Skip to content

V1shal-dev/telecrm-pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TeleCRM Pro

A modern, cross-platform Telecalling CRM for Loan Management

Built with Flutter + Firebase — role-based dashboards, real-time call tracking, location intelligence, and a multi-product loan pipeline in one unified workspace.

Flutter Dart Firebase Material 3 Platforms License


Overview

TeleCRM Pro is a production-style Customer Relationship Management application engineered for telecalling teams in the loan and financial services industry. It streamlines the full lead lifecycle — from contact assignment and outbound dialing to status tracking, loan application capture, and managerial oversight — through clean role-based dashboards and a real-time Firestore backend.

The app supports two distinct user roles (Admin and Employee), each with a tailored workspace built on top of a shared, modern Material 3 UI powered by Google Fonts (Inter).


Key Features

Authentication & Roles

  • Secure email/password authentication via Firebase Auth
  • Auto-routing AuthWrapper that loads the correct dashboard based on the user's role
  • Two-tier RBAC: Admin (organisation-wide view) and Employee (assigned-leads view)

Admin Workspace

  • Real-time stats grid — total contacts, interested leads, pending follow-ups, today's call volume
  • Live activity feed of the most recent call logs across the entire team
  • Contact management — view all contacts, add new leads, assign to employees
  • Quick-action cards for Analytics, Reports, and bulk operations

Employee Workspace

  • Personalised dashboard with assigned leads and personal KPIs
  • One-tap dialer integration via url_launcher for native phone calls
  • Call disposition workflow with 8 lead-status options (Interested, Not Interested, Callback, Wrong Number, Rejected, Busy, No Answer, Not Reachable)
  • Automatic call log persistence to Firestore with duration, notes, and timestamps
  • Automatic GPS location check-in on login for field-tracking and attendance

Loan Pipeline (7 Loan Products)

The app supports a complete loan-application capture flow across:

Loan Type Icon Use Case
Home Loan Home Residential property financing
Personal Loan Wallet Unsecured personal credit
Business Loan Business SME / enterprise financing
Education Loan School Student / higher-education funding
Vehicle Loan Car Auto financing
Gold Loan Stars Gold-collateralised loans
Agriculture Loan Grass Farm and rural-credit products

Each application captures structured form data linked to the contact and the employee who submitted it.

Location Intelligence

  • Foreground GPS capture with geolocator + permission_handler
  • Daily location logs written to Firestore (locationLogs collection) for audit and territory analysis

UX & Design

  • Material 3 theming with custom indigo / purple gradient accent system
  • Google Fonts (Inter) typography across the app
  • Responsive grid-based dashboards, custom stat cards, status badges, and contact cards
  • Soft-grey scaffold (#F9FAFB) with high-contrast surfaces for readability

Tech Stack

Layer Technology
Framework Flutter 3.9+ / Dart 3.9+
Backend Firebase (Cloud Firestore, Auth, Storage)
State Management Provider · GetX
UI Material 3 · Google Fonts (Inter)
Native Bridges url_launcher, call_log, geolocator, permission_handler
Persistence Cloud Firestore (real-time) · shared_preferences
Utilities intl (localization & formatting)

Architecture

lib/
├── main.dart                    # Entry point, Firebase init, AuthWrapper routing
├── constants/
│   └── app_constants.dart       # Status options, loan types, helpers
├── models/                      # Firestore-backed domain models
│   ├── user_model.dart
│   ├── contact_model.dart
│   ├── call_log_model.dart
│   └── loan_application_model.dart
├── services/                    # Business logic & integrations
│   ├── auth_service.dart        # Firebase Auth + role resolution
│   ├── firestore_service.dart   # CRUD streams for contacts/logs/loans
│   ├── call_log_service.dart    # Native dialer launcher
│   └── location_service.dart    # GPS capture & permission flow
├── screens/                     # UI screens (10 total)
│   ├── login_screen.dart
│   ├── admin_dashboard.dart
│   ├── employee_dashboard.dart
│   ├── all_contacts_screen.dart
│   ├── contact_list_screen.dart
│   ├── contact_detail_screen.dart
│   ├── call_screen.dart
│   ├── status_selection_screen.dart
│   ├── loan_type_selection_screen.dart
│   └── loan_form_screen.dart
└── widgets/                     # Reusable UI components
    ├── stat_card.dart
    ├── contact_card.dart
    └── status_badge.dart

Firestore Collections

Collection Purpose
users User profiles, roles (admin / employee), employee IDs
contacts Leads with assignment, loan type, status, last-call timestamp
callLogs Call disposition records (duration, status, notes)
loanApplications Submitted loan forms with structured formData map
locationLogs Per-employee daily GPS check-ins

Platform Support

The project ships with native runners for every Flutter target:

  • ✅ Android
  • ✅ iOS
  • ✅ Web
  • ✅ Windows
  • ✅ macOS
  • ✅ Linux

Getting Started

Prerequisites

  • Flutter SDK 3.9.0 or higher (install guide)
  • Dart 3.9+
  • A Firebase project (free Spark plan works)
  • Android Studio / Xcode for mobile builds

1. Clone the repository

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

2. Install dependencies

flutter pub get

3. Configure Firebase

  1. Create a new Firebase project at console.firebase.google.com
  2. Enable Authentication → Email/Password
  3. Enable Cloud Firestore (start in production mode)
  4. Enable Firebase Storage
  5. Register your apps and add the generated config:
    • Android: place google-services.json in android/app/
    • iOS: place GoogleService-Info.plist in ios/Runner/
    • Or run flutterfire configure to auto-generate firebase_options.dart

4. Seed your first admin user

In Firestore, create a document in the users collection:

{
  "name": "Admin User",
  "email": "admin@example.com",
  "phone": "+910000000000",
  "role": "admin",
  "isActive": true,
  "createdAt": "<server timestamp>"
}

Then create the matching account in Firebase Auth → Users with the same email.

5. Run the app

flutter run                  # current connected device
flutter run -d chrome        # web
flutter run -d windows       # desktop

6. Build for release

flutter build apk --release          # Android APK
flutter build appbundle --release    # Play Store bundle
flutter build ios --release          # iOS
flutter build web --release          # Web

Required Permissions

Platform Permission Reason
Android & iOS Phone (tel: URI) Launch the native dialer for outbound calls
Android & iOS Location (fine) Daily employee check-in via geolocator
Android READ_CALL_LOG Read native call duration via call_log
All Internet Firebase connectivity

These are wired through permission_handler and requested at runtime.


Roadmap

  • In-app analytics & conversion reports
  • Push notifications for assigned leads
  • CSV bulk-import for contacts
  • Voice-note recordings attached to call logs
  • Multi-tenant support
  • Dark mode

Contributing

Contributions, issues, and feature requests are welcome. Feel free to fork the repo and open a pull request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

License

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


Author

Built with ❤️ by a Full-Stack Engineer


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

About

Modern cross-platform Telecalling CRM for Loan Management — Flutter + Firebase with role-based dashboards, real-time call tracking, GPS check-ins, and a 7-product loan pipeline.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors