# JRedmine **Repository Path**: TangQingFeng/jredmine ## Basic Information - **Project Name**: JRedmine - **Description**: Java版本的Redmine - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-02-02 - **Last Updated**: 2025-12-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JRedmine > 基于 Spring Boot 的 Java 版本 Redmine 项目管理系统 [![Java](https://img.shields.io/badge/Java-21-orange.svg)](https://www.oracle.com/java/) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.3-brightgreen.svg)](https://spring.io/projects/spring-boot) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) ## 📖 项目简介 JRedmine 是一个使用 Spring Boot 构建的开源项目管理系统,旨在实现类似 Redmine 的功能。项目采用现代化的 Java 技术栈,提供完整的项目管理、任务跟踪、协作沟通等功能。 ### 核心特性 - ✅ **项目管理**: 多项目支持、子项目、成员管理、项目仪表盘 - ✅ **任务管理**: 任务跟踪、状态管理、优先级、任务关联、工时记录 - ✅ **协作沟通**: Wiki、论坛、文档管理、文件管理 - ✅ **可视化**: 甘特图、路线图 - ✅ **时间跟踪**: 工时记录、报表分析 - ✅ **版本管理**: 里程碑管理、版本进度跟踪 - ✅ **代码集成**: Git/SVN 代码仓库集成 - ✅ **权限控制**: 角色与权限、LDAP 集成 - ✅ **通知系统**: 邮件通知、站内消息 - ✅ **扩展能力**: REST API、插件系统 ### 项目状态 🚧 **开发中** - 项目目前处于框架搭建阶段,核心功能正在开发中。 **当前进度**: - ✅ 项目框架搭建完成 - ✅ 数据库结构设计完成 - ✅ 用户注册/登录基础功能 - 🚧 核心业务模块开发中 - ⏳ 功能模块完善中 ## 🛠️ 技术栈 ### 核心框架 | 技术 | 版本 | 说明 | |------|------|------| | **JDK** | 21 | LTS 版本,长期支持 | | **Spring Boot** | 3.4.3 | 核心框架 | | **Maven** | - | 项目构建工具 | ### 数据访问 | 技术 | 版本 | 说明 | |------|------|------| | **MyBatis Plus** | 3.5.7 | ORM 框架 | | **Lambda QueryWrapper** | - | 类型安全查询 | | **MySQL** | 8.0 | 主数据库 | ### 工具库 | 技术 | 版本 | 说明 | |------|------|------| | **MapStruct** | 1.6.3 | 对象映射 | | **Lombok** | - | 代码简化 | | **Bean Validation** | - | 数据验证 | | **JWT (jjwt)** | 0.11.5 | Token 认证 | ### 计划添加 - ⏳ **Spring Security** - 安全框架(当前已注释,待启用) - ⏳ **Redis** - 缓存和会话存储 - ⏳ **SpringDoc OpenAPI** - API 文档 - ⏳ **Spring Boot Actuator** - 监控和健康检查 > 📝 详细的技术栈分析和优化建议请查看 [技术栈分析与优化建议文档](./docs/技术栈分析与优化建议.md) > 📝 JPA 到 MyBatis Plus 迁移说明请查看 [迁移说明文档](./docs/JPA到MyBatisPlus迁移说明.md) ## 📋 功能模块 ### 核心业务模块 - [x] 用户管理 - 用户注册/登录、用户资料、用户组 - [ ] 权限管理 - 角色与权限、权限控制、LDAP 集成 - [ ] 项目管理 - 多项目、子项目、成员管理、仪表盘 - [ ] 任务管理 - 任务跟踪、状态、优先级、关联关系 - [ ] 时间跟踪 - 工时记录、报表分析 - [ ] 版本管理 - 里程碑、版本进度跟踪 ### 协作沟通模块 - [ ] Wiki - 内置 Wiki、版本历史 - [ ] 论坛 - 项目讨论、主题管理 - [ ] 文档管理 - 文档存储、分类管理 - [ ] 文件管理 - 文件上传、版本控制 ### 可视化模块 - [ ] 甘特图 - 任务时间线、依赖关系、路线图 - [ ] 日历视图 - 任务日历、里程碑日历(计划中) ### 集成与扩展模块 - [ ] 代码仓库集成 - Git/SVN 集成、代码浏览 - [ ] REST API - 系统集成(开发中) - [ ] 插件系统 - 可扩展性、插件库 ### 系统管理模块 - [ ] 系统设置 - 全局配置、邮件服务器、安全设置 - [ ] 活动流 - 项目活动流、用户活动流(计划中) - [ ] 搜索功能 - 全文搜索、高级搜索(计划中) - [ ] 统计分析 - 项目统计、工时统计、报表(计划中) ### 通知与通信模块 - [ ] 邮件通知 - 邮件提醒、站内消息、任务评论 - [ ] 多渠道通知 - 短信、微信、推送(可选) ### 其他功能 - [ ] 多语言支持 - 国际化 - [ ] 导入/导出 - CSV/Excel 导入导出(计划中) - [ ] 审计日志 - 操作日志、变更历史(计划中) > 📝 详细的功能模块分析请查看 [功能模块分析文档](./docs/README.md) ## 🚀 快速开始 ### 环境要求 - JDK 21+ - Maven 3.6+ - MySQL 8.0+ - Redis(可选,计划中) ### 本地部署 #### 1. 克隆项目 ```bash git clone https://github.com/jredmine/JRedmine.git cd JRedmine ``` #### 2. 数据库准备 1. 安装 MySQL 8.0,并创建数据库 `jredmine` 2. 导入数据库脚本: ```bash mysql -u root -p jredmine < src/main/resources/data/jredmine.sql ``` #### 3. 配置文件 复制 `src/main/resources/application-dev.yml` 到 `application-local.yml` 并修改数据库配置: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/jredmine?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai username: your_username password: your_password # MyBatis Plus 配置 mybatis-plus: mapper-locations: classpath*:/mapper/**/*.xml type-aliases-package: com.github.jredmine.entity configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global-config: db-config: id-type: AUTO ``` #### 4. Maven 配置(可选) 配置 Maven 镜像为阿里云镜像,修改 `~/.m2/settings.xml`: ```xml nexus-aliyun central Nexus aliyun https://maven.aliyun.com/repository/public ``` #### 5. 编译构建 ```bash mvn clean compile ``` #### 6. 启动项目 ```bash mvn spring-boot:run ``` #### 7. 访问应用 - 应用地址: http://localhost:8088 - 测试接口: http://localhost:8088/index ### API 测试 #### 用户注册接口 ```http POST http://localhost:8088/api/users/register Content-Type: application/json { "login": "testuser", "password": "12345678", "confirmPassword": "12345678", "firstname": "Test", "lastname": "User", "email": "test@example.com", "hideEmailFlag": false } ``` ### MyBatis Plus 使用示例 项目使用 MyBatis Plus 和 Lambda QueryWrapper 进行类型安全查询: ```java // 类型安全查询示例 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(User::getStatus, 1) .like(User::getLogin, "admin") .orderByDesc(User::getCreatedOn); List users = userRepository.selectList(wrapper); // 单条查询 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(User::getLogin, "admin"); User user = userRepository.selectOne(queryWrapper); ``` > 📝 更多使用示例请查看 [JPA到MyBatisPlus迁移说明](./docs/JPA到MyBatisPlus迁移说明.md) ## 📚 项目文档 项目详细文档位于 `docs/` 目录: - 📊 [功能模块分析报告](./docs/功能模块分析报告.md) - 完整的功能模块分析和评估 - 📋 [功能模块对比表](./docs/功能模块对比表.md) - XMind 与 README 的对比 - 🗄️ [数据库结构验证报告](./docs/数据库结构验证报告.md) - 数据库表结构验证 - ⚠️ [缺失功能模块清单](./docs/缺失功能模块清单.md) - 需要补充的功能模块 - 💡 [功能模块优化建议](./docs/功能模块优化建议.md) - 模块优化和实施建议 - 🔧 [技术栈分析与优化建议](./docs/技术栈分析与优化建议.md) - 技术栈分析和优化建议 - 🗄️ [ORM框架选择分析与建议](./docs/ORM框架选择分析与建议.md) - ORM 框架对比和选择建议 - 📝 [JPA到MyBatisPlus迁移说明](./docs/JPA到MyBatisPlus迁移说明.md) - 迁移文档和使用指南 > 查看 [文档导航](./docs/README.md) 获取完整的文档列表 ## 👥 开发团队 - Lei Dong - Dacheng Gao - Feng Pan ## 🤝 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📝 开发计划 ### Phase 1 - MVP(最小可行产品) - [ ] 用户管理 - [ ] 项目管理 - [ ] 任务管理 - [ ] 角色与权限 - [ ] 基础通知(邮件) ### Phase 2 - 核心功能 - [ ] 时间跟踪 - [ ] 版本管理 - [ ] Wiki - [ ] 文档管理 - [ ] 甘特图 - [ ] 活动流 - [ ] 搜索功能 ### Phase 3 - 增强功能 - [ ] 论坛 - [ ] 文件管理 - [ ] 代码仓库集成 - [ ] 统计分析 - [ ] 自定义字段 - [ ] 工作流管理 ### Phase 4 - 高级功能 - [ ] 插件系统 - [ ] 多渠道通知 - [ ] 日历视图 - [ ] 导入/导出 - [ ] 审计日志 - [ ] REST API 完善 > 详细的开发计划请查看 [功能模块优化建议](./docs/功能模块优化建议.md) ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 🔗 相关链接 - [Spring Boot 官方文档](https://spring.io/projects/spring-boot) - [MyBatis Plus 官方文档](https://baomidou.com/) - [Redmine 官方网站](https://www.redmine.org/) - [项目 Issues](https://github.com/jredmine/JRedmine/issues) ## 📧 联系方式 如有问题或建议,请通过以下方式联系: - 提交 [Issue](https://github.com/jredmine/JRedmine/issues) - 发送邮件至项目维护者 --- **⭐ 如果这个项目对你有帮助,请给个 Star!**