37 行
1.4 KiB
Markdown
37 行
1.4 KiB
Markdown
# 作业工坊
|
||
|
||
前端使用 Next.js,后端使用 Go + SQLite。前端用户无需登录,通过输入用户名管理自己的作业;支持多张图片上传或在线拍照,可选裁剪,直接提交给 LLM 批改并输出 Markdown。
|
||
|
||
## 快速启动(生产)
|
||
|
||
1. 确保 `homework.hao.work` DNS 指向部署服务器。
|
||
2. 在根目录配置 `.env`(已提供示例)。
|
||
3. 运行:
|
||
|
||
```bash
|
||
docker compose up -d --build
|
||
```
|
||
|
||
4. Nginx 反向代理(示例已配置在 `/etc/nginx/sites-enabled/homework.hao.work`):
|
||
- 前台代理:`http://127.0.0.1:3000`
|
||
- 后端代理:`http://127.0.0.1:8080`
|
||
- HTTPS 证书由 certbot 自动续期(证书路径 `/etc/letsencrypt/live/homework.hao.work/`)。
|
||
|
||
访问:
|
||
- 前台:https://homework.hao.work
|
||
- 后台:https://homework.hao.work/backend(默认账号:admin / whoami139)
|
||
|
||
## 主要接口
|
||
|
||
- `GET /api/assignments?username=xxx`
|
||
- `POST /api/assignments` `multipart/form-data`:`username`、`title`、`images`(可多张,按上传顺序)
|
||
- `PUT /api/assignments/{id}` `multipart/form-data`:`username`、`title`、`images`(重新上传并重新批改)
|
||
- `GET /api/assignments/{id}?username=xxx`
|
||
- `GET /api/assignments/{id}/corrected?username=xxx&index=0`
|
||
- `DELETE /api/assignments/{id}?username=xxx`
|
||
|
||
## 说明
|
||
|
||
- SQLite 数据库存储在 `backend/data/homework.db`,图片存储在 `backend/data/uploads`。
|
||
- LLM 500 错误会自动重试(次数由 `.env` 控制)。
|