Skip to content

sohailmahmud/mindvault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MindVault

Dart Flutter ObjectBox TensorFlow Lite Build Status Coverage Status

MindVault is a powerful on-device AI search application built with Flutter that helps you organize, search, and manage your documents using semantic search capabilities. All processing happens locally on your device, ensuring privacy and speed.

Features

Core Functionality

  • πŸ“„ Document Management: Create, read, update, and delete documents with rich text content
  • πŸ” AI-Powered Search: Semantic search using advanced text similarity algorithms
  • πŸ“± Modern UI: Clean Material Design 3 interface with dark/light theme support
  • 🏠 On-Device Processing: All AI operations run locally for privacy and offline functionality
  • πŸ’Ύ Local Database: Fast ObjectBox NoSQL database for document storage

Advanced Features

  • 🎯 Smart Search: Fuzzy matching and Levenshtein distance algorithms for intelligent text matching
  • πŸ“‹ Bulk Operations: Select and delete multiple documents at once
  • 🏷️ Categories & Tags: Organize documents with categories and auto-generated tags
  • πŸ“Š Document Analytics: Track creation dates and manage document metadata
  • πŸ”„ Real-time Updates: Reactive UI updates using BLoC state management

Architecture

MindVault follows Clean Architecture principles with three distinct layers:

lib/
β”œβ”€β”€ core/                          # Shared components
β”‚   β”œβ”€β”€ di/                        # Dependency injection
β”‚   β”œβ”€β”€ error/                     # Error handling
β”‚   β”œβ”€β”€ usecases/                  # Base use case classes
β”‚   └── utils/                     # Utilities and helpers
β”œβ”€β”€ features/
β”‚   └── search/                    # Main feature module
β”‚       β”œβ”€β”€ domain/                # Business logic layer
β”‚       β”‚   β”œβ”€β”€ entities/          # Core business objects
β”‚       β”‚   β”œβ”€β”€ repositories/      # Repository contracts
β”‚       β”‚   └── usecases/          # Business use cases
β”‚       β”œβ”€β”€ data/                  # Data access layer
β”‚       β”‚   β”œβ”€β”€ datasources/       # Data source implementations
β”‚       β”‚   β”œβ”€β”€ models/            # Data models
β”‚       β”‚   └── repositories/      # Repository implementations
β”‚       └── presentation/          # UI layer
β”‚           β”œβ”€β”€ bloc/              # State management
β”‚           β”œβ”€β”€ pages/             # App screens
β”‚           └── widgets/           # Reusable UI components
└── main.dart                      # App entry point

Getting Started

Prerequisites

  • Flutter 3.35.1 or higher
  • Dart 3.9.0 or higher
  • Android Studio / VS Code
  • Android SDK (for Android builds)
  • Xcode (for iOS builds on macOS)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd mindvault
  2. Install dependencies

    flutter pub get
  3. Generate ObjectBox models

    flutter packages pub run build_runner build
  4. Run the app

    flutter run

Dependencies

Core Dependencies

  • flutter_bloc (8.1.6): State management using the BLoC pattern
  • objectbox (2.5.1): High-performance NoSQL database
  • get_it (7.7.0): Dependency injection service locator
  • dartz (0.10.1): Functional programming utilities
  • equatable (2.0.5): Value equality for objects

UI & Utilities

  • cupertino_icons (1.0.2): iOS-style icons
  • path_provider (2.1.5): File system path access
  • injectable (2.5.1): Code generation for dependency injection

Development Dependencies

  • flutter_lints (2.0.3): Dart/Flutter linting rules
  • build_runner (2.4.13): Code generation runner
  • objectbox_generator (2.5.1): ObjectBox model generation

Usage Guide

Adding Documents

  1. Tap the "+" floating action button
  2. Enter a title for your document
  3. Add content in the text area
  4. Optionally select a category
  5. Tap "Save Document"

Searching Documents

  1. Use the search bar at the top of the main screen
  2. Type your search query - the app will find documents using:
    • Exact matches in titles and content
    • Partial matches for similar words
    • Fuzzy matching for misspellings
    • Semantic similarity for related concepts

Editing Documents

  1. Tap on any document card
  2. Modify the title, content, or category
  3. Tap "Update Document" to save changes

Bulk Operations

  1. Long-press on any document to enter selection mode
  2. Tap additional documents to select them
  3. Use the delete button in the app bar to remove selected documents
  4. Tap the "X" to exit selection mode

Categories

Documents can be organized into categories:

  • Work: Professional documents and notes
  • Personal: Personal thoughts and ideas
  • Study: Educational content and research
  • Project: Project-related documentation

AI Features

Semantic Search Algorithm

MindVault uses a sophisticated multi-layered search approach:

  1. Text Preprocessing: Normalizes input and splits into words
  2. Word Matching: Direct and partial word comparisons
  3. Fuzzy Matching: Levenshtein distance for typo tolerance
  4. Similarity Scoring: Weighted relevance scoring
  5. Result Ranking: Orders results by relevance score

Smart Features (AI-Powered)

  • Real TensorFlow Lite Integration: On-device AI processing for privacy and speed
  • Semantic Embeddings: 384-dimensional text embeddings for accurate similarity
  • Advanced Tokenization: Vocabulary-based text preprocessing with 500+ words
  • Cosine Similarity: Mathematical precision in document relevance scoring
  • Auto-categorization: Automatic category suggestions based on content analysis
  • Tag extraction: AI-powered tag generation from document content
  • Content summarization: Generate brief summaries of long documents
  • Similar document discovery: Find related documents using embedding similarity

UI/UX Features

Material Design 3

  • Dynamic theming with system color extraction
  • Adaptive layouts for different screen sizes
  • Smooth animations and transitions
  • Accessibility support with semantic labels

Dark Mode Support

  • Automatic theme switching based on system preference
  • Optimized colors for both light and dark themes
  • Consistent branding across themes

Privacy & Security

  • 100% On-Device Processing: No data leaves your device
  • Local Database: All documents stored locally using ObjectBox
  • No Network Requests: App works completely offline
  • No Analytics: No tracking or data collection
  • Open Source: Transparent and auditable codebase

Testing

Run the test suite:

flutter test

Run integration tests:

flutter drive --target=test_driver/app.dart

Platform Support

  • βœ… Android (API 21+)
  • βœ… iOS (iOS 11+)
  • 🚧 Web (Coming soon)
  • 🚧 Desktop (Windows, macOS, Linux - Coming soon)

Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Flutter Team for the amazing cross-platform framework
  • ObjectBox for the high-performance local database
  • BLoC Library for elegant state management
  • Material Design for the beautiful design system

Roadmap

Version 2.0

  • Real TensorFlow Lite model integration βœ…
  • AI-powered semantic search with embeddings βœ…
  • Interactive AI features demonstration βœ…
  • On-device processing for privacy βœ…
  • Voice-to-text document creation
  • Document sharing and export
  • Cloud sync (optional)
  • Advanced text formatting

Version 3.0

  • Multi-language support
  • Plugin system for extensibility
  • Advanced AI features (summarization, Q&A)
  • Collaborative editing
  • Desktop applications

Support

If you encounter any issues or have questions:

  • Open an issue on GitHub
  • Check the FAQ in our wiki

Built with ❀️ using Flutter & Clean Architecture by Sohail Mahmud

MindVault - Your Personal Knowledge Vault

About

AI-powered document organizer with semantic search

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages