SmileXLearn 是一个标准日本语学习站点,采用前后端分离架构,学习站点与管理后台由同一 Vue 单应用承载(/ 与 /admin 路由区分,登录态统一)。项目内置 80 课《标准日本语》课程内容,覆盖课文学习、生词库、记忆单词、语法讲解、全文搜索与学习进度跟踪等完整能力,配合完整管理后台,是一款开箱即用的日语学习与内容管理平台。

后端基于 .NET 10 构建,融合完整 RBAC 权限体系与课程内容模块,集成 Lucene.NET 分词全文索引与 JWT 认证;前端基于 Vue 3 Composition API + TypeScript + Element Plus,配合日语朗读与卡片记忆,提供流畅的课文阅读与单词背诵体验。
1. 课文学习
内置 80 课《标准日本语》课程,每课按会话、单词、语法、练习清单模块化组织,目录导航自动定位,支持日语朗读与学习进度记录。


2. 生词库
全站生词库集中管理,展示单词、假名、词性、释义与例句,支持按假名 / 释义快速检索,配合 Lucene.NET 分词索引实现秒级响应。

3. 记忆单词
基于卡片记忆的单词背诵模式,支持日语自动朗读(Web Speech API)、翻卡自测与掌握程度标记,让单词记忆更高效。

4. 全文搜索
基于 Lucene.NET 分词索引的全站检索,按「日文 + 假名」去重合并单词构建索引,覆盖课文、生词、语法;索引缺失时自动从数据库构建(懒初始化),管理端支持一键全量重建与定时任务同步(LuceneVocabIndexRebuildJob)。
5. 学习进度
登录用户学习进度跨设备同步(lesson_progress 表),课程列表实时展示学习状态与进度;未登录回退 localStorage,登录后自动切换云端存储。
6. 管理后台
同一 Vue 应用内基于路由区分的管理后台(/admin),提供课程管理、生词管理、语法管理(增删改查、软删除、Lucene 索引重建),并内置完整 RBAC 权限体系(菜单 / 按钮 / 角色 / 接口权限动态绑定)与系统监控能力。

7. 个人中心
支持个人信息编辑、修改密码、头像上传;学习站点登录弹窗与管理后台登录共用同一用户体系与 Token,任意一处登录后两处均处于登录态。

8. 移动端适配
学习站点响应式布局,移动端单列卡片流 + 抽屉导航,随时随地碎片化学习。


后端分层架构
Web(API 层) └─ Controllers(Lesson / Vocab / Progress / AdminCourse / Cache)、中间件、Swagger Application(应用层) └─ LessonService / VocabService / ProgressService / AdminCourseService / LuceneVocabIndexService Infrastructure(基础设施层) └─ 仓储实现、JWT/BCrypt 安全、日志落库、文件存储、Lucene 索引 Domain(领域层) └─ 课程实体(Lesson / Vocab / Grammar / CheckListItem / LessonProgress)、仓储接口 Common(公共层) └─ 统一响应、业务异常、工具类、配置选项
技术选型一览
| 层次 | 技术 | 说明 |
|---|---|---|
| 后端框架 | .NET 10 | 控制器风格 Web API |
| ORM | SqlSugar | 多数据库、逻辑删除过滤器 |
| 全文检索 | Lucene.NET | 生词分词索引 + 懒初始化 + 定时重建 |
| 认证 | JWT + BCrypt | HMAC-SHA256 签名,令牌轮换 |
| 缓存 | FusionCache | 内存缓存,可选 Redis 升级 |
| 日志 | Serilog | 控制台 + 文件滚动 + 日志落库 |
| 定时任务 | Hangfire | 数据库驱动,Cron 调度 |
| 前端框架 | Vue 3 + TypeScript | Composition API + script setup |
| UI 组件 | Element Plus | 按需引入,CSS 变量主题 |
| 语音朗读 | Web Speech API | 日语课文与单词自动朗读 |
体验说明
欢迎试用 SmileXLearn
可访问演示站点体验 80 课课文学习、生词库与记忆单词功能。演示环境部分敏感操作受限制,如您对项目感兴趣或有任何建议,欢迎通过博客的联系方式反馈。
其他亮点
- 统一响应:所有接口返回 ApiResponse<T>(code / message / data),业务失败统一抛出 BusinessException
- 登录统一:学习站点登录弹窗与管理后台登录共用同一用户体系与 Token
- 进度同步:登录用户学习进度跨设备同步,未登录回退 localStorage
- Lucene 懒初始化:索引缺失时自动从数据库构建,管理端支持一键全量重建
- 共享数据:课程内容不参与创建人数据权限过滤,普通学习用户无差别读取
- 响应式布局:PC / 移动端自适应,移动端单列卡片流 + 抽屉导航
- RBAC 权限:菜单 / 按钮 / 角色 / 接口四层权限模型,课程管理菜单内置种子