Skip to content

KirkPan/worklog

Repository files navigation

工作记录平台

用于记录项目进展、拆解项目步骤、跟踪预计完成时间和风险状态的内部工作台。当前版本后端使用 MongoDB 持久化,业务接口默认需要登录后才能调用。

功能

  • 工作记录:创建、更新项目进展,维护项目步骤和预计完成时间。
  • 项目视图:按项目聚合记录和关键节点。
  • 看板:查看进度分布、风险状态、本周到期和最近更新。
  • AI 辅助:表单补全、表单润色、项目步骤拆解。
  • 用户管理:管理员可创建、停用用户,并区分普通用户与管理员。
  • 登录鉴权:除登录和健康检查外,所有 /api/v1 业务接口都需要 Bearer Token。

MongoDB

默认连接用户提供的 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_records
  • work_record_histories
  • ai_generation_logs
  • app_settings
  • users

Docker Compose 部署

先确认服务器本机可以访问 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 dev

Vite 会把 /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,说明前端仍按根路径 / 启动了。停止旧的前端进程后重新执行上面的命令。

常见问题

登录提示 Error: Not Found

通常是前端已经更新到登录版本,但 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/users
  • POST /api/v1/users
  • PUT /api/v1/users/{user_id}
  • DELETE /api/v1/users/{user_id}
  • GET /api/v1/settings/deepseek
  • PUT /api/v1/settings/deepseek

目录说明

backend/   FastAPI 后端
frontend/  Vue + Arco Design 前端

历史 JSON 文件数据源和导入导出页面已移除,所有业务数据以 MongoDB 为准。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors