MR-POS is a powerful, cross-platform Point of Sale (POS) system designed for modern businesses. Built with Flutter, it offers a seamless experience across Windows, macOS, and Android. It provides real-time data synchronization using Firebase, intuitive menu management, a robust ordering system, and comprehensive reporting.
- Real-time Analytics: Track daily sales, monthly revenue, and table occupancy at a glance.
- Dynamic Charts: Interactive revenue and sales trends for the last 7 days/months.
- Popular Dishes: Visibility into top-performing menu items by serving count and order frequency.
- Categorized Menu: Organize items into Custom Categories (Pizza, Seafood, Drinks, etc.).
- Stock Tracking: Real-time status indicators (In Stock, Low Stock, Out of Stock).
- Menu Types: Support for different menu types like "Normal Menu", "Kids Menu", etc.
- Quick Actions: Easy modal-based interface to add/edit items and categories.
- Responsive Cart: Quick-add items, adjust quantities, and manage orders with a sliding sidebar.
- Order Tracking: Filter and manage orders by status (Awaited, Confirmed, Cancelled, Failed).
- Flexible Payments: Support for Cash and Card payments with a polished modal interface.
- PDF Receipts: Generate and print professional PDF receipts for customers.
- Calendar View: Manage upcoming reservations with a time-slotted grid.
- Customer CRM: Maintain customer contact details and guest counts.
- Real-time Sync: Instant updates across all devices when a reservation is made.
- Glassmorphism Design: Premium UI with smooth transitions and blur effects.
- Dark Mode: Eye-friendly dark interface for low-light environments.
- Light Mode: Clean, high-contrast look for daytime operations.
| Today's Overview (Light) | Today's Overview (Dark) |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Category Management | Menu Item Management |
|---|---|
![]() |
![]() |
![]() |
![]() |
| Order Selection | Screen Layout |
|---|---|
![]() |
![]() |
![]() |
![]() |
| Payment Process | Professional Receipts |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Reservation Management | Details View |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Sign In (Light) | Sign In (Dark) |
|---|---|
![]() |
![]() |
| Alert Center (Light) | Alert Center (Dark) |
|---|---|
![]() |
![]() |
- Framework: Flutter (v3.x)
- State Management: BLoC / Cubit
- Backend: Google Firebase
- Cloud Firestore (Real-time Database)
- Firebase Messaging (Push Notifications)
- Firebase Auth (Authentication)
- Local Storage: Shared Preferences
- Utilities:
- Intl for formatting
- Google Fonts
- PDF for receipt generation
- Flutter SDK installed on your machine.
- A Firebase account.
- Android Studio / Xcode for mobile development.
git clone https://github.com/umarKhan1/MR-POS.git
cd MR-POSThis is an open-source project, so sensitive configuration files are excluded for security. You must set up your own Firebase project.
- Create a project on the Firebase Console.
- Enable Anonymous Authentication (or Email/Password).
- Enable Cloud Firestore in test mode.
- Run the FlutterFire CLI to generate
lib/firebase_options.dart:flutterfire configure
- Download and place the platform-specific files:
android/app/google-services.jsonios/Runner/GoogleService-Info.plistmacos/Runner/GoogleService-Info.plist
flutter pub getflutter run- Never commit your
firebase_options.dart,google-services.json, or.envfiles to a public repository. - Use Firebase Security Rules to restrict access to your Firestore database.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- 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
MR-POS supports two modes of authentication to make it easy for both developers and production users.
Out of the box, the project is configured with a Mock Authentication layer. This allows you to explore all features immediately after cloning without setting up Firebase first.
- Email:
admin@mrpos.com - Password:
admin123
To use real Firebase Authentication:
- Go to
lib/core/di/app_providers.dart. - Switch
MockAuthRepository()toFirebaseAuthRepository(). - In your Firebase Console, enable the Email/Password sign-in provider.
- Create a user account manually or implement a registration flow.
Developed with ❤️ by Muhammad Omar.
Connect with me:
Internal / Open Source. See LICENSE for more details.






























