Skip to content

AmitXShukla/Inventory.ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inventory.ai

A Flutter Project - Cloud Inventory management app

A complete cloud web and Mobile app for Managing Inventory for custom order & schedules.

- If you like this project, please consider giving it a star (*) and follow me at GitHub & YouTube.

Getting Started

This project is a community version and is absolutely free for private use.
click here for Demo & Video tutorials

Technologies

Frontend: Flutter
Backend: Firebase

Related Apps

Features

  • Store millions of records with lightening fast data retrieval
  • Live | real time inventory monitoring
  • Match Exception processes
  • Inventory sync
  • Advance AI Predictive ML Analytics
  • Real time Analytics
  • Multi user, multi role, multi-device (web, mobile & desktop)
  • Camera, hand held, AI counting, picture recognition, QR Code reader
  • Paperless documentation, receipt, invoice & payments
  • Working with Flutter UI, Material 3 design
  • Social Authentication & Role based access, secured app
  • complete customizable UI + CRUD
  • Live Charts
  • AI Features

  • Phone/Handheld QR Code | Bar Code scan
  • Phone auth, real time notifications, live alerts, SMS, EMAIL, WhatsAPP API (Pro)
  • 2 -way authentication
  • Live Approval workflow
  • Payment API
  • Live customer support chat | call | channel communications
  • Doc sign
  • Product Image recognition
  • Vehicle license plate reader
  • Employee Scan | time punching
send email to [email protected] for Pro version enquiries.

Product Images

How to Install

  • Install Flutter environment
  • Download This GitHub repository
  • install Flutter packages *pub get) and Flutter web -> Flutter create .
  • Setup firebase account/project
  • Copy Firebase Project Config settings and replace variable firebaseConfig at src/web/index.html
  • enable Firebase social authentications
  • update Firebase Rules
  •     rules_version = '2';
        service cloud.firestore {
        match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if false;
        }
        match /roles/{document} {
        // fix this, anyone who is logged in, can read these document & passwords
        //  allow read: if isSignedIn();
      	allow read, write: if false;
        }
        
        match /users/{document} {
        allow create: if true;
        allow read : if isSignedIn() && (isDocOwner() || isAdmin());
        allow update: if isSignedIn() && isDocOwner() && onlyContentChanged();
        allow update, delete: if isAdmin();
        }
        
        match /person/{document=**} {
        allow create: if true;
        allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        allow delete : if isSignedIn() && isAdmin();
        }
        
        match /person/{document}/Vaccine/{doc=**} {
        allow create: if true;
        // allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        // fix this later
        allow read, update : if true;
        allow delete : if isSignedIn() && isAdmin();
        }
        
        match /person/{document}/OPD/{doc} {
        allow create: if true;
        // allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        // fix this later
        allow read, update : if true;
        allow delete : if isSignedIn() && isAdmin();
        }
        
        match /person/{document}/Lab/{doc} {
        allow create: if true;
        // allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        // fix this later
        allow read, update : if true;allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        allow delete : if isSignedIn() && isAdmin();
        }
        
        match /person/{document}/Rx/{doc} {
        allow create: if true;
        // allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        // fix this later
        allow read, update : if true;
        allow delete : if isSignedIn() && isAdmin();
        }
        
        match /person/{document}/Messages/{doc} {
        allow create: if true;
        // allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        // fix this later
        allow read, update : if true;
        allow delete : if isSignedIn() && isAdmin();
        }
        
        match /appointments/{document} {
        allow create: if true;
        allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        allow delete : if isSignedIn() && isAdmin();
        }
        
        match /records/{document} {
        allow create: if true;
        allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        }
        
        match /vaccine/{document} {
        allow create: if true;
        allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        }
        
        match /purchase/{document} {
        allow create: if true;
        allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        allow delete : if isSignedIn() && isAdmin();
        }
        
    		match /msr/{document} {
        allow create: if true;
        allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        allow delete : if isSignedIn() && isAdmin();
        }
        
        match /vendor/{document} {
        allow create: if true;
        allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
        allow delete : if isSignedIn() && isAdmin();
        }
        
        match /warehouse/{document} {
        allow create: if true;
        allow read: if isSignedIn()
        allow update : if isSignedIn() && (isDocOwner() || isAdmin());
        allow delete : if isSignedIn() && isAdmin();
        }
        match /item/{document} {
        allow create: if true;
        allow read: if isSignedIn()
        allow update : if isSignedIn() && (isDocOwner() || isAdmin());
        allow delete : if isSignedIn() && isAdmin();
        }
        
        // helper functions
        function isSignedIn() {
        return request.auth.uid != null;
        }
        
        function onlyContentChanged() {
        return request.resource.data.role == resource.data.role;
        // make sure user is not signing in with any role or changin his role during update
        }
        function isDocOwner() {
        return request.auth.uid == resource.data.author;
        }
        // function isDocCreater() {
        // return request.auth.uid == request.resource.data.author;
        // }
        function isAdmin() {
        return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == "admin";
        }
        // function isEmployee() {
        // return get(/databases/$(database)/documents/settings/$(request.auth.uid)).data.role == "employee";
        // }
        }
        }
    

Pic 4 Pic 4 Pic 4

Flutter material theme

https://github.com/flutter/samples/tree/main/material_3_demo

About

A Flutter Project - Cloud Inventory management app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published