Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Bilsoft Fiş Okuyucu

Flutter tabanlı bir OCR uygulaması. Kamera veya galeriden alınan fiş / fatura görsellerinden firma adı, tarih, toplam tutar ve fiş numarası gibi alanları otomatik olarak ayıklar.

Proje klasörü: stajim/


Özellikler

  • Kamera veya galeri ile fiş görseli seçme
  • Google ML Kit ile Latin karakter setinde metin tanıma (OCR)
  • Türkçe fiş formatlarına uygun regex tabanlı alan çıkarma
    • Firma / kurumsal unvan
    • Fiş tarihi
    • Toplam tutar (TOPLAM, TUTAR, ÖDENECEK, TL vb.)
    • Fiş / fatura numarası
  • Tutarları Türkçe biçimden normalize etme (1.234,561234.56)
  • Çıkarılan alanları düzenlenebilir formda gösterme
  • Bilsoft marka renkleriyle sade arayüz

Ekran Akışı

  1. Kamera veya galeriden bir fiş seç
  2. Önizlemeyi kontrol et
  3. Verileri Tara ve Getir ile OCR’ı çalıştır
  4. Doldurulan alanları gözden geçir / düzenle
  5. Gerekirse Temizle ile sıfırla

Teknoloji Yığını

Katman Teknoloji
Framework Flutter (Dart SDK ^3.10.8)
OCR google_mlkit_text_recognition
Görsel seçimi image_picker
UI Material 3
Platformlar Android, iOS

Proje Yapısı

ocr-app/
├── README.md
├── LICENSE
└── stajim/                     # Flutter uygulaması
    ├── lib/
    │   └── main.dart           # UI + OCR + alan çıkarma mantığı
    ├── android/
    ├── ios/
    ├── test/
    └── pubspec.yaml

Ana mantık stajim/lib/main.dart içinde toplanmıştır:

  • _resimAl — kamera / galeri seçimi
  • _verileriAyikla — ML Kit OCR + regex ile alan doldurma
  • _normalizeTutar — tutar biçimi dönüşümü

Kurulum

Gereksinimler

  • Flutter (stabil kanal önerilir)
  • Android Studio / Xcode (hedef platforma göre)
  • Fiziksel cihaz veya emülatör (kamera için fiziksel cihaz önerilir)

Adımlar

# Depoyu klonla
git clone https://github.com/salihkkus/ocr-app.git
cd ocr-app/stajim

# Bağımlılıkları yükle
flutter pub get

# Cihazları kontrol et
flutter devices

# Uygulamayı çalıştır
flutter run

Platform İzinleri

Android

AndroidManifest.xml içinde tanımlı:

  • CAMERA
  • READ_EXTERNAL_STORAGE

iOS

Kamera ve fotoğraf kütüphanesi kullanımı için ios/Runner/Info.plist dosyasına kullanım açıklamaları eklenmelidir:

<key>NSCameraUsageDescription</key>
<string>Fiş okumak için kamera erişimi gereklidir.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Fiş seçmek için galeri erişimi gereklidir.</string>

OCR Nasıl Çalışır?

  1. Seçilen görsel InputImage olarak ML Kit’e verilir.
  2. Tanınan metin satırlara bölünür ve büyük harfe normalize edilir.
  3. Regex kuralları ile ilgili alanlar aranır:
    • Firma: A.Ş., LTD., MARKET, RESTORAN gibi kurumsal ifadeler
    • Tarih: dd.mm.yyyy, yyyy-mm-dd vb.
    • Tutar: anahtar kelime + tutar değeri (gerekirse bir sonraki satır)
    • Fiş No: FİŞ NO, FATURA NO benzeri etiketler
  4. Bulunan değerler ilgili TextEditingController alanlarına yazılır; kullanıcı gerekirse düzeltir.

Not: Sonuç kalitesi fiş görselinin netliğine, ışığa ve fiş düzenine bağlıdır. Alanlar her zaman düzenlenebilir bırakılmıştır.


Geliştirme

cd stajim

# Analiz
flutter analyze

# Testler
flutter test

# Release derleme (Android)
flutter build apk

Lisans

Bu proje MIT License ile lisanslanmıştır.

Copyright (c) 2026 Salih Karakuş

About

A smart mobile application using Flutter and Google ML Kit to automatically scan and extract structured data (prices, dates, items) from receipts using Regex and OCR.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages