# bookmate **Repository Path**: yaboCode/bookmate ## Basic Information - **Project Name**: bookmate - **Description**: 一款社交阅读APP,集成社交,AI等功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-23 - **Last Updated**: 2026-06-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BookMate — 社交阅读平台 基于 Spring Boot + Android Jetpack Compose 的社交化阅读平台,支持 AI 智能对话、书籍管理、社区互动、阅读成就等功能。 ## 技术栈 ### 后端 - **框架**: Spring Boot 3.2.5 - **语言**: Java 21 - **构建**: Gradle - **数据库**: MySQL + Redis - **安全**: Spring Security + JWT 认证 - **实时通信**: WebSocket (通知推送、共读状态同步) - **AI**: 智谱 AI GLM-4-Flash (SSE 流式对话) - **推送**: Firebase Cloud Messaging (FCM) - **存储**: 阿里云 OSS ### Android 客户端 - **语言**: Kotlin - **UI**: Jetpack Compose + Material3 - **最低支持**: Android 8.0 (API 26) - **网络**: Retrofit + OkHttp (SSE 流式响应) - **图片**: Coil - **动画**: Lottie - **推送**: Firebase Cloud Messaging ## 功能特性 ### 核心功能 | 模块 | 功能 | |------|------| | 用户系统 | 注册/登录、JWT 认证、个人资料编辑、暗色模式 | | 书籍管理 | 搜索/浏览书籍、书架管理、阅读历史、书签笔记 | | 阅读器 | 手势翻页动画、字体缩放、阅读进度追踪 | | AI 智能 | 书籍摘要/书评生成、AI 阅读助手对话、个性化推荐 | | 社区 | 动态发布、评论互动、关注系统、读书小组、共读匹配 | | 成就系统 | 阅读成就徽章、每日打卡、阅读挑战、排行榜 | | 书籍 PK | 两书对决投票、热门榜单 | | 数据统计 | 阅读时长/页数统计、阅读热力图、阅读报告分享 | ### 后端 API 模块 - `AuthController` — 用户注册登录、JWT 令牌管理 - `BookController` — 书籍 CRUD、分类浏览 - `BookshelfController` — 个人书架管理 - `BookmarkController` — 书签与笔记 - `ReviewController` — 书评发布与管理 - `PostController` — 社区动态 - `CommentController` — 评论系统 - `FollowController` — 关注/粉丝 - `BookGroupController` — 读书小组 - `BuddyReadController` — 共读匹配与进度同步 - `AiController` — AI 对话/摘要/书评/阅读分析 - `RecommendationController` — 个性化推荐 - `AchievementController` — 成就管理 - `CheckinController` — 每日打卡 - `ReadingChallengeController` — 阅读挑战 - `ReadingGoalController` — 阅读目标 - `ReadingStatsController` — 阅读统计 - `BookBattleController` — 书籍 PK - `LeaderboardController` — 排行榜 - `SearchController` — 全文搜索 - `NotificationController` — 通知管理 - `MessageController` — 私信 - `AdminController` — 后台管理 ## 项目结构 ``` SocialReading/ ├── backend/ # Spring Boot 后端 │ └── src/main/java/com/bookmate/backend/ │ ├── controller/ # REST API 控制器 (26 个) │ ├── entity/ # JPA 实体 (32 个) │ ├── dto/ # 数据传输对象 (36 个) │ ├── repository/ # 数据访问层 (32 个) │ ├── service/ # 业务逻辑层 │ ├── config/ # Spring 配置 (Security/CORS/WebSocket) │ ├── websocket/ # WebSocket 处理器 │ ├── initializer/ # 数据初始化 │ └── exception/ # 全局异常处理 ├── android/ # Android 客户端 │ └── app/src/main/java/com/bookmate/app/ │ ├── data/ │ │ ├── local/ # 本地存储 (SharedPreferences/Room) │ │ ├── model/ # 数据模型 │ │ ├── remote/ # 网络层 (Retrofit/WebSocket/FCM) │ │ └── repo/ # 数据仓库 │ └── ui/ │ ├── screens/ # 页面组件 │ ├── components/ # 通用组件 │ └── viewmodel/ # ViewModel └── README.md ``` ## 快速开始 ### 环境要求 - JDK 21 - MySQL 8.0+ - Redis (可选) - Android Studio Hedgehog+ (客户端) - Android SDK 34 ### 后端启动 1. 配置数据库连接,复制 `application.example.yml` 为 `application.yml` 并填入配置: ```bash cd backend cp src/main/resources/application.example.yml src/main/resources/application.yml ``` 2. 编辑 `application.yml`,配置 MySQL 连接、JWT 密钥、智谱 AI API Key 等 3. 启动应用: ```bash ./gradlew bootRun ``` 默认运行在 `http://localhost:8080` ### Android 客户端 1. 用 Android Studio 打开 `android/` 目录 2. 在 [ServerConfig.kt](android/app/src/main/java/com/bookmate/app/data/remote/ServerConfig.kt) 中配置后端地址: ```kotlin var BASE_URL = "http://your-server-ip:8080/" ``` 3. 放置 `google-services.json` 到 `android/app/` 目录 (Firebase 项目配置文件) 4. 编译运行: ```bash ./gradlew assembleDebug ``` ## 许可证 本项目仅用于学习与毕业设计用途。