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

SmileXLearn 首页
SmileXLearn 首页

后端基于 .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
ORMSqlSugar多数据库、逻辑删除过滤器
全文检索Lucene.NET生词分词索引 + 懒初始化 + 定时重建
认证JWT + BCryptHMAC-SHA256 签名,令牌轮换
缓存FusionCache内存缓存,可选 Redis 升级
日志Serilog控制台 + 文件滚动 + 日志落库
定时任务Hangfire数据库驱动,Cron 调度
前端框架Vue 3 + TypeScriptComposition API + script setup
UI 组件Element Plus按需引入,CSS 变量主题
语音朗读Web Speech API日语课文与单词自动朗读

体验说明

欢迎试用 SmileXLearn

可访问演示站点体验 80 课课文学习、生词库与记忆单词功能。演示环境部分敏感操作受限制,如您对项目感兴趣或有任何建议,欢迎通过博客的联系方式反馈。

其他亮点

  • 统一响应:所有接口返回 ApiResponse<T>(code / message / data),业务失败统一抛出 BusinessException
  • 登录统一:学习站点登录弹窗与管理后台登录共用同一用户体系与 Token
  • 进度同步:登录用户学习进度跨设备同步,未登录回退 localStorage
  • Lucene 懒初始化:索引缺失时自动从数据库构建,管理端支持一键全量重建
  • 共享数据:课程内容不参与创建人数据权限过滤,普通学习用户无差别读取
  • 响应式布局:PC / 移动端自适应,移动端单列卡片流 + 抽屉导航
  • RBAC 权限:菜单 / 按钮 / 角色 / 接口四层权限模型,课程管理菜单内置种子