用于记录项目进展、拆解项目步骤、跟踪预计完成时间和风险状态的内部工作台。当前版本后端使用 MongoDB 持久化,业务接口默认需要登录后才能调用。
- 工作记录:创建、更新项目进展,维护项目步骤和预计完成时间。
- 项目视图:按项目聚合记录和关键节点。
- 看板:查看进度分布、风险状态、本周到期和最近更新。
- AI 辅助:表单补全、表单润色、项目步骤拆解。
- 用户管理:管理员可创建、停用用户,并区分普通用户与管理员。
- 登录鉴权:除登录和健康检查外,所有
/api/v1业务接口都需要 Bearer Token。
默认连接用户提供的 MongoDB:
Host: 127.0.0.1
Port: 27017
Database: worklog_platform
Username: worklog_admin
默认连接串:
mongodb://worklog_admin:worklog_admin_password@127.0.0.1:27017/worklog_platform?authSource=admin
数据集合:
work_recordswork_record_historiesai_generation_logsapp_settingsusers
先确认服务器本机可以访问 127.0.0.1:27017,然后启动:
docker compose up -d --build访问:
首次启动会自动创建管理员账号:
用户名:admin
密码:admin123456
部署到正式环境前必须覆盖这些环境变量:
export AUTH_SECRET_KEY="替换为足够长的随机字符串"
export INITIAL_ADMIN_PASSWORD="替换默认管理员密码"
docker compose up -d --build也可以覆盖 MongoDB 地址:
export MONGODB_URI="mongodb://worklog_admin:worklog_admin_password@127.0.0.1:27017/worklog_platform?authSource=admin"
export MONGODB_DATABASE="worklog_platform"
docker compose up -d --build后端:
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -e .
cp app/core/config.example.py app/core/config.py # 首次:复制配置模板,填入真实 MongoDB 地址 / 密钥等
uvicorn app.main:app --reload真实的连接串、密钥等只写在
backend/app/core/config.py(已在.gitignore中忽略,不会提交)。仓库里提交的是config.example.py模板,克隆后需先复制一份为config.py。如有需要,仍可用真实环境变量覆盖config.py里的默认值(如 docker 的environment:或export)。
前端:
cd frontend
npm install
npm run devVite 会把 /api 代理到 http://localhost:8000。如果后端不在本机:
VITE_PROXY_TARGET=http://后端地址:8000 npm run dev如果需要挂在 https://your-domain.com/work/ 子路径下运行:
VITE_BASE_PATH=/work/ npm run build开发服务通过 Nginx 代理 /work/ 时也可以这样启动(VITE_ALLOWED_HOSTS 填你的真实域名,多个用逗号分隔):
VITE_BASE_PATH=/work/ VITE_ALLOWED_HOSTS=your-domain.com npm run dev -- --host 0.0.0.0如果浏览器 Network 里出现 /@vite/client 或 /src/main.ts 的 404,说明前端仍按根路径 / 启动了。停止旧的前端进程后重新执行上面的命令。
通常是前端已经更新到登录版本,但 8000 端口仍然跑着旧后端,旧后端没有 /api/v1/auth/login。
处理方式:
cd backend
source .venv/bin/activate
pip install -e .
uvicorn app.main:app --reload如果提示缺少 pymongo,先安装依赖:
pip install "pymongo>=4.7.0"登录接口:
POST /api/v1/auth/login登录成功后,前端会把 access_token 存在浏览器 LocalStorage,并在后续请求中自动附带:
Authorization: Bearer <token>管理员接口:
GET /api/v1/usersPOST /api/v1/usersPUT /api/v1/users/{user_id}DELETE /api/v1/users/{user_id}GET /api/v1/settings/deepseekPUT /api/v1/settings/deepseek
backend/ FastAPI 后端
frontend/ Vue + Arco Design 前端
历史 JSON 文件数据源和导入导出页面已移除,所有业务数据以 MongoDB 为准。