docsnap

Biblioteca Dart/Flutter para extração automática de dados de documentos de identificação angolanos a partir de texto reconhecido por OCR.

Atenção: Atualmente, apenas a extração do Bilhete de Identidade (BI) angolano está disponível. Outros documentos serão suportados em versões futuras.


Funcionalidades

  • ✅ Extração automática dos campos do Bilhete de Identidade (BI) angolano
  • 🚧 Verificação e extração de dados do Passaporte angolano (em desenvolvimento)
  • 🚧 Verificação e extração de dados da Carta de Condução angolana (em desenvolvimento)

Principais Campos Extraídos do BI

  • Nome completo

  • Número do bilhete

  • Data de nascimento

  • Sexo

  • Estado civil

  • Naturalidade

  • Província

  • Residência

  • Altura

  • Data de emissão

  • Data de validade

  • Tratamento de variações e erros comuns de OCR

  • Modelagem dos dados extraídos em uma estrutura única (BiModel)


Instalação

Adicione ao seu pubspec.yaml:

dependencies:
  docsnap: ^1.0.0

Execute:

flutter pub get

Uso Básico

A extração dos dados retorna uma instância da classe BiModel, que possui as seguintes propriedades:

enum Sexo { masculino, feminino, desconhecido }

class BiModel {
  final String nomeCompleto;
  final String numeroBilhete;
  final DateTime? dataNascimento;
  final Sexo sexo;
  final String estadoCivil;
  final String residencia;
  final String naturalDe;
  final String provinciaDe;
  final DateTime? emitidoEm;
  final DateTime? validoAte;
  final double? altura;

  BiModel({
    required this.nomeCompleto,
    required this.numeroBilhete,
    required this.dataNascimento,
    required this.sexo,
    required this.estadoCivil,
    required this.residencia,
    required this.naturalDe,
    required this.provinciaDe,
    required this.emitidoEm,
    required this.validoAte,
    required this.altura,
  });
}

1. Extraindo dados para o modelo BiModel

import 'package:docsnap/model/bi_parser.dart';
import 'package:docsnap/model/bi_model.dart';
import 'dart:io';

final biModel = await BiParser.parseFromImage(File('caminho/para/imagem.jpg'));

if (biModel != null) {
  final dadosMap = biModel.toJson();

  // Convertendo o mapa para o modelo BiModel novamente
  final novoBiModel = BiModel.fromJson(dadosMap);

  print(novoBiModel.nomeCompleto);
  print(novoBiModel.numeroBilhete);
  print(novoBiModel.sexo);
  // ... demais campos
}

2. Extraindo dados e acessando como mapa

import 'package:docsnap/model/bi_parser.dart';

final biModel = BiParser.parseFromText(textoOcr);

if (biModel != null) {
  print('Nome: ${biModel["nome_completo"]}');
  print('Número do BI: ${biModel["numero_bilhete"]}');
  // ... demais campos
}

API

BiParser

  • Future<BiModel?> parseFromImage(File imageFile)
    • Processa uma imagem e retorna um modelo com os campos extraídos do BI angolano.

BiModel

Estrutura de dados com os seguintes campos:

  • nomeCompleto
  • numeroBilhete
  • dataNascimento
  • sexo
  • estadoCivil
  • residencia
  • naturalDe
  • provinciaDe
  • emitidoEm
  • validoAte
  • altura

Requisitos


Observações

  • Somente para BI angolano. Outros documentos não são suportados nesta versão.
  • A precisão depende da qualidade da imagem e do texto reconhecido.
  • O parser foi ajustado para os padrões do BI angolano.

Roadmap

  • ✅ Suporte ao Bilhete de Identidade angolano
  • 🚧 Suporte ao Passaporte angolano (em breve)
  • 🚧 Suporte à Carta de Condução angolana (em breve)

Licença

MIT