Skip to content

Latest commit

 

History

44 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scanora

Android Kotlin Compose Version Android CI Deploy Pages

Scanora é um app Android de digitalização de documentos com foco em processamento local, OCR no dispositivo e um fluxo direto entre captura, revisão e exportação.

Repositório: https://github.com/Soturine/scanora
Releases: https://github.com/Soturine/scanora/releases
Site: https://soturine.github.io/scanora/

O que o app já faz

  • scanner próprio com CameraX, detecção ao vivo, foco por toque, flash e lote multipágina como fluxo principal da Home;
  • ML Kit Document Scanner preservado como alternativa assistida;
  • importação de galeria pelo fluxo do Google quando suportada;
  • captura e importação direta continuam editáveis com recorte manual acessível;
  • Home minimalista sem escolha obrigatória de tipo antes do scan;
  • onboarding arrastável, ícone do app e estados contextuais com a raposa mascote do Scanora;
  • interface em 12 idiomas: English, Português do Brasil, Español, Français, Italiano, العربية, Deutsch, Bahasa Indonesia, हिन्दी, Türkçe, 日本語 e 한국어, com RTL real no árabe;
  • cópia das imagens de entrada para armazenamento interno antes de criar o lote local;
  • detector local perspectivo em três escalas, quatro lados independentes, perfis automáticos, confiança tipada, NO_DOCUMENT e fallback conservador;
  • reajuste automático do crop e editor manual mais confortável para acertos finos;
  • filtros locais recalibrados para documento, cinza, cor e recibo com menos risco de estourar a página;
  • pipeline de imagem unificado para preview, filtros, OCR e exportação derivarem da mesma página lógica;
  • OCR local automático com fallback limitado a dois reconhecedores, qualidade EMPTY/WEAK/PARTIAL/GOOD, seleção manual avançada, fingerprint e artefato persistido;
  • busca local por título, tags e OCR via Room FTS;
  • exportação em PDF pesquisável quando há OCR, JPG e PNG, com A4/Letter/Auto e escolha progressiva por formato;
  • pós-exportação com nome, tipo, tamanho, local salvo, abrir e compartilhar;
  • histórico local com título, tags, favoritos e busca.
  • banco sem migration destrutiva, schema versionado e lifecycle explícito dos arquivos privados;
  • importação parcial com contagem de falhas, rollback e preservação da ordem;
  • cache visual descartável com fallback para a fonte canônica;
  • backup automático desativado e compartilhamento restrito aos diretórios de export.

Proposta de valor

Scanora foi pensado para transformar páginas, contratos, cadernos e recibos em arquivos legíveis sem depender de upload obrigatório. A câmera própria é o caminho principal, sem exigir que o usuário escolha um perfil técnico antes de capturar, e o scanner assistido continua disponível como alternativa.

Capturas

Capturas oficiais do app em aparelho real seguem em validação final.
Nesta rodada, o material público foi alinhado ao fluxo real do produto sem substituir essa etapa por mockups artificiais.

Stack

  • Kotlin
  • Android Gradle Plugin 9.1.1
  • Jetpack Compose + Material 3
  • Navigation Compose
  • ViewModel + Coroutines + Flow
  • Room
  • DataStore
  • WorkManager
  • CameraX
  • ML Kit Document Scanner
  • ML Kit Text Recognition

Arquitetura

  • app: bootstrap, navegação, onboarding e integração dos módulos
  • core-common: modelos, contratos e use cases
  • core-data: Room, DataStore, OCR, exportação e processamento de imagem
  • core-ui: tema e componentes reutilizáveis
  • feature-*: telas e ViewModels por contexto funcional

Referências técnicas:

Como rodar

  1. Abra o projeto no Android Studio com suporte a AGP 9.1.1.
  2. Use JDK 17 ou superior compatível com AGP 9.
  3. Instale Android SDK Platform 36 e Build Tools 36.0.0.
  4. Rode ./gradlew assembleDebug ou execute o módulo app.

Identidade do app:

  • applicationId: com.soturine.scanora
  • namespace base: com.soturine.scanora

CI e Pages

  • O workflow Android CI roda check, compila debug/release e executa os testes instrumentados de Room, busca e PDF em emulador API 35.
  • CodeQL analisa Java/Kotlin e o setup Gradle valida o wrapper; Dependabot acompanha Gradle e GitHub Actions.
  • O site público é publicado a partir de site/.
  • Para o GitHub Pages funcionar no repositório publicado, ative em Settings > Pages > Source: GitHub Actions.

Privacidade

  • processamento local por padrão;
  • OCR e filtros executados no dispositivo sempre que possível;
  • sem backend obrigatório, login ou sincronização no MVP.
  • scans, Room, OCR e preferências excluídos de cloud backup e device transfer automáticos;
  • excluir uma página ou lote remove os arquivos privados gerenciados, mas preserva fotos externas e exports do usuário.

Política completa em PRIVACY_POLICY.md.

Status

0.3.1 leva o motor documental ao fluxo principal: captura própria assistida por detecção ao vivo, crop perspectivo mais robusto, revisão compacta, filtros automáticos, OCR automático limitado e exportação responsiva.

Contribuir

Consulte CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md e ROADMAP.md.

About

Scanora is an Android document scanning MVP with local OCR, export, and offline-first architecture.

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages