# 课程笔记共享

#### 介绍
这是软件工程课程设计项目，提供课程笔记的上传、OCR文字识别、自动分类与智能推荐功能。推荐遵循“同专业同年级 > 同专业 > 同年级 > 基础学科（如高数）”的原则；高等数学仅在无其他可推荐内容时作为兜底出现。

#### 软件架构
- 客户端：Android（Java、AppCompat、Material、Gradle）
- 分层结构：
  - 界面层（UI）：登录注册、首页推荐、搜索、笔记详情、个人中心
  - 服务层（Service）：OCR识别、分类推荐、用户与积分
  - 数据访问层（Repository）：SQLite数据读写与查询
- 数据库：SQLite，核心数据表包含 `T_User`、`T_Major`、`T_Subject`、`T_Chapter`、`T_Note`、`T_Comment`、`T_Major_Subject` 等，支持专业-学科-年级的关联与笔记基础操作。

#### 安装教程
1. 安装 Android Studio（含 Android SDK）与 JDK 11+。
2. 克隆项目源代码：`git clone <your-repo-url>` 并打开项目根目录。
3. 构建与运行：
   - 命令行执行：`./gradlew.bat :app:assembleDebug`
   - 或在 Android Studio 中直接点击 Run 运行到模拟器/真机。

#### 使用说明
1. 注册或登录后，在“个人中心”完善专业与年级信息，以便获得更精准的推荐。
2. 上传笔记（支持图片/PDF）：系统进行OCR识别与自动分类，若不准确可在界面中手动调整章节。
3. 首页“推荐”区域点击“刷新推荐”，按“同专业同年级 > 同专业 > 同年级”优先显示；无非基础内容时展示“高数”作为兜底。
4. 在笔记详情页进行浏览、点赞、评论与下载；积分机制与下载规则可在后续版本中完善。