🏢 Good OA
Good OA —— 现代化企业协同办公平台
前后端分离的单仓库工程:后端为 Go 1.26 + Fiber v2 模块化单体(GORM、JWT、goja 脚本引擎),前端为 React 19 + Next.js App Router + Tailwind 4 + shadcn/ui,覆盖组织、流程、内容与日常协同全场景。
模块总览(20 个业务模块)
| 模块 | 能力 |
|---|---|
| auth / health | JWT 签发、口令认证(bcrypt)、健康检查 |
| organization | 人员 / 部门 / 身份 / 角色(RBAC)/ 群组 |
| processplatform | 流程引擎全能力 + 表单 + 设计器 + 附件 |
| cms | 应用 / 栏目 / 文档,draft→checking→published→hidden 审核流 |
| portal | 门户页面,别名访问 |
| query | 查询视图(定义 + 运行) |
| meeting | 会议室管理、预约、冲突检测 |
| calendar | 个人日程 CRUD + 区间查询 |
| attendance | 每日签到 / 签退、当日防重 |
| bbs | 板块 / 帖子 / 回帖 |
| file | 个人网盘树、同名冲突、递归删除释放存储 |
| message | 站内信、未读计数、仅收件人可读 |
| mind | 思维图(JSON 树)、属主隔离、画布编辑页 |
| 其他 | hotpic 热图、correlation 软引用、jpush 推送、ai 模型配置、组件与应用市场、首页统计 |
流程引擎
- 条件路由 — 路由上 goja 条件表达式(变量
creator/title/data),按声明顺序求值,无条件为默认,全假报错 - 驳回 — 打回指定人工环节,重建待办、新到达代次,worklog 留痕(操作人/意见)
- 会签 — 环节
mode=all,按到达代次计票,quorumPercent达标才推进 - 传阅 — circulate → 待阅 → 阅读归档
- 办理记录 — worklog 全程留痕(start / arrive / complete / reject / archive…)
- 另有:加签、撤回、终止、附件、脚本取人、脚本数据校验
RBAC 权限点
org.manage process.design portal.manage query.manage meeting.manage bbs.manage cms.manage hotpic.manage jpush.manage ai.use component.manage program.manage stat.global
角色即「权限点集合 + 成员」;管理端写操作按权限点判定,admin 账号恒通过(兜底)。
开放 API
/api 下提供开放 REST API(ActionResponse 信封),覆盖组织、流程、CMS、门户的高频读路径与标准分页动词,便于第三方系统集成;原生 API 统一信封 {code, msg, data}。
技术栈
Go 1.26 · Fiber v2 · GORM · goja · React 19 · Next.js App Router · Tailwind 4 · shadcn/ui · SQLite(开发)/ MySQL(生产)