V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhanyye
V2EX  ›  程序员

钉钉微应用开发(SpringBoot + VUE + Docker)

  •  1
     
  •   zhanyye ·
    zhanyeye · 9 天前 · 766 次点击

    logo

    Prod Status

    项目前端: https://github.com/zhanyeye/dingtalk-vue
    项目后端: https://github.com/zhanyeye/dingtalk-springboot

    目标与期望

    基于钉钉微应用开发的实验室绩效管理系统,实现实验室的绩效、学分、论文评审管理与钉钉对接。
    主要功能有:绩效、学分申请与审核,论文评审投票及学分管理,项目开发学分管理,实验室助研金计算等。

    涉及的技术

    后端:

    SpringBoot

    JPA

    Mybatis

    MySQL 8

    Dingtalk SDK

    Docker

    Docker Compose

    Github Actions

    前端:

    Vue

    Nginx

    Dingtalk JSAPI

    Docker

    Docker Compose

    Github Actions

    注意事项

    • 使用了 lombok 插件简化代码,idea 需要安装 lombok 插件,否则编译过不去
    • 由于目前钉钉小程序只支持 GET/POST, 考虑到兼容性这里的接口全部为 GET/POST 方式
    • 系统启动时,初始化操作会调用钉钉 SDK,拉取钉钉组织的所有用户, 若事先未在开发平台设置出口 IP, SDK 会报错导致启动失败

    系统部署

    本项目使用 GitHub Actions 实现 CI,受外网网速限制,没有采用在 GitHub 机器上构件镜像,再拉取到服务器上运行的方式。而是在每次 CI 触发后,GitHub 机器 ssh 登陆服务器执行脚本,来拉取最新代码,构建镜像,并运行容器,具体如下:

    1. 从 GitHub 仓库中拉去最新代码到服务器本地仓库
    2. 使用 mvn 构建项目
    3. docker-compose build 构建镜像
    4. docker-compose up -d 在后台启动容器
    5. docker image prune -f 清理无用的镜像

    GitHub Actions 的 CI 脚本如下

    • 生成环境:.github/workflows/prod.yml
    • 测试环境:.github/workflows/test.yml
    • 与 CI 脚本对应的项目结构如下
      .
      |__ dingtalk
          |__ dingtalk-springboot  // 后端代码
          |__ dingtalk-vue         // 前端代码
          |__ docker-compose.yml   // docker-compose 配置文件
      

    docker-compose 编排配置如下:

    系统运维

    项目效果

    dashboard.png

    application.png

    audit-uncheck.png

    audit-report.png

    audit-next.png

    audit-checked.png

    dc-performance.png

    ac-performance.png

    dev.png

    project-detail-1.png

    project-detail-2.png

    bug.png

    internal-paper.png

    external-paper.png

    paper-vote.png

    paper-review.png

    sys-user.png

    sys-settings.png

    user.png

    参考vue-element-admin

    4 条回复    2021-02-25 20:19:53 +08:00
    zzzmh
        1
    zzzmh   8 天前
    提前牛 X
    slamDunkLINk
        2
    slamDunkLINk   8 天前
    说不定用到
    zhanyye
        3
    zhanyye   8 天前
    求各位同志 start 呀~
    zhanyye
        4
    zhanyye   7 天前
    求 star ~~~~~
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2926 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 15:11 · PVG 23:11 · LAX 07:11 · JFK 10:11
    ♥ Do have faith in what you're doing.