Skip to content

Repository files navigation

课堂积分系统

课堂积分系统是给任课老师使用的课堂正向激励工具。老师在课堂中点击学生即可奖励 5 积分,学生积分同步给班级加分,学生和班级都可以按照可配置兑换项消耗可用积分。

文档入口

第一版范围

  • 本地开发使用 PGlite,生产部署使用 Neon Postgres,数据库访问通过 Drizzle ORM 封装。
  • 技术栈使用 Nuxt 4、Nuxt UI 和 Tailwind CSS。
  • 教师账号密码登录,学生不登录。
  • 登录后默认进入课堂页,课堂页移动端优先。
  • 学生课堂奖励固定为 5 积分。
  • 学生奖励同步给班级加 5 积分。
  • 兑换扣可用积分,不扣累计积分。
  • 按学期归档,旧学期只读。
  • 归档班级不再出现在默认班级列表和学生兑换流程中。

开发注意

  • 积分以 ledger_entries 汇总为准,不要只维护一个可覆盖余额字段。
  • 所有写操作都要记录 teacher_id
  • 所有课堂奖励、兑换、撤销和作废都要写事件和账本。
  • 旧学期禁止写操作。
  • 已产生历史记录的数据不硬删除。

本地开发

  1. 安装依赖:npm install
  2. 复制环境变量:cp .env.example .env
  3. 初始化数据库:npm run db:setup
  4. 启动开发服务器:npm run dev

默认本地数据库为 .data/classroom-points.pglite。测试环境使用内存数据库,不会写入本地开发数据。

默认本地 seed 账号为 admin,密码为 admin123456。正式使用前请通过 .env 修改 SEED_ADMIN_PASSWORD 并重新执行 seed。

上线前检查

部署前执行:

npm run deploy:check

该命令会依次运行单元测试、覆盖率、类型检查和生产构建。完整上线步骤见 部署指南

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages