917ab7ccf1280db89553a1f90f7dfc35590a566d
Add early termination visit workflow with ordering, non-applicable visit handling, visit window display, and medication adherence support. Extend monitoring visit issue template fields, site scoping, setup draft project info handling, login security UI, attachment behavior, and related tests/migrations.
CTMS 项目快速上手
生产部署
- 生产入口:
docker-compose.yaml - 初始化方式:
docker compose run --rm backend-init - 启动方式:
docker compose up -d --build - 运行拓扑:
nginx、backend、db - 对外入口:
nginx提供前端静态资源,并同域反代后端 API - 数据库 schema 来源:Alembic migration,不再依赖
database/init.sql - 默认无任何业务预置数据;生产初始化只确保固定管理员
admin@huapont.cn / admin123存在 - 生产环境必须配置
LOGIN_RSA_PRIVATE_KEY;登录密码传输使用 RSA-OAEP 包裹 AES-GCM 密钥,数据库仍只保存 bcrypt 哈希 - 浏览器端加密依赖 WebCrypto 安全上下文;生产访问必须使用 HTTPS,本地
localhost例外 - 当前 challenge 缓存在后端进程内,默认最多保留 1000 个;多实例或多 worker 部署需改为共享缓存或启用粘性会话
- 验证方式:
docker compose configcurl -i http://127.0.0.1:8888/curl -i http://127.0.0.1:8888/health
账号与注册
- 初始化管理员:
admin@huapont.cn / admin123(通过生产初始化命令显式创建) - 自助注册:前端
/register提交邮箱、密码、姓名、角色(CRA/PV/IMP/PM)、部门,状态为 PENDING。 - 管理员审核:
/admin/user-approval列表查看待审核,支持通过/拒绝;仅 ACTIVE 用户可登录。 - 更多账号:管理员也可在
/admin/users直接创建 ACTIVE 账号,再在项目成员中赋予角色。
角色权限概要(前端操作级提示,后端仍最终裁决)
- ADMIN:全权限
- PM:里程碑/任务维护、参与者状态、AE 创建/关闭、Issue 创建/关闭、Finance 创建/审批/支付、IMP 交易、FAQ 维护
- CRA:任务/参与者/AE/Data Query 创建,参与者状态更新,Finance 创建/提交,其他只读
- PV:AE 创建/关闭,Issue 创建/关闭,其余只读
- IMP:IMP 交易/产品/批次维护,其余只读
- 普通成员(无项目角色):仅浏览
访问方式
- 前端:
http://localhost:8888 - 后端 API:同域
/api/v1/* nginx负责托管前端静态资源,并将/api与/health转发到backend
仓库治理文档
- 分支治理规范:
docs/branch-governance.md - 分支环境安装配置:
docs/guides/branch-environment-installation.md - 发布检查清单:
docs/guides/release-checklist.md
本地配置
- 本地编辑器配置(如
.vscode/)不纳入版本库。 - 前端环境变量请使用
frontend/.env,可从frontend/.env.example复制。 - 根目录
.env不作为当前默认启动流程的提交配置文件。 - Postman 本地环境请基于
docs/postman/local.postman_environment.example.json自行复制,不提交个人环境文件。 - 文档入口见
docs/README.md;当前操作手册集中在docs/guides/,审计与治理文档集中在docs/audits/。
常用流程
- 用管理员账号登录前端(默认
admin@example.com / admin123)。 - 进入左侧导航「账号治理」「项目治理」进行用户、项目、中心等全局管理;或在“项目列表”选择项目后进入项目内工作区。
- Dashboard 查看进度、待办;左侧导航进入“里程碑”“任务”等页面。
- 退出登录或切换项目可通过顶部右侧下拉。
管理员全局治理(前端入口)
- 账号治理:
/admin/users(新建/编辑/启用禁用用户,重置密码需二次确认) - 项目治理:
/admin/projects(创建/编辑项目,成员配置 PM/CRA,中心管理) - 中心管理:
/admin/projects/:projectId/sites(中心创建/编辑、CRA 绑定、启用停用)
ADMIN 具备所有 PM 权限,项目内操作与 PM 同步放行。
注意
- 登录使用邮箱 + 密码,前端会先获取登录公钥并加密提交;未审核/已拒绝/已停用账号无法登录。
- 令牌与当前项目上下文保存在浏览器 LocalStorage 中,清除后需重新登录/选择项目。
- 若后端重启,确认数据库容器仍健康,前端会弹出错误提示。
Description
Languages
Vue
44.3%
Python
34.6%
TypeScript
15.6%
Shell
1.9%
JavaScript
1.8%
Other
1.7%