Skip to main content

Changelog

All notable changes to MStore Mobile will be documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0] - 2024-10-05

🎉 Initial Release

Added

  • Cashier System
    • Real-time product search and filtering
    • Barcode scanning support
    • Shopping cart with quantity management
    • Multiple payment methods (Cash, Card, E-Wallet)
    • Discount and promo application
    • Receipt printing via Bluetooth thermal printer
    • Offline-first capability
  • Inventory Management
    • Product CRUD operations
    • Stock tracking and monitoring
    • Low stock alerts
    • Stock adjustment and opname
    • Batch operations
    • Category management
  • Dashboard & Analytics
    • Sales summary (daily, weekly, monthly)
    • Revenue charts and graphs
    • Top selling products
    • Transaction statistics
    • Performance metrics
  • Authentication
    • Email/Password login
    • Google Sign-In
    • Apple Sign-In
    • JWT-based authentication
    • Auto token refresh
    • Role-based access control (RBAC)
  • User Management
    • Employee management
    • Role assignment
    • Permission management
    • Activity logging
  • Transaction History
    • Complete transaction records
    • Search and filter
    • Transaction details
    • Export to PDF/Excel
  • Reports
    • Sales reports
    • Inventory reports
    • Financial reports
    • Custom date range
    • Export functionality
  • Notifications
    • Push notifications via FCM
    • In-app notifications
    • Low stock alerts
    • Transaction notifications
  • Settings
    • Branch management
    • Printer configuration
    • Language selection (ID/EN)
    • Theme customization
    • Profile management

Technical Features

  • Architecture
    • Clean Architecture implementation
    • BLoC pattern for state management
    • Dependency Injection with GetIt + Injectable
    • Repository pattern for data access
  • Networking
    • Dio + Retrofit for HTTP
    • Interceptor pipeline (Correlation, Headers, Auth, Refresh, Retry, Logging)
    • HTTP/2 support
    • Auto token refresh
    • Retry mechanism
  • Database
    • Isar (NoSQL) for local storage
    • Offline-first architecture
    • Background sync
    • Conflict resolution
  • Real-Time
    • MQTT integration for real-time updates
    • Auto-reconnect
    • Topic subscription management
  • Logging & Monitoring
    • Structured logging with AppLog
    • BLoC observer for state tracking
    • Firebase Crashlytics integration
    • Performance monitoring
  • Localization
    • Multi-language support (ID/EN)
    • Slang for type-safe translations
    • Dynamic language switching
  • Platform Support
    • iOS 12.0+
    • Android 5.0+ (API 21+)
    • Web (Chrome, Safari, Firefox)
    • Windows 10+
    • macOS 10.14+

🔧 Technical Stack

  • Flutter 3.8+
  • Dart 3.8+
  • BLoC 9.0+
  • Dio 5.9+
  • Retrofit 4.7+
  • Isar Community (custom fork)
  • Firebase (Auth, Firestore, FCM, Crashlytics)
  • MQTT5 Client

[Unreleased]

Planned Features

  • Loyalty program integration
  • Customer management
  • Supplier management
  • Purchase orders
  • Multi-warehouse support
  • Advanced analytics
  • Biometric authentication
  • NFC payment support
  • Invoice generation
  • Expense tracking

In Progress

  • Enhanced reporting dashboard
  • Bulk product import
  • Advanced search filters
  • Performance optimizations

Version History

Version Naming Convention

MAJOR.MINOR.PATCH+BUILDNUMBER

Example: 1.0.0+202410052314
- MAJOR: 1 (Breaking changes)
- MINOR: 0 (New features, backward compatible)
- PATCH: 0 (Bug fixes)
- BUILD: 202410052314 (YYYYMMDDHHmm)

Release Schedule

  • Major releases: Quarterly
  • Minor releases: Monthly
  • Patch releases: As needed
  • Hotfixes: Immediate (for critical issues)

Migration Guides

Upgrading from Beta to 1.0.0

Database Migration

// Run migration script
await DatabaseMigration.migrateToV1();

Breaking Changes

  1. Authentication
    • Old: AuthService.login(email, password)
    • New: AuthRepository.login(LoginRequest(email, password))
  2. Product API
    • Old: ProductService.getProducts()
    • New: ProductRepository.getProducts()
  3. State Management
    • Migrated from Provider to BLoC
    • Update all state access patterns

Configuration Changes

# Old .env format
API_URL=https://api.mstore.com

# New .env format
API_BASE_URL=https://api.mstore.com
MQTT_BROKER=mqtt.mstore.com
MQTT_PORT=1883

Known Issues

Current Limitations

  1. Offline Mode
    • Some features require internet connection
    • Sync conflicts need manual resolution
  2. Printer Support
    • Limited to Bluetooth thermal printers
    • USB printer support coming soon
  3. Platform-Specific
    • Web version has limited offline capability
    • iOS requires iOS 12.0 or higher

Workarounds

  • For sync conflicts: Clear local cache and re-sync
  • For printer issues: Ensure Bluetooth permissions granted
  • For web offline: Use desktop/mobile app instead

Deprecations

Deprecated in 1.0.0

  • None (initial release)

Planned Deprecations

  • None currently planned

Security Updates

1.0.0 Security Features

  • JWT token-based authentication
  • Encrypted local storage
  • HTTPS-only communication
  • Token auto-refresh
  • Role-based access control

Security Best Practices

  1. Always use HTTPS endpoints
  2. Never hardcode API keys
  3. Regularly update dependencies
  4. Enable Crashlytics in production
  5. Review security logs regularly

Contributors

Core Team

  • Lead Developer: Faisal Affan
  • Backend Team: [Team members]
  • QA Team: [Team members]
  • Design Team: [Team members]

Special Thanks

  • Flutter team for the amazing framework
  • Open source community for libraries
  • Beta testers for valuable feedback

Support

Getting Help

Reporting Issues

Please include:
  1. App version
  2. Platform and OS version
  3. Steps to reproduce
  4. Expected vs actual behavior
  5. Screenshots/logs if applicable

Last Updated: October 14, 2024
Current Version: 1.0.0+202410052314