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.
- Secure Login System with animated UI
- Session Management with persistent login state
- Password Visibility Toggle with smooth animations
- 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
- GPS Location Capture for customer addresses
- Google Maps Integration for location visualization
- Geocoding Support for address-to-coordinates conversion
- Location Permissions handling
- Profile Photo Capture from camera or gallery
- Image Picker Service with compression
- Cached Network Images for optimal performance
- Image Storage in local database
- SQLite Local Database for offline functionality
- CRUD Operations with BLoC state management
- Data Persistence with SharedPreferences
- Sample Data for testing and development
- 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
Add screenshots of your app here
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
- Flutter - Cross-platform mobile development
- Dart - Programming language
- flutter_bloc - Business Logic Component pattern
- equatable - Value equality for BLoC states
- sqflite - SQLite database for Flutter
- shared_preferences - Key-value storage
- path - File system path manipulation
- geolocator - GPS location services
- geocoding - Address-coordinate conversion
- permission_handler - Runtime permissions
- image_picker - Camera and gallery access
- cached_network_image - Optimized image loading
- url_launcher - External URL handling
- flutter_lints - Dart code analysis
- flutter_test - Testing framework
- Flutter SDK (3.7.0 or higher)
- Dart SDK (3.7.0 or higher)
- Android Studio / VS Code
- Git
-
Clone the repository
git clone https://github.com/Subrata2402/max_customer.git cd max_customer -
Install dependencies
flutter pub get
-
Run the application
flutter run
flutter build apk --releaseflutter build appbundle --releaseflutter build apk --release --obfuscate --split-debug-info=build/app/debug_infoThe app requires the following permissions (configured in android/app/src/main/AndroidManifest.xml):
ACCESS_FINE_LOCATION- For precise location accessACCESS_COARSE_LOCATION- For approximate location accessCAMERA- For taking profile photosREAD_EXTERNAL_STORAGE- For selecting images from galleryINTERNET- For network operations
For iOS deployment, ensure proper permissions are configured in ios/Runner/Info.plist:
NSLocationWhenInUseUsageDescriptionNSCameraUsageDescriptionNSPhotoLibraryUsageDescription
- Persistent login state management
- Secure session handling
- Animated login interface with form validation
- 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
- 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
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.