CajuScan é uma aplicação móvel para Android, desenvolvida em Flutter, que simplifica o registo de despesas em Portugal. A aplicação permite digitalizar o QR Code (ATCUD) presente nas faturas portuguesas, extrair automaticamente os dados da transação e enviá-los para a aplicação de gestão financeira Cashew.
💡 O que é o Cashew? O Cashew é uma aplicação de finanças pessoais
de código aberto, focada na privacidade, que permite gerir orçamentos, contas e despesas de forma local. O CajuScan funciona como um assistente especializado para utilizadores do Cashew em Portugal, automatizando a inserção manual de faturas.
O objetivo é poupar tempo e reduzir erros no preenchimento de transações do dia a dia.
Apresentação visual das principais funcionalidades da aplicação CajuScan.
- Leitura de código QR de faturas: Utiliza a câmara do telemóvel para digitalizar e processar instantaneamente os códigos QR (ATCUD) das faturas emitidas em Portugal.
- Importação de ficheiros: Permite ler o código QR diretamente de ficheiros PDF ou imagens da galeria, facilitando o registo de faturas digitais recebidas por email.
- Integração com Cashew: Envia os dados da fatura (valor, data, NIF do comerciante) diretamente para a aplicação Cashew, pré-preenchendo uma nova transação. Suporta a inclusão opcional de metadados fiscais adicionais nas notas.
- Motor de Predição de Contas Dinâmico: Algoritmo inteligente que analisa o histórico local para sugerir a conta de destino mais provável. Utiliza uma lógica de dupla camada: associa a conta mais frequente para aquele comerciante e recorre à conta mais utilizada globalmente como alternativa, ordenando o menu com base nos seus hábitos.
- Interface de confirmação moderna: O ecrã de revisão foi redesenhado para uma navegação consistente baseada em cartões interativos. O toque no comerciante abre um diálogo de edição rápida do nome, permite ajustar a data e hora da transação (com seletores regionais em formato 24h) e apresenta painéis inferiores (bottom sheets) integrados para seleção de categoria e conta.
- Gestão inteligente de comerciantes:
- Guarda automaticamente o NIF de cada comerciante.
- Permite associar um nome personalizado (ex: "Comerciante XPTO") e uma categoria/subcategoria padrão a cada NIF.
- Na leitura seguinte de uma fatura do mesmo comerciante, sugere automaticamente o nome e a categoria guardados.
- Barra de pesquisa dinâmica na listagem de comerciantes que permite filtrar instantaneamente por nome, NIF, categoria ou subcategoria.
- Gestão de categorias e contas:
- Áreas dedicadas nas definições para adicionar, editar ou eliminar categorias, subcategorias e contas de destino de forma isolada.
- Permite restaurar uma lista de categorias padrão a qualquer momento.
- Importa estruturas de categorias e contas de destino diretamente do Cashew através da funcionalidade de partilha do sistema (share intent), ou manualmente a partir de ficheiros estruturados em formato JSON/TXT.
- Flexibilidade no registo:
- Opção para registar a transação diretamente no Cashew (sem confirmação).
- Opção para abrir os dados no Cashew para revisão antes de guardar (requer confirmação).
- Possibilidade de apenas guardar o perfil de um novo comerciante a partir do código QR, sem ser necessário gerar uma transação.
- Backup e restauro: Funcionalidade para exportar e importar todos os dados da aplicação (perfis de comerciantes, categorias, contas e histórico de predição) através de um único ficheiro
.jsoncom nomeação cronológica automática (cajuscan-AAAA-MM-DD-HH-MM-SS.json), facilitando a migração entre dispositivos. - Interface intuitiva:
- Scanner de câmara com uma sobreposição clara para facilitar o alinhamento do QR Code.
- Design limpo e focado na simplicidade de uso.
- Privacidade e Segurança: Aplicação inteiramente de código aberto (FOSS) com processamento local e offline, sem telemetria ou servidores externos. Aplicação assinada digitalmente e preparada para compilações reprodutíveis (Reproducible Builds).
- Framework: Flutter
- Linguagem: Dart
- Leitura de código QR: flutter_zxing
- Processamento de PDF: native_pdf_renderer
- Armazenamento local: shared_preferences
- Interação com outras apps: url_launcher
- Seleção de ficheiros: file_picker
- Informação da aplicação: package_info_plus
- Recepção de intents: receive_sharing_intent
- Localização: flutter_localizations
Para compilar o projeto, precisa de ter o Flutter SDK instalado e configurado.
-
Clonar o repositório:
git clone https://github.com/marotoweb/cajuscan.git cd cajuscan -
Instalar as dependências:
flutter pub get
-
Executar em modo de depuração: Ligue um dispositivo Android ou inicie um emulador e execute:
flutter run
-
Compilar a versão de produção (Release APK ): Para gerar o ficheiro
.apkfinal, otimizado e pronto para ser instalado:flutter build apk --release
O ficheiro de instalação será gerado em
build/app/outputs/flutter-apk/app-release.apk. Nota: Para gerar uma build assinada idêntica à oficial, é necessário configurar as variáveis de ambiente da Keystore.
Este projeto é disponibilizado sob a licença MIT.
A aplicação CajuScan é fornecida "COMO ESTÁ", sem garantias de qualquer tipo. O autor não se responsabiliza por qualquer mau funcionamento, perda de dados ou erros de registo que possam surgir do uso desta aplicação. É da exclusiva responsabilidade do utilizador verificar a correção dos dados.










