Files
broccoliandClaude Fable 5 edfb216561 激光材料数据平台 1.3.0
公开数据看板、四位 Key 录入面板、管理后台与三级权限、动态字段配置、
PostgreSQL/SQLite 双支持、数据库备份,以及本版新增的成品图上传与预览。

图片相关:
- 录入表单支持相册选图与手机端直接拍照,每条记录最多 6 张
- 浏览器内压缩到最长边 1600 并剥离 EXIF,入库统一为 JPG/PNG
- 二进制直接入库,现有备份自动覆盖图片,部署无需新增卷
- 详情页缩略图宫格与全屏 lightbox,公开看板同样可见

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 22:06:02 +08:00

65 lines
2.6 KiB
Markdown

# 激光材料数据平台
用于手动录入和管理激光雕刻参数、材料物理特性及实验结果的响应式网站。电脑和手机共用一套页面,包含登录、三级权限、数据校验、审计日志、备份与恢复。
录入时可上传成品图,手机上支持直接调起相机拍照,图片在浏览器内压缩后入库;查看数据详情时可以放大预览。
管理员可在运行期间添加扩展数据字段,配置必填/可选、公开性、排序、单位和输入形式。字段配置修改或停用不会删除历史数据。
系统入口:
- `/`:公开数据看板,无需登录。
- `/entry`:四位 Key 验证后的专用数据录入面板。
- `/admin`:登录后的管理后台。
## 一键部署(推荐)
要求:Docker Desktop 或 Docker Engine + Compose。
macOS / Linux 可直接执行:
```bash
./start.sh
```
脚本会自动生成安全配置、启动 Docker Desktop、构建服务、等待健康检查并打开浏览器。已有 `.env` 和数据库不会被覆盖。
也可以手动部署:
```bash
cp .env.example .env
# 编辑 .env,务必修改 APP_SECRET、ADMIN_PASSWORD,并增加 POSTGRES_PASSWORD
docker compose up -d --build
```
浏览器打开 `http://服务器地址:5980` 查看公开数据;管理登录地址为 `/login`。端口可通过 `.env``APP_PORT` 修改。首次登录使用 `.env` 中的 `ADMIN_USERNAME` / `ADMIN_PASSWORD`,系统会提示修改初始密码。
如果服务器无法访问官方 PyPI,可在 `.env` 设置可访问的内部镜像,例如 `PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple`,然后重新执行 `docker compose up -d --build`
停止服务:`docker compose down`。查看日志:`docker compose logs -f web`。数据存放在 Docker 的 `postgres_data` 卷,备份文件在项目的 `backups/` 目录。
## 本地开发
```bash
python3 -m venv .venv
.venv/bin/pip install -r requirements-dev.txt
cp .env.example .env
.venv/bin/python run.py
```
默认使用 `data/laser_data.db`(SQLite),适合单机开发;正式部署使用 Compose 中的 PostgreSQL 17。
## 文档
- [完整操作手册](docs/操作手册.md)
- [数据库与接口文档](docs/数据库接口文档.md)
- 服务启动后可访问 `/docs` 查看可交互 OpenAPI 文档,访问 `/openapi.json` 获取机器可读定义。
## 角色
| 角色 | 查看 | 新增/编辑 | 删除 | 用户/备份/审计 |
|---|---:|---:|---:|---:|
| `admin` 管理员 | ✓ | ✓ | ✓ | ✓ |
| `uploader` 录入员 | ✓ | ✓ | — | — |
| `viewer` 只读用户 | ✓ | — | — | — |