Skip to content

A simple Point of Sale (POS) application built with Flutter with clean architecture design.

License

Notifications You must be signed in to change notification settings

elrizwiraswara/flutter_pos

Repository files navigation

Flutter POS

License: MIT Made with Flutter

A simple Point of Sale (POS) application built with Flutter with clean architecture design. The application is designed to be used both online and offline. The application's local data (sqflite) will be automatically synchronized with the cloud data (firestore) when the application detects an internet connection.

This application uses an offline-first approach, where data will be stored in the local database first and then in the cloud database if there is an internet connection. If there is no internet connection, all actions performed by the user (create, update, delete) will be recorded as 'QueuedActions' in local database and will be executed automatically when the internet connection available.

Image 1 Image 2 Image 2 Image 2 Image 2

Demo APK

Download Demo APK

Features

  • Product Management: Add, update, and delete products.
  • Sales Tracking: Record and manage sales transactions.
  • User Authentication: Secure login and user management.
  • Responsive UI: Used Material UI 3, support dark & light mode, and user-friendly error handler UI.
  • Customizeable Theme: Customizeable & adaptive theme colors, text-style, etc.

Architecture

Architecture

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/elrizwiraswara/flutter_pos.git
    cd flutter_pos
  2. Install dependencies:

    flutter pub get
  3. Set up Firebase:

    • Create a new project on Firebase.
    • Follow the instructions to add Firebase to your Flutter app here.
    • Enable google authentication provider
    • Update cloud firestore rules to allow read write operation

    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if request.auth != null;
        }
      }
    }
    
    • Add cloud firestore indexes to enable query

    Cloud Firestore Indexes

    • Update firebase storage rules to allow read write operation

    service firebase.storage {
      match /b/{bucket}/o {
        match /{allPaths=**} {
          allow read, write: if request.auth != null;
        }
      }
    }
    
  4. Run the application:

    flutter run

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any bugs, feature requests, or improvements.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Trakteer Saya

About

A simple Point of Sale (POS) application built with Flutter with clean architecture design.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published