Skip to main content

MStore Mobile - Flutter POS Application

MStore Mobile adalah aplikasi Point of Sale (POS) modern yang dibangun dengan Flutter 3.8+ menggunakan Clean Architecture dan BLoC Pattern.

🎯 Key Features

🏗️ Architecture

lib/
├── core/                    # Core functionality
│   ├── network/            # Dio + Retrofit + Interceptors
│   ├── database/           # Isar local database
│   ├── auth/               # Authentication
│   └── observers/          # BLoC observers
├── features/               # Feature modules (BLoC pattern)
│   ├── cashier/
│   ├── inventory/
│   ├── dashboard/
│   └── auth/
├── di/                     # Dependency Injection (GetIt)
└── pkg/                    # Shared utilities

🚀 Tech Stack

Core Technologies

  • Flutter: 3.8+
  • Dart: 3.8+
  • State Management: BLoC 9.0+
  • Dependency Injection: GetIt + Injectable

Networking

  • HTTP Client: Dio 5.9+
  • API Client: Retrofit 4.7+
  • Real-time: MQTT5 Client

Database & Storage

  • Local DB: Isar Community (NoSQL)
  • Persistent State: Hydrated BLoC
  • Secure Storage: Encrypted Isar

Firebase Integration

  • Authentication: Firebase Auth
  • Cloud Storage: Firestore
  • Push Notifications: FCM
  • Crash Reporting: Crashlytics
  • Analytics: Firebase Analytics

UI/UX

  • Routing: GoRouter
  • Internationalization: Slang
  • Theming: Theme Tailor
  • Screen Adaptation: ScreenUtil
  • Platform UI: Cupertino + Material

Additional

  • Printer: Bluetooth thermal printer
  • Barcode: Mobile Scanner
  • Image: Cached Network Image
  • Permissions: Permission Handler

📱 Platform Support

iOS

iOS 12.0+

Android

Android 5.0+ (API 21+)

Web

Chrome, Safari, Firefox

🎨 Design Principles

Clean Architecture

  • Separation of Concerns: UI, Business Logic, Data terpisah
  • Testability: Mudah di-unit test
  • Maintainability: Code yang mudah di-maintain
  • Scalability: Mudah dikembangkan

BLoC Pattern

  • Predictable State: State changes yang jelas
  • Reusability: BLoC bisa digunakan di multiple screens
  • Debugging: Easy to track state changes
  • Testing: Business logic terpisah dari UI

Offline-First

  • Local Database: Data disimpan di Isar
  • Background Sync: Auto-sync saat online
  • Conflict Resolution: Smart conflict handling
  • Real-time Updates: MQTT untuk instant updates

🔐 Security Features

  • JWT token-based authentication
  • Auto token refresh
  • Role-based access control (RBAC)
  • Biometric authentication support
  • Encrypted local storage
  • HTTPS-only communication
  • Secure token storage
  • Data encryption at rest
  • Certificate pinning (optional)
  • Request signing
  • Rate limiting
  • API key rotation

📊 Performance

  • Startup Time: < 2 seconds
  • Transaction Speed: < 1 second
  • Offline Capability: Full functionality
  • Memory Usage: Optimized with Isar
  • Battery Efficient: Background sync optimization

🔄 Development Workflow

Environments

  • Development: Local development & testing
  • Staging: Pre-production testing
  • Production: Live environment

📚 Documentation Structure

🚀 Quick Start

1

Clone Repository

git clone <repository-url>
cd mstore_mobile
2

Install Dependencies

flutter pub get
3

Generate Code

flutter pub run build_runner build --delete-conflicting-outputs
4

Run App

flutter run --flavor development -t lib/main_development.dart

📖 Next Steps

🤝 Contributing

Interested in contributing? Check out our Contributing Guide.

📞 Support