GitHunt
SU

Subrata2402/max_customer

A modern, feature-rich customer management application built with Flutter. Max Customer helps businesses efficiently manage their customer database with advanced features like location tracking, image management, and intuitive search functionality.

Max Customer - Customer Management App

Flutter
Dart
License

A modern, feature-rich customer management application built with Flutter. Max Customer helps businesses efficiently manage their customer database with advanced features like location tracking, image management, and intuitive search functionality.

πŸš€ Features

πŸ” Authentication

  • Secure Login System with animated UI
  • Session Management with persistent login state
  • Password Visibility Toggle with smooth animations

πŸ‘₯ Customer Management

  • Add New Customers with comprehensive form validation
  • View Customer List with animated search functionality
  • Edit & Update customer information
  • Delete Customers with confirmation dialogs
  • Real-time Search with smooth animations

πŸ“ Location Services

  • GPS Location Capture for customer addresses
  • Google Maps Integration for location visualization
  • Geocoding Support for address-to-coordinates conversion
  • Location Permissions handling

πŸ“Έ Image Management

  • Profile Photo Capture from camera or gallery
  • Image Picker Service with compression
  • Cached Network Images for optimal performance
  • Image Storage in local database

πŸ’Ύ Data Management

  • SQLite Local Database for offline functionality
  • CRUD Operations with BLoC state management
  • Data Persistence with SharedPreferences
  • Sample Data for testing and development

🎨 User Interface

  • Material Design 3 with modern aesthetics
  • Smooth Animations throughout the app
  • Responsive Design for various screen sizes
  • Custom Widgets for consistent UI/UX
  • Pull-to-Refresh functionality
  • Loading States and error handling

πŸ“± Screenshots

Add screenshots of your app here

πŸ—οΈ Architecture

The application follows Clean Architecture principles with BLoC Pattern for state management:

lib/
β”œβ”€β”€ auth/                   # Authentication module
β”‚   β”œβ”€β”€ bloc/              # Auth BLoC components
β”‚   β”œβ”€β”€ login/             # Login screen
β”‚   └── repository/        # Auth data layer
β”œβ”€β”€ customers/             # Customer management module
β”‚   β”œβ”€β”€ bloc/              # Customer BLoC components
β”‚   β”œβ”€β”€ pages/             # Customer screens
β”‚   β”œβ”€β”€ widgets/           # Customer UI components
β”‚   β”œβ”€β”€ services/          # Business logic services
β”‚   β”œβ”€β”€ repository/        # Data access layer
β”‚   └── utils/             # Utilities and validators
β”œβ”€β”€ database/              # Local database management
β”œβ”€β”€ models/                # Data models
β”œβ”€β”€ utils/                 # Shared utilities
└── main.dart             # App entry point

πŸ› οΈ Tech Stack

Core Framework

  • Flutter - Cross-platform mobile development
  • Dart - Programming language

State Management

  • flutter_bloc - Business Logic Component pattern
  • equatable - Value equality for BLoC states

Database & Storage

  • sqflite - SQLite database for Flutter
  • shared_preferences - Key-value storage
  • path - File system path manipulation

Location Services

  • geolocator - GPS location services
  • geocoding - Address-coordinate conversion
  • permission_handler - Runtime permissions

Media & UI

  • image_picker - Camera and gallery access
  • cached_network_image - Optimized image loading
  • url_launcher - External URL handling

Development

  • flutter_lints - Dart code analysis
  • flutter_test - Testing framework

πŸš€ Getting Started

Prerequisites

  • Flutter SDK (3.7.0 or higher)
  • Dart SDK (3.7.0 or higher)
  • Android Studio / VS Code
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/Subrata2402/max_customer.git
    cd max_customer
  2. Install dependencies

    flutter pub get
  3. Run the application

    flutter run

Build for Production

Android APK

flutter build apk --release
flutter build appbundle --release

With Obfuscation (for security)

flutter build apk --release --obfuscate --split-debug-info=build/app/debug_info

πŸ“‹ Configuration

Android Permissions

The app requires the following permissions (configured in android/app/src/main/AndroidManifest.xml):

  • ACCESS_FINE_LOCATION - For precise location access
  • ACCESS_COARSE_LOCATION - For approximate location access
  • CAMERA - For taking profile photos
  • READ_EXTERNAL_STORAGE - For selecting images from gallery
  • INTERNET - For network operations

iOS Configuration

For iOS deployment, ensure proper permissions are configured in ios/Runner/Info.plist:

  • NSLocationWhenInUseUsageDescription
  • NSCameraUsageDescription
  • NSPhotoLibraryUsageDescription

🎯 Key Functionalities

Authentication Flow

  • Persistent login state management
  • Secure session handling
  • Animated login interface with form validation

Customer Operations

  • Create: Add customers with personal, address, and location information
  • Read: View customer list with search and filter capabilities
  • Update: Edit existing customer information
  • Delete: Remove customers with confirmation

Advanced Features

  • Animated Search: Smooth transition between title and search field
  • Location Capture: GPS-based automatic location detection
  • Image Management: Profile photo capture and storage
  • Offline Support: Local SQLite database for offline functionality
  • Real-time Search: Instant search results as you type

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Subrata2402/max_customer | GitHunt