A comprehensive Flutter-based Inventory Management System designed for manufacturing and business operations. This application provides modules for managing accounts, HR, sales, design, planning, purchasing, stores, production, and quality control.
- Admin - Administrative functions and system management
- Accounts - Financial management including invoice receipts, supplier/customer masters, bank statements, expenses, payments, salary & wages, sales entries, and GST management
- HR - Employee details, attendance management, ESI & PF entry
- Sales/Customer Management - Sale order details, customer free issue lists, sale value updates
- Design - Material master creation, brought lists, category settings
- Planning - Bill of Material preparation, PR creation, job order requests
- Purchase - Purchase order creation and management
- Stores - GR, material requests, material issues, stock maintenance, delivery challans, vendor delivery challans, invoice generation
- Production - Job order entry, assembly work allocation
- Quality - Incoming inspection, category settings, final inspection, CAPA status
- Firebase Authentication - Secure user login and registration
- Cloud Firestore - Real-time database synchronization
- Local Storage - Hive database for offline functionality
- Responsive Design - Works on desktop, tablet, and mobile devices
- PDF Generation - Export reports and documents
- CSV Import/Export - Bulk data operations
- Real-time Sync - Online/offline synchronization
Before setting up the application, ensure you have the following installed:
- Flutter SDK (>=3.0.0 <4.0.0)
- Dart SDK (included with Flutter)
- Git for version control
- Firebase CLI (for Firebase configuration)
- Xcode (latest version)
- CocoaPods (
sudo gem install cocoapods)
- Visual Studio with C++ development tools
- Windows 10 SDK
git clone <repository-url>
cd mpt_imsflutter pub getThis application uses Firebase for authentication and data storage. The Firebase configuration is already included, but you may need to set up your own Firebase project for production use.
- Project ID:
mpts-ims - Supported platforms: macOS, Windows
- Create a new Firebase project at Firebase Console
- Enable Authentication (Email/Password)
- Enable Cloud Firestore
- Install Firebase CLI:
npm install -g firebase-tools - Login to Firebase:
firebase login - Configure for your project:
firebase use --add - Generate new configuration:
flutterfire configure
flutter packages pub run build_runner buildcd macos
pod install
cd ..No additional setup required for basic functionality.
flutter run -d macosflutter run -d windowsflutter build macosThe build output will be in the build/macos directory.
flutter build windowsThe build output will be in the build/windows directory.
-
Launch the Application
- The app will start with a login screen
- You can either sign in with existing credentials or create a new account
-
Create Admin Account
- Use the sign-up option to create the first admin account
- This account will have full access to all modules
-
Initial Data Setup
- Navigate to the Design module to set up material categories
- Add suppliers and customers in the Accounts module
- Set up employee details in the HR module
The application creates a local database structure:
- Location:
Documents/MPT_IMS/Database/ - Purpose: Offline functionality and local caching
- Data: All application data is stored locally and synced with Firebase
- Authentication: User accounts and sessions
- Firestore: Real-time database for all business data
- Automatic Sync: Data synchronizes between local and cloud storage
- Theme: Dark theme with custom color scheme
- Responsive: Automatically adapts to screen size
- Language: English (internationalization ready)
The application is pre-configured with Firebase settings in lib/firebase_options.dart. For production use, update these with your own Firebase project credentials.
- Sidebar Menu: Access different modules (Accounts, HR, Sales, etc.)
- Section Pages: Each module contains specific functionality pages
- Data Grids: Most data is displayed in sortable, filterable tables
- Adding Data: Use the floating action button (+) on list pages
- Editing: Click on rows in data grids to edit entries
- Searching: Use search functionality available in most modules
- Exporting: Export data to CSV format where available
- Bulk Operations: Import data using CSV files
- Firebase Authentication: Secure user management
- Data Validation: Input validation on all forms
- Access Control: Module-based access (ready for role-based permissions)
- Secure Storage: Encrypted local storage using Hive
# Clean and rebuild
flutter clean
flutter pub get
flutter packages pub run build_runner build --delete-conflicting-outputs- Check internet connectivity
- Verify Firebase project configuration
- Ensure Firebase services are enabled
- Delete local database:
Documents/MPT_IMS/Database/ - Restart application to regenerate
macOS:
cd macos && pod install && cd ..
flutter clean && flutter runWindows:
- Ensure Visual Studio C++ tools are installed
- Run as administrator if permission issues occur
lib/
βββ db/ # Hive database initialization
βββ layout/ # App scaffold and navigation
βββ models/ # Data models and Hive adapters
βββ pages/ # UI pages organized by modules
βββ provider/ # Riverpod state management
βββ services/ # Firebase and other services
βββ widgets/ # Reusable UI components
- Create model classes in
lib/models/ - Generate Hive adapters with
build_runner - Create provider classes in
lib/provider/ - Add UI pages in appropriate
lib/pages/subdirectory - Update navigation in
lib/layout/app_scaffold.dart
- Riverpod: Primary state management solution
- Hive Boxes: Local data persistence
- Firebase: Remote data synchronization
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly on multiple platforms
- Submit a pull request
Built as a freelance engagement for a manufacturing client. The production deployment is with the client.
For technical support or questions:
- Check the troubleshooting section above
- Review Flutter documentation: flutter.dev
- Firebase documentation: firebase.google.com
Note: This application requires an active internet connection for initial setup and data synchronization. Once set up, many features work offline with automatic sync when connection is restored.