An Android document management and search prototype application built with Flutter.
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.
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.
- Flutter SDK (3.0 or later recommended)
- Android SDK for building APK
- Supports Android API 21+ (minimum) to current
-
Ensure Flutter is installed and configured:
flutter doctor
-
Clone the repository and enter the directory:
git clone <repository-url> cd docsleuth
-
Install dependencies:
flutter pub get
-
For Android deployment, ensure proper Android setup:
flutter config --enable-android
flutter runflutter build apk --release --split-per-abiThe APK will be generated in build/app/outputs/flutter-apk/
- Launch the app
- Add documents using the file picker (supports PDF, EPUB, TXT, DOCX)
- Use the search bar to find text within documents
- Tap search results to navigate to locations in documents
- Use viewer controls for basic navigation
- 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
- 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
lib/providers/: State management for documents and searchlib/widgets/: UI components including document viewerlib/models/: Data structures for documents and search resultslib/database/: SQLite storage implementationlib/processing/: Document format parsers (experimental)
Limited unit tests exist. To run:
flutter testIntegration testing is not yet implemented.
This is an experimental project. Contributions are welcome but please consider:
- Test changes thoroughly with various document formats and sizes
- Document any known limitations or edge cases
- Keep changes focused on the current prototype scope
- Follow Flutter/Dart best practices
- Add comments for complex logic
- Keep functions reasonably sized
- Include device specifications and Android version
- Attach problematic document samples if possible
- Describe expected vs. actual behavior
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
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.
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.