适合中小型公司和科研院校实验室的周报管理系统
让周报不再枯燥,让科研协作更高效! 🚀
BioDashboard 是一款专为实验室/部门-PI/主管-学生/员工扁平化管理模式设计的周报系统。
项目起源于 中南大学生物信息实验室,已在多个高校实验室和企业团队中使用,包括:
- 中南大学生物信息实验室
- 湖南科技大学单细胞计算生物研究组
- 第四范式(业界公司)
- 江苏理工大学毕业设计原型
- 📝 智能周报模板 - 周一自动生成本周周报草稿
- 🔍 历史对照 - 查看上周周报内容作为参考
- 📕 周报汇总 - PI/主管可查看组内所有周报
- 🏢 扁平化架构 - 实验室(部门) → PI(主管) → 学生(员工)
- 👥 成员管理 - PI 可增删查改小组成员
- 🔒 权限控制 - 基于角色的细粒度权限管理
- ⏰ 周一 7:00 - 自动生成本周周报并邮件通知
- 🔔 周日 19:00 - 提醒未完成周报的同学
- 📈 周一 8:30 - 发送上周统计报告给 PI
| 类别 | 技术 |
|---|---|
| 后端框架 | Spring Boot 2.0+ |
| 安全框架 | Apache Shiro |
| 持久层 | MyBatis / MyBatis-Plus |
| 数据库 | MySQL 5.7+ |
| 连接池 | Alibaba Druid |
| 缓存 | Ehcache |
| 任务调度 | Quartz |
| 数据库迁移 | Flyway |
| 前端框架 | Bootstrap + AdminLTE |
| 表格组件 | Bootstrap Table |
- JDK 1.8+
- MySQL 5.7+
- Maven 3.5+
git clone https://github.com/chenxofhit/BioDashboard.git
cd BioDashboard编辑 src/main/resources/application-dev.yml:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/biodashboard?useUnicode=true&characterEncoding=utf8
username: root # 修改为你的数据库用户名
password: root # 修改为你的数据库密码项目已集成 Flyway 数据库迁移工具,启动时会自动检查并初始化数据库:
- ✅ 首次启动 - 自动创建所有表结构和基础数据
- 🔁 后续启动 - 自动跳过已执行的脚本,不会重复初始化
- ⬆️ 版本升级 - 自动执行新的数据库迁移脚本
手动初始化(可选)
如需手动导入数据,可执行:
mysql -u root -p biodashboard < init.sql开发模式(推荐)
mvn spring-boot:run或使用 JAR 包方式
# Linux/Mac
mvn clean package -DskipTests
./start.sh start
# Windows
mvn clean package -DskipTests
start.bat start- 地址:http://localhost:8088/biodashboard
- 账号:
admin - 密码:
1
如需启用邮件通知功能,编辑 src/main/resources/application.properties:
# SMTP 服务器配置
spring.mail.host=smtp.qq.com
spring.mail.username=your-email@qq.com
spring.mail.password=your-auth-code
spring.mail.port=587
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8
# 发件人
biodashboard.mail.sender=your-email@qq.com| 登录页面 | 周报列表 | 填写周报 |
|---|---|---|
![]() |
![]() |
![]() |
| 部门管理 | 角色管理 | 定时任务 |
|---|---|---|
![]() |
![]() |
![]() |
A: 为了保证周报格式统一便于管理,周报由系统定时任务自动生成,而非用户手动创建。每周一早上会自动为所有成员生成本周周报任务。
A:
- 在「系统工具」→「计划任务」中找到
ThisWeekReportTemplateGenerateJob - 点击「运行一次」为新成员生成周报
- 开启定时任务后,系统会在每周一自动为所有成员派发周报
# 1. 编译打包
mvn clean package -DskipTests
# 2. 复制启动脚本
cp target/biodashboard-1.0.0.jar .
# 3. 赋予执行权限
chmod +x start.sh
# 4. 启动应用
./start.sh start
# 其他命令
./start.sh stop # 停止应用
./start.sh restart # 重启应用
./start.sh status # 查看状态
./start.sh log # 查看实时日志# 1. 编译打包
mvn clean package -DskipTests
# 2. 复制启动脚本
copy target\biodashboard-1.0.0.jar .
# 3. 启动应用
start.bat start
# 其他命令
start.bat stop # 停止应用
start.bat restart # 重启应用
start.bat status # 查看状态# 编译打包
mvn clean package -DskipTests
# 运行(使用生产环境配置)
java -jar target/biodashboard-1.0.0.jar --spring.profiles.active=prod
# 或指定自定义配置
java -jar target/biodashboard-1.0.0.jar \
--spring.profiles.active=prod \
--server.port=8080 \
--spring.datasource.password=yourpassword编辑 src/main/resources/application-prod.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/biodashboard?useUnicode=true&characterEncoding=utf8
username: root
password: your_production_password # 修改生产环境密码
server:
port: 8088 # 可根据需要修改端口
bio:
projectRootURL: http://your-domain.com/biodashboard/ # 修改为你的域名# 使用 nohup
nohup java -jar biodashboard-1.0.0.jar --spring.profiles.active=prod > app.log 2>&1 &
# 或使用 systemd(推荐)
# 创建 /etc/systemd/system/biodashboard.service创建服务文件 /etc/systemd/system/biodashboard.service:
[Unit]
Description=BioDashboard Weekly Report System
After=syslog.target
[Service]
User=biodashboard
Group=biodashboard
WorkingDirectory=/opt/biodashboard
ExecStart=/usr/bin/java -jar biodashboard-1.0.0.jar --spring.profiles.active=prod
SuccessExitStatus=143
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target启动服务:
sudo systemctl daemon-reload
sudo systemctl start biodashboard
sudo systemctl enable biodashboard # 开机自启
sudo systemctl status biodashboard # 查看状态BioDashboard/
├── src/
│ └── main/
│ ├── java/com/bio/
│ │ ├── common/ # 公共工具类
│ │ ├── sys/ # 系统管理模块
│ │ ├── bio/ # 周报业务模块
│ │ └── job/ # 定时任务模块
│ └── resources/
│ ├── mapper/ # MyBatis 映射文件
│ ├── templates/ # Thymeleaf 模板
│ └── static/ # 静态资源
├── init.sql # 数据库初始化脚本(手动导入用)
├── src/main/resources/db/migration/ # Flyway 自动迁移脚本
├── start.sh # Linux/Mac 启动脚本
├── start.bat # Windows 启动脚本
├── pom.xml # Maven 配置
└── README.md
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature) - 提交你的修改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
- 微信小程序端
- 移动端 APP (iOS/Android)
- UI 界面优化
- 数据导出功能 (PDF/Excel)
- 钉钉/飞书集成
感谢以下单位和个人对项目的支持:
- 中南大学生物信息实验室
- 湖南科技大学单细胞计算生物研究组
- 所有贡献者和用户
Built with ❤️ by @chenxofhit





