bim-issue-platform

BIM 问题管理平台 · 项目介绍

本目录(docs_2/)是面向开源读者重写的文档集。原 docs/ 保留了项目从需求到实现的全过程记录(决策日志、评审意见、联调过程),供追溯历史决策时查阅;日常使用与二次开发请以本目录为准。

这是什么

BIM 问题管理平台是一个面向建模阶段 BIM 工程师的问题(碰撞、图面错误、净高不足等)跟踪管理平台:

解决什么问题

痛点 本平台的应对
每人记录风格不统一,难以汇总 问题按「六要素」模板记录(楼层 → 图纸 → 位置 → 结论 → 详情 → 建议),分类挂四维度标准类目(类型 / 专业 / 专项 / 子项)
一次面对几百条问题,抓不住重点 重要程度四档(紧急 / 普通 / 轻微 / 建议)+ 服务端筛选 / 排序 / 分页,紧急判定有明确规则
记录载体五花八门(Excel / Word / 各家平台),导出格式混乱 三档导出:Excel 全量清单(同步)、带图 HTML 报告(后台任务打包 ZIP)、Word 小批量报告(前端组装)
想让 AI 帮着记录 / 批量处理,但平台没有 API 全部业务能力开放为 REST API;AI 通过「代理执行」模式借用户的令牌操作,权限受发令人与 AI 动作清单双重约束,全部留痕

功能总览

技术栈

层 选型
框架 Nuxt 4(全栈:app/ 前端 SPA + Nitro server/ 后端)
界面 Nuxt UI v4(Tailwind CSS v4)
数据库 SQLite(默认,零配置,走 Node 22 内置 node:sqlite) / MySQL 8(多人共享开发库或既有基础设施)
ORM Drizzle ORM 0.45(跨方言,双 config)
鉴权 nuxt-auth-utils(sealed 加密 Cookie 会话)+ 个人 Bearer Token(脚本 / AI)
运行时 Node.js ≥ 22 + pnpm 11

一条贯穿全项目的依赖纪律:禁止一切需要本地编译的原生模块。使用者是 BIM 工程师而非运维,装不上等于平台不存在 —— 因此 SQLite 走 node:sqlite(而非 better-sqlite3)、密码哈希用内置 crypto.scrypt(而非 bcrypt/argon2)、图像处理用纯 JS 的 jimp / @jsquash/webp(而非 sharp)。全部依赖均为纯 JS。

部署形态

当前状态

第一版(MVP)已完成:7 个业务页面 + 14 张表 + 58 个 REST 端点全部实现并联调通过。

路线图(明确不在当前版本内)

项 状态
BIM 模型展示页(web-ifc + Three.js,仅旋转浏览) 暂缓;model_files 表已建,文件可上传存储
问题情况汇总页 / 报表统计端点 后置;模板已有现成范式
MCP Server 规划为 REST 之上的薄壳(只做协议翻译与转发,不重复实现权限与业务规则)
项目归档 / 负责人移交 / 平台用户冻结后语义细化 契约层已有提案(见 docs/6_2接口契约.md 第 3.1c 节),待定案
PostgreSQL 支持 ORM 层已按跨方言约束编写,未做兼容性验证

文档导航

文档 内容
02-getting-started.md 安装、初始化、演示数据、登录
03-configuration.md 环境变量、数据库切换、部署(反向代理 / HTTPS / 备份)
04-user-guide.md 页面导览、角色与权限、日常工作流、AI 接入指南
05-architecture.md 技术选型理由、目录结构、前后端架构
06-database.md 14 张表设计、通用约定、迁移与对拍
07-api.md API 参考:鉴权、AI 代理执行、端点清单、错误码
08-development.md 开发环境、常用命令、代码门禁、贡献规范
09-design-decisions.md 关键设计决策及其理由(为什么这样设计)