mirror of
https://github.com/SECTL/SecScore.git
synced 2026-07-19 06:04:22 +08:00
3e85c32c9c
This reverts commit 18eada8ff3.
145 lines
4.9 KiB
Markdown
145 lines
4.9 KiB
Markdown
# SecScore
|
||
|
||
<!-- GitHub 徽章 -->
|
||
<p align="center">
|
||
<a href="https://github.com/SECTL/SecScore/releases"><img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/SECTL/SecScore?style=flat-square"></a>
|
||
<a href="https://github.com/SECTL/SecScore/releases"><img alt="Downloads" src="https://img.shields.io/github/downloads/SECTL/SecScore/total?style=flat-square"></a>
|
||
<a href="https://github.com/SECTL/SecScore/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/SECTL/SecScore?style=flat-square"></a>
|
||
<a href="https://github.com/SECTL/SecScore/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues/SECTL/SecScore?style=flat-square"></a>
|
||
<a href="https://github.com/SECTL/SecScore/pulls"><img alt="GitHub pull requests" src="https://img.shields.io/github/issues-pr/SECTL/SecScore?style=flat-square"></a>
|
||
<img alt="Electron" src="https://img.shields.io/badge/Electron-39+-47848F?style=flat-square&logo=electron">
|
||
<img alt="React" src="https://img.shields.io/badge/React-19+-61DAFB?style=flat-square&logo=react">
|
||
<img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-5+-3178C6?style=flat-square&logo=typescript">
|
||
<img alt="Vite" src="https://img.shields.io/badge/Vite-7+-646CFF?style=flat-square&logo=vite">
|
||
</p>
|
||
|
||
SecScore 是一款教育积分管理软件,基于 Electron + React + TypeScript 开发,用于管理学生名单、记录加/扣分、查看排行榜与结算历史,并提供权限保护与数据备份。
|
||
|
||
## 主要功能
|
||
|
||
- 学生管理
|
||
- 添加/删除学生
|
||
- 通过 xlsx 批量导入名单(支持导入前预览与选择“姓名列”)
|
||
- 积分管理
|
||
- 选择学生并提交加分/扣分
|
||
- 支持“预设理由”一键填充理由与分值
|
||
- 支持撤销最近的积分记录(撤销后学生积分会回滚)
|
||
- 理由管理
|
||
- 维护“预设理由”(分类、理由内容、预设分值)
|
||
- 排行榜
|
||
- 支持按“今天 / 本周 / 本月”查看积分变化
|
||
- 支持导出排行榜为 XLSX
|
||
- 支持查看单个学生的操作记录(文本列表)
|
||
- 结算与历史
|
||
- “结算并重新开始”:把当前未结算记录归档为一个阶段,并将所有学生当前积分清零
|
||
- 在“结算历史”查看每个阶段的排行榜
|
||
- 系统设置
|
||
- 主题切换
|
||
- 日志查看/导出/清空
|
||
- 数据导入/导出(JSON)
|
||
- 密码保护(管理密码 / 积分密码)与找回字符串
|
||
|
||
## 使用方法
|
||
|
||
### 1. 权限与解锁
|
||
|
||
- 右上角会显示当前权限:管理权限 / 积分权限 / 只读
|
||
- 若设置了密码,可通过右上角“输入密码”进行解锁
|
||
- 管理密码:全功能(学生管理、理由管理、结算、数据管理等)
|
||
- 积分密码:仅允许积分相关操作
|
||
- 点击“锁定”可切回只读状态
|
||
- 无密码时默认视为管理权限
|
||
|
||
### 2. 学生管理(导入名单)
|
||
|
||
入口:左侧菜单 → 学生管理 → 导入名单
|
||
|
||
- 通过 xlsx 导入
|
||
1. 选择一个 `.xlsx` 文件(默认读取第一个工作表)
|
||
2. 在预览表格里点击表头,选择“姓名列”
|
||
3. 点击“导入”
|
||
4. 导入完成后会提示“新增 / 跳过”数量
|
||
|
||
建议:姓名列尽量只包含纯姓名文本;同名学生会被视为重复并跳过。
|
||
|
||
### 3. 积分管理(加分/扣分)
|
||
|
||
入口:左侧菜单 → 积分管理
|
||
|
||
1. 在“姓名”选择一个学生(支持搜索)
|
||
2. 选择“加分/扣分”,并输入分值
|
||
3. 在“理由内容”填写原因(可手动输入)
|
||
4. 点击“确认提交”
|
||
|
||
快捷理由:
|
||
|
||
- 可在“快捷理由”下拉框中选择预设理由,一键填充理由内容/分值(优先尊重你当前是否已手动输入分值)
|
||
|
||
撤销最近记录:
|
||
|
||
- “最近记录”默认折叠,展开后可对记录点击“撤销”
|
||
- 撤销会回滚该条记录对学生积分的影响
|
||
|
||
### 4. 排行榜与导出
|
||
|
||
入口:左侧菜单 → 排行榜
|
||
|
||
- 可切换统计范围:今天 / 本周 / 本月
|
||
- 点击“导出 XLSX”可导出当前排行榜
|
||
- 点击某个学生的“查看”可打开该学生的操作记录
|
||
|
||
### 5. 结算与数据备份
|
||
|
||
入口:左侧菜单 → 系统设置 → 数据管理
|
||
|
||
- 结算并重新开始
|
||
- 会把当前未结算的积分记录归档为一个阶段
|
||
- 会将所有学生当前积分清零
|
||
- 学生名单不变;结算后的历史在“结算历史”查看
|
||
- 导出 JSON(强烈建议定期备份)
|
||
- 导入会覆盖现有学生/理由/积分记录/设置
|
||
- 安全相关设置(密码等)不会随导入写入
|
||
|
||
## 开发与运行(面向贡献者)
|
||
|
||
## MCP 文档
|
||
|
||
- [MCP-使用说明](./MCP-使用说明.md)
|
||
|
||
### 环境要求
|
||
|
||
- Node.js(建议使用 LTS 版本)
|
||
- pnpm
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
pnpm install
|
||
```
|
||
|
||
### 开发模式
|
||
|
||
```bash
|
||
pnpm dev
|
||
```
|
||
|
||
### 构建
|
||
|
||
```bash
|
||
pnpm build
|
||
```
|
||
|
||
(可选)打包:
|
||
|
||
```bash
|
||
pnpm build:win
|
||
pnpm build:unpack
|
||
```
|
||
|
||
### 常用检查
|
||
|
||
```bash
|
||
pnpm lint
|
||
pnpm typecheck
|
||
```
|