maid
一個使用 Flutter 建構的 AI 驅動文件閱讀器。使用先進的大語言模型總結、強調並互動您的 PDF/文件
- 星標
- 17
- 分支
- 0
- 最近推送(UTC)
- 2026年3月23日
- 專案狀態
- 未封存
原始 README
以下為英文專案原文快照,最新內容請造訪 GitHub。
🛡️ MAID - Smart AI Document Reader
MAID (Mobile AI Document-assistant) is a next-generation document reader built with Flutter. It doesn't just display text; it understands it.
✨ Key Features
- 📄 PDF Support: Seamlessly read PDF files with smooth scrolling and zoom.
- 🤖 AI Chat: Ask questions about your PDFs and get instant AI-powered answers.
- 💡 Smart Search: Find text within your documents quickly.
- 📝 Smart Notes: Create notes linked to specific PDF pages with AI summarization.
- 🌍 Translator: Translate selected text into multiple languages.
- 🎨 Theme Support: Toggle between light and dark modes.
🚀 Tech Stack
- Framework: Flutter 3.0+
- State Management: flutter_bloc
- Dependency Injection: get_it
- AI Integration: Configurable (OpenAI API / Google Gemini API)
- Local Storage: Hive & SharedPreferences
- PDF Engine: syncfusion_flutter_pdfviewer
📋 Features Implementation Status
✅ Completed
- [x] Issue #1 - Setup Clean Architecture Base
- [x] Issue #2 - Global Theme & Constants
- [x] Issue #3 - Implement PDF Viewer
- [x] Issue #4 - PDF Page Navigation
- [x] Issue #5 - Search Inside PDF
- [x] Issue #6 - AI Service Integration (Interface)
- [x] Issue #7 - Ask Questions About PDF (UI)
- [x] Issue #8 - Create Smart Notes
- [x] Issue #9 - AI Summarized Notes (UI)
- [x] Issue #10 - Translate Selected Text (UI)
- [x] Issue #11 - Unit Tests for Core Features
🔄 Requires Integration
- [ ] Connect real AI service (OpenAI/Gemini API)
- [ ] Implement persistent storage for notes
- [ ] Add more comprehensive tests
📝 For detailed issue descriptions and tracking, see GITHUB_ISSUES.md
🚀 To create these as GitHub issues, run./scripts/create_issues.sh
🛠️ Installation & Setup
Prerequisites
- Flutter SDK 3.0 or higher
- Dart 3.0 or higher
- Android Studio / VS Code with Flutter extensions
- An AI API key (OpenAI or Google Gemini)
Steps
-
Clone the repo:
git clone https://github.com/soghayarmahmoud/maid-ai-reader.git cd maid-ai-reader -
Install dependencies:
flutter pub get -
Configure AI Service:
- Open
lib/features/ai_search/data/mock_ai_service.dart - Replace
MockAiServicewith your actual AI service implementation - Add your API key to environment variables or secure storage
- Open
-
Run the app:
flutter run
📱 Usage
- Open a PDF: Tap the "Open PDF" button on the home screen
- Navigate Pages: Use the toolbar at the bottom to navigate between pages
- Search: Tap the search icon in the app bar to search within the PDF
- AI Chat: Tap the chat icon to ask questions about the document
- Take Notes: Tap the note icon to create smart notes linked to the current page
- Translate: Select text and tap the translate icon to translate it
🏗️ Project Structure
lib/
├── core/ # Core functionality
│ ├── constants/ # App colors, strings, theme
│ ├── errors/ # Error handling
│ ├── utils/ # Utility functions
│ └── widgets/ # Reusable widgets
├── di/ # Dependency injection
├── features/ # Feature modules
│ ├── ai_search/ # AI chat functionality
│ ├── library/ # Home screen/library
│ ├── pdf_reader/ # PDF viewing
│ ├── smart_notes/ # Note-taking
│ └── translator/ # Translation
├── app.dart # Main app widget
└── main.dart # Entry point
🧪 Testing
Run tests with:
flutter test
🔐 Security & Privacy
- All data is stored locally on the device
- AI queries are sent to configured AI service
- No data is collected or shared without user consent
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Syncfusion for the excellent PDF viewer
- Flutter team for the amazing framework
- OpenAI/Google for AI capabilities
📞 Contact
Mahmoud Soghayar - @soghayarmahmoud
Project Link: https://github.com/soghayarmahmoud/maid-ai-reader
分類
使用的依賴
依賴清單 4 項
如何選擇適合專案的儲存庫?
先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。
- 透過儲存庫名稱、作者或描述搜尋,再依技術分類縮小範圍。
- 綜合星標、分支與最近推送比較專案;星標反映社群關注,不保證品質。
- 使用前在 GitHub 確認 README、授權條款與 Issues。
來源與維護
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗
