Skip to content

Android document and ebook ingester, indexer, searcher, viewer, excerpter and sharer prototype (AGPL licensed). Very raw, barely working but somewhat useful already. Created almost entirely with the help of grok code fast trial.

Notifications You must be signed in to change notification settings

demosthenez/docsleuth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DocSleuth

An Android document management and search prototype application built with Flutter.

About

DocSleuth is an experimental document viewer and search tool designed to handle various document formats (PDF, EPUB, TXT, DOCX). It provides basic search functionality, text extraction, and reading capabilities. This is a prototype implementation - many features are incomplete and the app has not been thoroughly tested for production use. It is almost ENTIRELY created with the help of grok code fast (trial, while it lasts), including the documentation. Feel free to try to improve it with contributions. I don't see any other open source android apps that allow one to ingest and index epubs and pdfs locally, for local full text search of the entire collection, with snippeted results and excerpt save and share features.

Current State

This project is in early development/prototype stage. It demonstrates basic document processing and search capabilities but has significant limitations:

  • Search functionality works but may be slow with large documents
  • Navigation and positioning algorithms are experimental and imprecise
  • Only basic text extraction is implemented for each format
  • No advanced features like OCR, bookmarking, or cloud sync
  • Performance issues likely exist with documents over certain sizes
  • Error handling is minimal

There don't appear to be many similar Android apps in the open source space that provide comprehensive document search across multiple formats, but numerous proprietary solutions exist.

Requirements

  • Flutter SDK (3.0 or later recommended)
  • Android SDK for building APK
  • Supports Android API 21+ (minimum) to current

Setup

  1. Ensure Flutter is installed and configured:

    flutter doctor
  2. Clone the repository and enter the directory:

    git clone <repository-url>
    cd docsleuth
  3. Install dependencies:

    flutter pub get
  4. For Android deployment, ensure proper Android setup:

    flutter config --enable-android

Building

Debug Build

flutter run

Release APK

flutter build apk --release --split-per-abi

The APK will be generated in build/app/outputs/flutter-apk/

Usage

  1. Launch the app
  2. Add documents using the file picker (supports PDF, EPUB, TXT, DOCX)
  3. Use the search bar to find text within documents
  4. Tap search results to navigate to locations in documents
  5. Use viewer controls for basic navigation

Current Features

  • Document Import: Basic file picker for local documents
  • Text Search: Full-text search with configurable snippet sizes
  • Document Viewer: Simple text display with basic navigation
  • Settings: Limited search configuration options

Known Issues

  • Occasional crashes with certain document formats
  • Slow performance with large files
  • Inconsistent text positioning during navigation
  • Threading issues which may cause UI freezing
  • Database operations may fail under low memory conditions

Development

Code Structure

  • lib/providers/: State management for documents and search
  • lib/widgets/: UI components including document viewer
  • lib/models/: Data structures for documents and search results
  • lib/database/: SQLite storage implementation
  • lib/processing/: Document format parsers (experimental)

Testing

Limited unit tests exist. To run:

flutter test

Integration testing is not yet implemented.

Contributing

This is an experimental project. Contributions are welcome but please consider:

Before Contributing

  • Test changes thoroughly with various document formats and sizes
  • Document any known limitations or edge cases
  • Keep changes focused on the current prototype scope

Code Style

  • Follow Flutter/Dart best practices
  • Add comments for complex logic
  • Keep functions reasonably sized

Reporting Issues

  • Include device specifications and Android version
  • Attach problematic document samples if possible
  • Describe expected vs. actual behavior

License

DocSleuth is released under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for details.

This license means:

  • You can use, modify, and distribute the code
  • Any modifications must be shared under the same license
  • Network use requires source code availability

Disclaimer

This software is provided "as is" without warranty of any kind. It is an experimental prototype with limited development time. Use at your own risk. The developers assume no responsibility for data loss, system instability, or any other issues arising from use of this software.

Key risks:

  • Potential data corruption with certain document formats
  • Unpredictable behavior with large document collections
  • Security vulnerabilities not yet audited
  • Performance degradation on older devices

Always backup important documents before testing, and do not use this software for critical document management needs.

Future Development

If development continues, potential improvements include:

  • Better text extraction and rendering
  • Improved search algorithms and performance
  • Additional document format support
  • Enhanced navigation and user interface
  • Cloud synchronization capabilities

However, these are speculative and not guaranteed to be implemented.

About

Android document and ebook ingester, indexer, searcher, viewer, excerpter and sharer prototype (AGPL licensed). Very raw, barely working but somewhat useful already. Created almost entirely with the help of grok code fast trial.

Resources

Stars

Watchers

Forks

Packages

No packages published