# examsys **Repository Path**: mastwet/examsys ## Basic Information - **Project Name**: examsys - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-28 - **Last Updated**: 2026-08-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Examsys 在线考试系统,支持题库管理、组卷、在线考试、自动阅卷、错题本和历史记录等功能。 ## 技术栈 - **前端**: React 19 + TypeScript + Vite 7 + Tailwind CSS - **后端**: Express 5 + SQLite (better-sqlite3) - **认证**: JWT ## 快速开始 ### 方式一:Docker 一键安装(推荐) 无需安装 Node.js,只需一次配置 + 一条命令。 ```bash # 1. 克隆项目 git clone examsys && cd examsys # 2. 复制环境变量模板并按需修改(首次) cp server/.env.example server/.env # 3. 一键启动(构建 + 运行) docker compose up -d # 4. 查看日志(可选) docker compose logs -f # 5. 浏览器访问 # http://localhost:3001 ``` 默认管理员账号密码见 `server/.env` 中的 `ADMIN_USERNAME` / `ADMIN_PASSWORD`。 > 首次启动时若仍为示例值 `admin123`,控制台会打印警告 ⚠️,请在生产环境务必修改。 **数据持久化**:SQLite 数据库文件位于宿主机的 `./data/` 目录(通过卷映射),容器删除后数据不丢失。 **停止 / 重建**: ```bash docker compose down # 停止容器 docker compose down -v # 同时清理卷 docker compose up -d --build # 重新构建并启动 ``` --- ### 方式二:本地开发模式 ```bash # 安装前端依赖 npm install # 安装后端依赖 cd server && npm install && cd .. # 复制环境变量模板 cp server/.env.example server/.env # 启动后端 (端口 3001) cd server && npm run dev # 另开终端:启动前端开发服务器 (端口 5173) npm run dev ``` ### 方式三:Windows 便携版(无需 Node 环境) 1. 从 GitHub Release 下载 `Examsys-win-x64.zip` 2. 解压到任意目录 3. 双击 `start.bat` 4. 浏览器自动打开 http://localhost:3001 ## 环境变量配置 `server/.env` 支持以下变量: | 变量 | 说明 | 默认值 | |---|---|---| | `PORT` | 后端服务端口 | `3001` | | `JWT_SECRET` | JWT 签名密钥,生产环境务必修改 | `please-change-me-...` | | `ADMIN_USERNAME` | 首次启动时自动创建的默认管理员账号 | `admin` | | `ADMIN_PASSWORD` | 默认管理员密码(生产环境务必修改) | `admin123` | 首次启动时若检测到 `ADMIN_PASSWORD=admin123` 会输出警告。 > 管理员账号在首次启动时自动创建,后续重启不会覆盖已存在的账号。如需重置,删除 `server/data/exam.db` 即可。 ## 项目结构 ``` ├── src/ # 前端源码 │ ├── components/ui/ # UI 组件库 │ ├── context/ # React Context (Auth, Exam) │ ├── sections/ # 页面组件 │ ├── services/ # API 请求 │ └── config.ts # 站点配置 ├── server/ # 后端源码 │ ├── src/ # TypeScript 源码 │ └── data/ # SQLite 数据库 (运行时自动创建) ├── scripts/ # 构建/启动脚本 ├── Dockerfile # Docker 镜像构建 ├── docker-compose.yml # 一键编排 └── .github/workflows/ # CI/CD ``` ## 构建打包(Windows 便携版) ```bash node scripts/build.js ``` 生成 `release/Examsys-win-x64.zip`,包含便携版 Node.js,可在无开发环境的 Windows 电脑上直接运行。 ## CI/CD 推送 `v*` 标签时自动触发 GitHub Actions 构建并发布到 Release: ```bash git tag v1.0.0 git push --tags ```