The project's README from github.com/lantingzhang1119/cohort-harbor. As one markdown file: README.md.
可自托管的员工入职、制度学习与考试平台。CohortHarbor 把员工账号、入职资料、制度版本、在线学习、考试任务、通知邮件和私有文件保护放在一个全栈应用中,适合内部部署、二次开发和开源协作。
当前仓库提供的是可公开使用的通用代码与 mock 数据。仓库不包含真实员工、生产数据库、企业制度原件或 SMTP/API 密钥;部署时请通过环境变量和私有存储注入组织自己的数据。
平台面向企业 HR、行政、IT 和新员工,支持从员工账号建立、入职资料发布、制度阅读到考试与通知的完整闭环。管理员可以管理组织内容和员工,员工只能访问当前账号有权限且已发布的内容。
SUPER_ADMIN、ADMIN、EMPLOYEE 多角色权限管理“AI knowledge assistant”目前是清晰的扩展方向:当前运行时没有接入 OpenAI 或其他 LLM,也没有虚构一个已上线的 Agent。现有代码提供制度/文档内容、权限边界、预览和业务流程基础,后续可在此基础上接入检索增强问答。详见 docs/ai-agent.md。
better-sqlite3 adapter)xlsx、archiver、sanitize-html、yauzl 等文件与内容处理库24.14.0;pnpm 11.16.0corepack enable
corepack prepare [email protected] --activate
pnpm install --frozen-lockfile
cp .env.example .env
# 编辑 .env,至少填写 ADMIN_USERNAME、满足策略的 ADMIN_PASSWORD,
# 以及由密码管理器生成的 32 字符以上 AUTH_TOKEN_SECRET
pnpm db:ensure
pnpm db:generate
pnpm db:migrate
pnpm db:seed
pnpm dev
打开 http://localhost:3000。生产构建使用:
pnpm build
pnpm start
完整环境变量说明、SQLite 初始化、邮件配置和私有存储注意事项见 docs/deployment.md。.env、数据库、上传目录和常见 Office/PDF 文件均已加入 .gitignore,不要将组织数据复制到 Git 工作树。
Browser
├─ Employee UI ─┐
└─ Admin UI ────┼─ Next.js App Router pages + API routes
├─ session/RBAC guards
├─ feature services
├─ Prisma 7 / SQLite
└─ private storage + optional SMTP / local document tools
src/app 负责页面和 API 路由,src/features 按认证、员工、制度、资料包、考试、邮件、门户和审计等领域组织业务服务,prisma 保存 schema 与迁移,storage/private 保存不应公开的运行时资产,tests 与 e2e 提供自动化验证。数据流和边界见 docs/architecture.md。
SUPER_ADMIN、ADMIN、EMPLOYEE 角色体系。服务端 guard 对管理端、超级管理员专属操作、员工端 API 和文件下载分别授权,前端隐藏不是唯一安全边界。storage/private/,通过数据库资产记录和服务端路径校验访问,不直接放入 public/。更多边界和部署建议见 docs/security.md。
公开仓库使用独立的干净 Git 历史,不包含私有源仓库的分支、标签、评审记录或本机运行产物。示例邮箱使用 .invalid 保留域名;固定测试口令只服务于自动化测试,不是部署默认值。发布时同时提供 NOTICE、第三方归属清单、REUSE SPDX 声明 和 SPDX SBOM。
欢迎提交 Issue、改进文档、修复 bug 或贡献功能。请先阅读 贡献指南 和 行为准则,并在提交 Pull Request 前运行 lint、typecheck、build 和相关测试。安全问题请按 SECURITY.md 私下报告。
项目原创代码与 SVG 品牌资源使用 MIT License。依赖和 vendored 资产保留各自许可证,详见 NOTICE、THIRD_PARTY_NOTICES.md 与 LICENSES/。MIT 许可证不授予第三方商标权,也不覆盖部署者自行导入的组织数据或内容。