{"id":16996406,"url":"https://github.com/maqi1520/clone-processon","last_synced_at":"2025-04-23T13:33:06.529Z","repository":{"id":40343605,"uuid":"417067579","full_name":"maqi1520/clone-processon","owner":"maqi1520","description":"模仿在线流程图 https://processon.com/","archived":false,"fork":false,"pushed_at":"2024-09-25T02:46:57.000Z","size":2543,"stargazers_count":80,"open_issues_count":12,"forks_count":48,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-30T00:06:08.199Z","etag":null,"topics":["flow-chart"],"latest_commit_sha":null,"homepage":"https://clone-processon.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maqi1520.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-14T09:24:54.000Z","updated_at":"2025-03-26T12:25:21.000Z","dependencies_parsed_at":"2024-10-26T21:20:40.695Z","dependency_job_id":"6b6f5e59-d247-46ad-87d1-ef3a4ee9353f","html_url":"https://github.com/maqi1520/clone-processon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maqi1520%2Fclone-processon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maqi1520%2Fclone-processon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maqi1520%2Fclone-processon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maqi1520%2Fclone-processon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maqi1520","download_url":"https://codeload.github.com/maqi1520/clone-processon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250440239,"owners_count":21430971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flow-chart"],"created_at":"2024-10-14T03:52:19.772Z","updated_at":"2025-04-23T13:33:06.483Z","avatar_url":"https://github.com/maqi1520.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [clone processon](https://github.com/maqi1520/clone-processon)\n\nNodeJS 版在线流程图，模仿 https://www.processon.com/\n\n\u003e 本项目仅供学习使用\n\n## 技术栈\n\n- 后端: [express.js](https://expressjs.com/)\n- 数据库: [postgres](http://www.postgres.cn/docs/12/)\n- ORM: [prisma](https://prisma.io/)\n- Authentication: [github OAuth](https://docs.github.com/en/developers/apps/building-oauth-apps/authorizing-oauth-apps)\n- 前端: [Jquery](https://jquery.com/)\n\n## 部署\n\n安装 docker docker-compose\n\n```yml\n# Use postgres/example user/password credentials\nversion: \"3.8\"\n\nservices:\n  db:\n    image: postgres\n    volumes:\n      - pg_data:/var/lib/postgresql/data\n    restart: always\n    ports:\n      - 5432:5432\n    environment:\n      POSTGRES_DB: pro\n      POSTGRES_USER: admin\n      POSTGRES_PASSWORD: example\n\n  adminer:\n    image: adminer\n    restart: always\n    ports:\n      - 8080:8080\n\n  app:\n    image: maqi1520/cloneprocesson\n    ports:\n      - \"3000:3000\"\n    environment:\n      DATABASE_URL: \"postgresql://admin:example@db:5432/pro?schema=public\"\n      JWT_SECRET: \"xxxx\"\n      GITHUB_CLIENT_ID: \"xxxx\"\n      GITHUB_CLIENT_SECRET: \"xxxx\"\n      DOMAIN: \"http://localhost:3000\"\n      EMAIL_USER: \"xxxx@163.com\"\n      EMAIL_USER_NAME: \"xxxxx\"\n      EMAIL_HOST: \"smtp.163.com\"\n      EMAIL_PASS: \"xxxx\"\n    depends_on:\n      - db\nvolumes:\n  pg_data:\n```\n\n启动\n\n```bash\ndocker-compose up -d\n```\n\n## 本地开发\n\n- 安装 nodejs 环境\n- 安装 yarn\n- 复制 .env.example 命名为 .env\n\n```\n# 数据库链接地址\nDATABASE_URL=\"postgresql://admin:example@localhost:5432/pro?schema=public\"\n\n# JWT 秘钥\nJWT_SECRET=\"JWT_SECRET\"\n\n# 邮箱验证\n# 返回域名\nDOMAIN=\"http://localhost:3000\"\n# 邮箱\nEMAIL_USER=\"maqi1520@163.com\"\n# 邮件发送人\nEMAIL_USER_NAME=\"狂奔的小马\"\n\n# 邮件smtp\nEMAIL_HOST=\"smtp.163.com\"\n# smtp 密码 并非邮箱密码，在邮箱设置中申请\nEMAIL_PASS=\"xxxxxx\"\n# github oauth 参数\nGITHUB_CLIENT_ID=\"xxxxxxxxxx\"\nGITHUB_CLIENT_SECRET=\"xxxxxxxxx\"\n```\n\n- 安装依赖\n\n```\nyarn install\n```\n\n- 初始化数据\n\n```\nnpx prisma db seed\n```\n\n- 打包\n\n```\nyarn build\n```\n\n- 启动\n\n```\nyarn start\n```\n\n### 其他说明\n\nPrisma 迁移: 使用 `npx prisma migrate deploy` 命令来确保数据库架构已更新。如果你在开发环境中使用了 `npx prisma migrate dev`，则在生产环境中应使用 `npx prisma migrate deploy`。\n\nPrisma Client 生成: `npx prisma generate` 会在构建时生成 Prisma Client，确保你在应用代码中使用的 Prisma Client 已就绪。\n\n## docker 部署\n\n构建 Docker 镜像：\n\n```bash\ndocker build -t cloneprocesson .\n```\n\n运行 Docker 容器（确保 Postgres 数据库已启动并配置好）：\n\n```bash\ndocker run -p 3000:3000 --env-file .env cloneprocesson\n```\n\n## TODO\n\n- ✅ 支持 POS 文件导入\n- [ ] websocket 多人同步编辑\n- [ ] 文件上传\n- [ ] 生成缩略图\n- ✅ 分享页面\n\n## 联系\n\n备注来源\n\n![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5a856f92420f485cba31fe5a8ee01511~tplv-k3u1fbpfcp-watermark.image?)\n\n## 我的微信公众号\n\n定位前端工程师进阶\n\n![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f1484497c4f647cc87aeb5f746f220de~tplv-k3u1fbpfcp-watermark.image?)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaqi1520%2Fclone-processon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaqi1520%2Fclone-processon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaqi1520%2Fclone-processon/lists"}