MPT IMS - Inventory Management System
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.
🚀 Features
Core Modules
- 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
Technical Features
- 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
📋 Prerequisites
Before setting up the application, ensure you have the following installed:
Required Software
- Flutter SDK (>=3.0.0 <4.0.0)
- Dart SDK (included with Flutter)
- Git for version control
- Firebase CLI (for Firebase configuration)
Platform-specific Requirements
For macOS Development:
- Xcode (latest version)
- CocoaPods (
sudo gem install cocoapods)
For Windows Development:
- Visual Studio with C++ development tools
- Windows 10 SDK
🛠️ Installation & Setup
1. Clone the Repository
git clone <repository-url>
cd mpt_ims2. Install Flutter Dependencies
flutter pub get3. Firebase Setup
This 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.
Current Firebase Configuration:
- Project ID:
mpts-ims - Supported platforms: macOS, Windows
To use your own Firebase project:
- 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
4. Generate Hive Type Adapters
flutter packages pub run build_runner build5. Platform-specific Setup
macOS Setup:
cd macos
pod install
cd ..Windows Setup:
No additional setup required for basic functionality.
🚀 Running the Application
Development Mode
Run on macOS:
flutter run -d macosRun on Windows:
flutter run -d windowsProduction Build
macOS Build:
flutter build macosThe build output will be in the build/macos directory.
Windows Build:
flutter build windowsThe build output will be in the build/windows directory.
📱 First Time Setup
-
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
🗂️ Data Storage
Local Storage (Hive)
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
Cloud Storage (Firebase)
- Authentication: User accounts and sessions
- Firestore: Real-time database for all business data
- Automatic Sync: Data synchronizes between local and cloud storage
🔧 Configuration
Application Settings
- Theme: Dark theme with custom color scheme
- Responsive: Automatically adapts to screen size
- Language: English (internationalization ready)
Firebase Configuration
The application is pre-configured with Firebase settings in lib/firebase_options.dart. For production use, update these with your own Firebase project credentials.
📊 Usage Guide
Navigation
- 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
Common Operations
- 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
🛡️ Security
- 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
🐛 Troubleshooting
Common Issues
Build Errors:
# Clean and rebuild
flutter clean
flutter pub get
flutter packages pub run build_runner build --delete-conflicting-outputsFirebase Connection Issues:
- Check internet connectivity
- Verify Firebase project configuration
- Ensure Firebase services are enabled
Local Database Issues:
- Delete local database:
Documents/MPT_IMS/Database/ - Restart application to regenerate
Platform-specific Issues:
macOS:
cd macos && pod install && cd ..
flutter clean && flutter runWindows:
- Ensure Visual Studio C++ tools are installed
- Run as administrator if permission issues occur
📝 Development
Project Structure
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
Adding New Features
- 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
State Management
- Riverpod: Primary state management solution
- Hive Boxes: Local data persistence
- Firebase: Remote data synchronization
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly on multiple platforms
- Submit a pull request
📄 License
This project is private and proprietary. All rights reserved.
📞 Support
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.