You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
1 month ago | |
|---|---|---|
| .. | ||
| src/main | 1 month ago | |
| AI_FEATURES.md | 1 month ago | |
| COMPLETION_SUMMARY.md | 2 months ago | |
| DEMO_GUIDE.md | 2 months ago | |
| FEATURE_ENHANCEMENTS.md | 2 months ago | |
| QUICK_TEST_GUIDE.md | 2 months ago | |
| README.md | 2 months ago | |
| README_ENHANCED.md | 2 months ago | |
| SCAN_BORROW_GUIDE.md | 1 month ago | |
| build.gradle | 1 month ago | |
| proguard-rules.pro | 2 months ago | |
README.md
Android 智能图书管理系统
概述
这是智能图书管理系统(SLMS)的Android客户端实现,提供完整的图书管理功能和AI智能助手。
主要功能
📚 核心功能
- 图书管理:浏览、搜索图书
- 借阅管理:借阅、归还、续借图书
- 用户管理:用户信息管理
- 数据持久化:本地数据存储和同步
🤖 AI智能功能
- AI智能助手:自然语言对话,解答使用问题
- AI智能搜索:智能理解搜索意图,提供精准建议
- AI个性化推荐:基于用户偏好推荐图书
📊 系统功能
- UML图查看:查看系统架构和流程图
- 离线运行:所有AI功能完全离线,无需网络
- Mock数据:自动生成演示数据
架构设计
模块结构
android/
├── src/main/java/com/smartlibrary/android/
│ ├── ai/ # AI服务
│ │ └── SimpleAIService.java
│ ├── data/ # 数据管理
│ │ └── DataManager.java
│ ├── factory/ # 对象工厂
│ │ └── LibraryObjectFactory.java
│ ├── mock/ # Mock数据生成
│ │ └── MockDataGenerator.java
│ ├── model/ # 数据模型
│ │ ├── Book.java
│ │ ├── Loan.java
│ │ └── User.java
│ ├── network/ # 网络服务
│ │ └── ApiService.java
│ ├── ui/ # UI组件
│ │ ├── AIAssistantFragment.java
│ │ ├── AISearchFragment.java
│ │ ├── AIRecommendFragment.java
│ │ └── UMLViewerActivity.java
│ └── MainActivity.java # 主Activity
设计模式
-
单例模式
SimpleAIService:AI服务单例DataManager:数据管理器单例
-
工厂模式
LibraryObjectFactory:统一对象创建
-
观察者模式
DataManager:数据变化通知
快速开始
环境要求
- Android Studio 4.0+
- Android SDK 21+
- Gradle 7.0+
构建步骤
- 克隆项目
git clone <repository-url>
cd smart-library-management-system
- 打开Android Studio
File -> Open -> 选择项目根目录
- 构建项目
./gradlew :android:build
- 运行应用
./gradlew :android:installDebug
或在Android Studio中点击运行按钮。
使用说明
首次启动
应用首次启动时会自动:
- 初始化DataManager
- 生成Mock数据(50本图书、20个用户、100条借阅记录)
- 保存数据到本地存储
AI功能使用
AI智能助手
- 点击主界面的"AI智能助手"按钮
- 在输入框中输入问题
- 点击"发送"按钮
- AI会分析意图并提供相关回答
支持的问题类型:
- 借阅相关:"如何借书?"
- 归还相关:"怎么还书?"
- 搜索相关:"如何搜索图书?"
- 推荐相关:"有什么好书推荐?"
- 帮助相关:"帮助"
AI智能搜索
- 点击"AI智能搜索"按钮
- 输入搜索关键词(支持自然语言)
- 点击"智能搜索"
- 查看搜索建议和结果
AI个性化推荐
- 点击"AI个性化推荐"按钮
- 自动加载推荐列表
- 点击"刷新推荐"获取新推荐
UML图查看
- 点击"查看系统UML图"按钮
- 选择要查看的UML图类型
- 查看图表信息
- 如有网络,可点击"打开Web端查看"
核心组件说明
SimpleAIService
AI服务提供者,负责处理所有AI相关功能。
主要方法:
chat(String message):AI对话smartSearch(String query):智能搜索getRecommendation(String userId):个性化推荐
特点:
- 完全离线运行
- 基于规则的意图识别
- 上下文相关的响应生成
DataManager
数据管理器,负责所有数据的CRUD操作和持久化。
主要方法:
getBooks():获取所有图书addBook(Book book):添加图书initializeMockData():初始化Mock数据hasMockData():检查是否有数据
特点:
- 单例模式
- 观察者模式支持
- SharedPreferences持久化
- 自动Mock数据生成
MockDataGenerator
Mock数据生成器,生成演示数据。
主要方法:
generateBooks(int count):生成图书generateUsers(int count):生成用户generateLoans(int count, List<Book>, List<User>):生成借阅记录
特点:
- 多样化的数据模板
- 真实的数据格式
- 可配置的生成数量
LibraryObjectFactory
对象工厂,统一创建各种对象。
主要方法:
createBook(...):创建图书对象createUser(...):创建用户对象createLoan(...):创建借阅记录对象
特点:
- 参数验证
- 自动生成ID
- 设置默认值
数据模型
Book(图书)
id:图书IDtitle:标题author:作者isbn:ISBN号category:分类status:状态(available/borrowed/reserved)
User(用户)
id:用户IDname:姓名email:邮箱phone:电话
Loan(借阅记录)
id:借阅IDbookId:图书IDuserId:用户IDloanDate:借阅日期dueDate:归还日期returnDate:实际归还日期status:状态(active/returned/overdue)
离线功能
所有AI功能都是完全离线的:
- ✅ 无需网络连接
- ✅ 无需后端服务
- ✅ 数据本地存储
- ✅ 即时响应
这使得应用可以在任何环境下运行,非常适合演示和测试。
错误处理
应用实现了全面的错误处理:
- 数据层:捕获存储异常,提供降级方案
- AI服务:验证输入,提供友好错误消息
- UI层:处理生命周期问题,防止崩溃
- 网络层:检查连接状态,优雅降级
性能优化
- 懒加载:单例模式延迟初始化
- 异步处理:使用Handler避免阻塞UI
- 数据缓存:内存缓存减少IO操作
- 限制数据量:Mock数据数量适中
测试
单元测试
运行单元测试:
./gradlew :android:test
UI测试
运行UI测试:
./gradlew :android:connectedAndroidTest
已知限制
- 图片展示:UML图暂不支持直接在移动端展示
- 网络同步:需要后端服务支持(可选)
- 真实AI:当前使用规则引擎,未集成真实AI模型
未来增强
- 真实AI集成:接入GPT等AI服务
- 图片查看:支持UML图直接展示
- 数据同步:完整的后端同步功能
- 推送通知:到期提醒等
- 语音输入:支持语音与AI对话
贡献指南
欢迎贡献代码!请遵循以下步骤:
- Fork项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建Pull Request
许可证
[项目许可证信息]
联系方式
如有问题或建议,请联系:
- 项目主页:[项目URL]
- 问题追踪:[Issues URL]
注意:本应用使用Mock数据进行演示,所有AI功能均为模拟实现。