# MCSLMS - 多客户端智能图书馆管理系统 Multi-Client Smart Library Management System ## 项目概述 MCSLMS 是一个现代化的图书馆管理系统,支持四种客户端界面: - **CLI** - 命令行界面 - **GUI** - 图形用户界面 (JavaFX) - **Web** - 浏览器访问 (Spring Boot) - **Android** - 移动应用 ## 快速开始 ### 1. 启动应用 最简单的方式是使用统一启动器: ```bash # Windows start.bat # 或直接运行 scripts\run-launcher.bat ``` 启动器会显示菜单,让你选择要使用的客户端。 ### 2. 构建所有模块 ```bash scripts\build-all.bat ``` ### 3. 单独启动客户端(统一项目,无需切换分支) ```bash # CLI 客户端 gradlew :cli:run # GUI 客户端 gradlew :gui:run # Web 客户端 gradlew :backend:bootRun # Android 客户端 gradlew :android:assembleDebug adb install android/build/outputs/apk/debug/mcslms-debug.apk ``` ### 4. 四端丝滑切换 所有客户端在同一项目中,可以直接切换: - CLI中输入 `gui` 或 `web` 命令切换 - GUI菜单选择"切换到CLI"或"切换到Web" - Web首页点击其他客户端卡片查看启动方式 - Android菜单"切换平台"可跳转Web或查看CLI/GUI说明 ### 4. 默认账号 系统会在首次运行时自动创建一个默认管理员账号,方便登录和审核新用户: - 管理员邮箱: `admin@library.com` - 初始密码: `admin123` - 角色: `ADMIN` 建议在首次登录后及时修改管理员密码,并通过“用户管理/审核”功能为读者创建正式账号。 ## 项目结构 ``` MCSLMS/ ├── core/ # 核心业务逻辑模块 ├── cli/ # CLI 客户端 ├── gui/ # GUI 客户端 ├── backend/ # 后端服务(Web) ├── android/ # Android 客户端 ├── launcher/ # 统一启动器 ├── docs/ # 项目文档 │ ├── architecture/ # 架构设计 │ ├── guides/ # 使用指南 │ ├── development/ # 开发文档 │ ├── deployment/ # 部署文档 │ └── reports/ # 测试报告 ├── scripts/ # 构建和运行脚本 ├── data/ # 数据文件 ├── config/ # 配置文件 ├── .jenkins/ # Jenkins 配置 ├── start.bat # 主启动脚本 └── README.md # 本文件 ``` ## 功能特性 ### 基础功能 - ✅ 图书管理(增删改查) - ✅ 借阅管理 - ✅ 用户管理 - ✅ 借阅记录查询 ### 智能功能(开发中) - 🔄 AI 图书推荐 - 🔄 智能搜索 - 🔄 语音交互 - 🔄 图书摘要生成 ### 四端切换 - ✅ 统一启动器 - ✅ 客户端间切换 - ✅ 会话保持 ## 技术栈 - **语言**: Java 21, Kotlin - **构建工具**: Gradle 8.5 - **数据库**: SQLite (开发), PostgreSQL (生产) - **前端框架**: JavaFX, Spring Boot + Thymeleaf - **移动端**: Android SDK 34 (Android 14) - **CI/CD**: Jenkins, SonarQube - **版本控制**: Git, Gitea ## 开发指南 ### 环境要求 - JDK 21+ - Gradle 8.5+ - Android SDK (用于 Android 客户端) ### 构建命令 ```bash # 构建所有模块 ./gradlew build # 构建特定模块 ./gradlew :core:build ./gradlew :cli:build ./gradlew :gui:build ./gradlew :android:assembleDebug # 打包可执行 JAR(推荐使用 --no-daemon 避免端口占用) ./gradlew :cli:fatJar -x test --no-daemon ./gradlew :gui:fatJar -x test --no-daemon ./gradlew :launcher:fatJar -x test --no-daemon ``` ### 四端运行指南 #### CLI 命令行客户端 ```bash # 1. 构建 .\gradlew.bat :cli:fatJar -x test --no-daemon # 2. 运行(直接运行JAR,避免gradle run的调试端口问题) ``` #### GUI 图形界面客户端 ```bash # 1. 构建 .\gradlew.bat :gui:fatJar -x test --no-daemon # 2. 运行 java -jar gui/build/libs/mcslms-gui-v1.11.0.0-all.jar ``` #### Web 后端服务 ```bash # 1. 构建 .\gradlew.bat :backend:bootJar -x test --no-daemon # 2. 运行 java -jar backend/build/libs/mcslms-backend-v1.11.0.0.jar # 3. 访问 # 浏览器打开 http://localhost:8082 ``` #### Android 移动客户端 ```bash # 1. 构建 APK .\gradlew.bat :android:assembleDebug -x test --no-daemon # 2. APK 位置 # android/build/outputs/apk/debug/android-debug.apk # 3. 安装到设备 adb install android/build/outputs/apk/debug/android-debug.apk ``` ### 快速登录测试账号 四端应用均支持快速登录功能,内置三个测试账号: | 角色 | 邮箱 | 密码 | 权限 | |------|------|------|------| | 👨‍🏫 教师 | teacher@test.com | 123456 | 馆员权限(可审核用户) | | 👨‍🎓 学生 | student@test.com | 123456 | 读者权限 | | 👤 访客 | guest@test.com | 123456 | 读者权限 | 在登录界面点击对应的快速登录按钮即可一键登录。 ### 运行测试 ```bash # 运行所有测试 ./gradlew test # 运行特定模块测试 ./gradlew :core:test ./gradlew :cli:test ``` ## 文档 详细文档位于 `docs/` 目录,查看 [文档中心](docs/README.md) 获取完整索引。 **快速链接**: - [快速开始](docs/guides/quick-start.md) - 5分钟上手 - [系统架构](docs/architecture/overview.md) - 了解设计 - [开发指南](docs/development/setup.md) - 环境搭建 - [部署指南](docs/deployment/deployment-guide.md) - 四端部署 ## 架构设计 系统采用分层架构: ``` ┌─────────────────────────────────────────┐ │ Client Applications (四端) │ │ CLI │ GUI │ Web │ Android │ └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ Core Module (核心模块) │ │ - Business Logic │ │ - Domain Models │ │ - Data Access │ └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ Database (数据库) │ │ SQLite / PostgreSQL │ └─────────────────────────────────────────┘ ``` ## 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 联系方式 - 项目主页: [GitHub](https://github.com/yourusername/mcslms) - 问题反馈: [Issues](https://github.com/yourusername/mcslms/issues) ## 致谢 感谢所有为本项目做出贡献的开发者! --- **版本**: 1.20.0 **最后更新**: 2025-12-03