Flutter

Masterpass Example

pub issues forks stars style license


Table of Contents

About The Project

Screenshot 1 Screenshot 2 Screenshot 3

This project provides a Flutter package for scanning South African identification documents. Supported documents include:

  • x South African ID Cards
  • x South African ID Books
  • X South African Driver's Licenses

Built With

Getting Started

Prerequisites

Since this is a Flutter package, you will need to use it from within a Flutter App. A few resources to get you started with your first Flutter project:

Also, because this plugin makes use of Firebase ML Vision for scanning, you must configure Firebase for your project.

Installation

Add rsa_scan as a dependency in your pubspec.yaml file.

iOS

First, configure Firebase for your iOS project.

Then, this package requires a minimum deployment target of 9.0. You can add the line platform :ios, '9.0' in your iOS project Podfile. You may also need to update your app's deployment target to 9.0 using Xcode. Otherwise, you may see compilation errors.

Finally, include MLVisionBarcodeModel in your Podfile. Then run pod update in a terminal within the same directory as your Podfile.

pod 'Firebase/MLVisionBarcodeModel'

Android

First, configure Firebase for your Android project.

Then, you will need to add the following dependencies in your app-level build.gradle file:

android{
    dependencies {
        ...
        implementation 'com.google.android.gms:play-services-vision:20.1.0'
        implementation 'com.google.android.gms:play-services-vision-common:19.1.0'
    }
}

Finally, add the following declaration to your app's AndroidManifest.xml file:

<application ...>
    <!-- Used for firebase ML Vision -->
    <meta-data
            android:name="com.google.firebase.ml.vision.DEPENDENCIES"
            android:value="barcode" />
</application>

Usage

The package exposes 3 functions, namely scanIdCard, scanIdBook and scanDrivers.

A simple usage example of scanIdCard:

import 'package:rsa_scan/rsa_scan.dart';

RsaIdCard idCard = await scanIdCard(context);
print(idCard.idNumber);
print(idCard.firstNames);
print(idCard.surname);
print(idCard.gender);
// See the API reference for the full set of available properties

A simple usage example of scanIdBook:

import 'package:rsa_scan/rsa_scan.dart';

RsaIdBook idBook = await scanIdBook(context);
print(idBook.idNumber);
print(idBook.birthDate);
print(idBook.gender);
print(idBook.citizenshipStatus);
// See the API reference for the full set of available properties

A simple usage example of scanDrivers:

import 'package:rsa_scan/rsa_scan.dart';

RsaDriversLicense driversLicense = await scanDrivers(context);
print(driversLicense.idNumber);
print(driversLicense.birthDate);
print(driversLicense.gender);
print(driversLicense.citizenshipStatus);
// See the API reference for the full set of available properties

For a more comprehensive example, please see the example application

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  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

License

Distributed under the MIT License. See LICENSE for more information.

Contact

BornIdeas - born.dev - info@born.dev

Project Link: https://github.com/born-ideas/rsa_scan

Acknowledgements

Libraries

rsa_scan
Scan identity documents such as South African ID Cards, ID Books and Driver's Licenses.