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.
 
 
 
SLMS Development Team d34199ea06
fix: 修复SonarQube JaCoCo覆盖率行号不匹配错误 - 在SonarQube扫描前清理旧的JaCoCo XML报告 - 移除命令行中的jacoco路径参数避免导入过期数据
1 month ago
.sonarlint 修复IDE问题:创建缺失目录、InterruptedException处理、静态方法调用 2 months ago
android 完善开发文档 1 month ago
backend 开发文档 1 month ago
cli refactor: 四端切换改用JAR包直接运行,适配生产环境 1 month ago
core merge: 合并四端功能到统一分支 1 month ago
docs 完善开发文档 1 month ago
gradle/wrapper feat(app): Android子系统 - 只包含Android和Core模块 2 months ago
gui fix(gui): 添加Launcher类解决JavaFX模块化JAR启动问题 1 month ago
launcher 启动器和切换肥jar 1 month ago
scripts feat: 增强构建配置和GUI功能 2 months ago
.gitignore 清理jpackage临时目录,添加.gitignore规则 2 months ago
Jenkinsfile fix: 修复SonarQube JaCoCo覆盖率行号不匹配错误 - 在SonarQube扫描前清理旧的JaCoCo XML报告 - 移除命令行中的jacoco路径参数避免导入过期数据 1 month ago
README.md docs: 更新README,说明统一项目四端切换方式 1 month ago
build-dist.bat 启动器和切换肥jar 1 month ago
build.gradle feat(v1.2.0): 完善图书管理功能,四端一致 2 months ago
datasource.properties fix: 修复Android构建错误,APK构建成功 1 month ago
gradle.properties feat(app): Android子系统 - 只包含Android和Core模块 2 months ago
gradlew.bat Android端完成:修复重复类问题,切换Web功能,构建成功 2 months ago
launcher.bat 启动器和切换肥jar 1 month ago
local.properties 修复 local.properties 格式:去掉多余引号 2 months ago
settings.gradle 实现启动器 1 month ago
sonar-project.properties 启动器和切换肥jar 1 month ago

README.md

MCSLMS - 多客户端智能图书馆管理系统

Multi-Client Smart Library Management System

项目概述

MCSLMS 是一个现代化的图书馆管理系统,支持四种客户端界面:

  • CLI - 命令行界面
  • GUI - 图形用户界面 (JavaFX)
  • Web - 浏览器访问 (Spring Boot)
  • Android - 移动应用

快速开始

1. 启动应用

最简单的方式是使用统一启动器:

# Windows
start.bat

# 或直接运行
scripts\run-launcher.bat

启动器会显示菜单,让你选择要使用的客户端。

2. 构建所有模块

scripts\build-all.bat

3. 单独启动客户端(统一项目,无需切换分支)

# 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中输入 guiweb 命令切换
  • 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 客户端)

构建命令

# 构建所有模块
./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 命令行客户端

# 1. 构建
.\gradlew.bat :cli:fatJar -x test --no-daemon

# 2. 运行直接运行JAR避免gradle run的调试端口问题

GUI 图形界面客户端

# 1. 构建
.\gradlew.bat :gui:fatJar -x test --no-daemon

# 2. 运行
java -jar gui/build/libs/mcslms-gui-v1.11.0.0-all.jar

Web 后端服务

# 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 移动客户端

# 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 读者权限

在登录界面点击对应的快速登录按钮即可一键登录。

运行测试

# 运行所有测试
./gradlew test

# 运行特定模块测试
./gradlew :core:test
./gradlew :cli:test

文档

详细文档位于 docs/ 目录,查看 文档中心 获取完整索引。

快速链接:

架构设计

系统采用分层架构:

┌─────────────────────────────────────────┐
│     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 文件

联系方式

致谢

感谢所有为本项目做出贡献的开发者!


版本: 1.20.0
最后更新: 2025-12-03