Skip to content

AmitXShukla/Healthcare-Management-App-Flutter_Firebase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flutter FireBase Healthcare Management App

Complete Healthcare Management (Patient, OPD, IPD, Rx, Lab) in Flutter Firebase App for iOS Android and Web

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

Elish HMS

Elish Healthcare Management System App

Objective

Manage OPD, IPD, Pathology, WebMD, Rx, Patient Appointments

Due to current Covid-19 situation,
Patient's private data is not stored in app and location tracing functionality is not available with out government/authorities approval.

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:Google Firestore/Firebase
Messages: LOOM SDK
WebView: loom-app (using Angular version

Related Apps

Features

  • Store millions of records with lightening fast data retrieval
  • hands free /voice activated typing
  • Secured App (Role based access with Admin panel)
  • Local dictionary based auto-completion
  • Global dictionary based auto-completion/auto-sync (Pro)
  • GBs of pictures, documents, Lab reports, Receipts (Pro)
  • Self learning (auto complete) data entry (Pro)
  • Social authentication (Pro)
  • SMS, EMAIL, WhatsAPP API (Pro)
send email to [email protected] for Pro version enquiries.

Product Images

Pic 1 Pic 2 Pic 3 Pic 4

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

Releases

No releases published

Packages

No packages published

Languages