Skip to content

umarKhan1/MR-POS

Repository files navigation

MR-POS Logo

MR-POS - Modern Point of Sale System

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.


Key Features

Powerful Dashboard

  • 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.

Dynamic Menu Management

  • 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.

Advanced Ordering System

  • 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.

Reservation Module

  • 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.

Dual Theme Support

  • 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.

Visual Gallery

Dashboard & Analytics

Today's Overview (Light) Today's Overview (Dark)
Light Mode 1 Dark Mode 3
Light Mode 2 Dark Mode 4
Stats Breakdown (Light) Stats Breakdown (Dark)

Menu Management

Category Management Menu Item Management
Menu List (Light) Menu List (Dark)
Create Category (Light) Create Category (Dark)

Order System & Cart

Order Selection Screen Layout
Order Selection (Dark) Order Selection (Light)
Order Tracking (Dark) Order Tracking (Light)

Payment & Receipts

Payment Process Professional Receipts
Payment (Light) Receipt (Light)
Payment (Dark) Receipt (Dark)
Card Payment (Light) Card Payment (Dark)

Reservations

Reservation Management Details View
Res Grid (Light) Res Grid (Dark)
Add Res (Light) Add Res (Dark)
Res Details (Light) Res Details (Dark)

Authentication

Sign In (Light) Sign In (Dark)
Auth Light Auth Dark

Notifications

Alert Center (Light) Alert Center (Dark)
Notifications Light Notifications Dark

Tech Stack


Setup Guide

Prerequisites

  • Flutter SDK installed on your machine.
  • A Firebase account.
  • Android Studio / Xcode for mobile development.

1. Clone the Repository

git clone https://github.com/umarKhan1/MR-POS.git
cd MR-POS

2. Firebase Configuration

This is an open-source project, so sensitive configuration files are excluded for security. You must set up your own Firebase project.

  1. Create a project on the Firebase Console.
  2. Enable Anonymous Authentication (or Email/Password).
  3. Enable Cloud Firestore in test mode.
  4. Run the FlutterFire CLI to generate lib/firebase_options.dart:
    flutterfire configure
  5. Download and place the platform-specific files:
    • android/app/google-services.json
    • ios/Runner/GoogleService-Info.plist
    • macos/Runner/GoogleService-Info.plist

3. Install Dependencies

flutter pub get

4. Run the Application

flutter run

Security Best Practices

  • Never commit your firebase_options.dart, google-services.json, or .env files to a public repository.
  • Use Firebase Security Rules to restrict access to your Firestore database.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Authentication & Login

MR-POS supports two modes of authentication to make it easy for both developers and production users.

Demo Mode (Local)

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

Production Mode (Firebase)

To use real Firebase Authentication:

  1. Go to lib/core/di/app_providers.dart.
  2. Switch MockAuthRepository() to FirebaseAuthRepository().
  3. In your Firebase Console, enable the Email/Password sign-in provider.
  4. Create a user account manually or implement a registration flow.

Author

Developed with ❤️ by Muhammad Omar.

Connect with me:


License

Internal / Open Source. See LICENSE for more details.

About

MR POS Develop in flutter support MacOS, Windows and web platforms

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors