Skip to content

Kunassen/Internal-Task-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ITMS - Internal Task Management System

内部任务管理系统,用于实习生与导师之间分配和跟踪日常任务。

技术栈

层级 技术
前端 Vue 3 (Composition API) + Vite + Element Plus + Pinia + ECharts + vuedraggable
后端 Spring Boot 3.3 + MyBatis-Plus 3.5 + JWT (jjwt 0.12) + EasyExcel
数据库 MySQL 8.0
工具 Maven 3.9, Node.js 24, JDK 21

功能特性

  • 用户注册/登录(JWT 认证),支持导师和实习生两个角色
  • 任务 CRUD,看板拖拽 + 表格双视图切换
  • 任务状态流转:待办 → 进行中 → 已完成
  • 任务筛选/搜索(按状态、负责人、关键词)
  • 任务优先级(高/中/低)+ 颜色区分
  • 个人仪表盘(统计卡片 + ECharts 完成率饼图 + 优先级柱状图)
  • 截止日期倒计时提醒
  • 导师查看所有任务,实习生只看到自己的任务
  • 实时资讯模块(Hacker News API),支持刷新和搜索
  • 任务关联资讯关键词
  • Excel 导出

项目结构

ITMS/
├── backend/                          # Spring Boot 后端
│   ├── src/main/java/com/itms/
│   │   ├── config/                   # CORS, MyBatis-Plus, 数据初始化, 异常处理
│   │   ├── controller/               # REST 控制器
│   │   ├── dto/                      # 数据传输对象
│   │   ├── entity/                   # 实体类
│   │   ├── mapper/                   # MyBatis-Plus Mapper
│   │   ├── service/                  # 业务逻辑接口
│   │   ├── service/impl/             # 业务逻辑实现
│   │   └── util/                     # JWT 工具类
│   ├── src/main/resources/
│   │   ├── application.yml           # 应用配置
│   │   └── db/schema.sql             # 数据库建表脚本
│   └── pom.xml
├── frontend/                         # Vue 3 前端
│   ├── src/
│   │   ├── api/                      # API 请求封装
│   │   ├── components/               # 复用组件
│   │   ├── router/                   # 路由配置
│   │   ├── views/                    # 页面组件
│   │   ├── assets/                   # 静态资源
│   │   ├── App.vue
│   │   └── main.js
│   ├── index.html
│   ├── package.json
│   └── vite.config.js
└── README.md

快速开始

环境要求

  • JDK 21+
  • Maven 3.9+
  • MySQL 8.0+
  • Node.js 18+

1. 数据库配置

CREATE DATABASE IF NOT EXISTS itms DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

复制 backend/src/main/resources/application-template.ymlapplication.yml,修改其中的数据库密码。

2. 启动后端

cd backend
mvn spring-boot:run

后端运行在 http://localhost:8080

3. 启动前端

cd frontend
npm install
npm run dev

前端运行在 http://localhost:5173

4. 测试账号

角色 用户名 密码
导师 mentor 123456
实习生 intern 123456

API 接口

Method Path 说明
POST /api/auth/login 用户登录
POST /api/auth/register 用户注册
GET /api/users/me 当前用户信息
GET /api/users 用户列表
GET /api/tasks 任务列表(支持筛选)
POST /api/tasks 创建任务
PUT /api/tasks/{id} 编辑任务
DELETE /api/tasks/{id} 删除任务
PATCH /api/tasks/{id}/status 更新任务状态
GET /api/tasks/{id} 任务详情
GET /api/tasks/export 导出 Excel
GET /api/news 资讯列表
POST /api/news/refresh 刷新资讯
GET /api/dashboard/stats 仪表盘统计

数据库表

  • sys_user — 用户表(id, username, password, role, nickname, created_at, updated_at)
  • task — 任务表(id, title, description, status, priority, assignee_id, creator_id, due_date, news_keyword, created_at, updated_at)
  • news — 资讯表(id, title, summary, url, source, keyword, published_at, created_at)

AI 工具使用说明

本项目使用 Claude Code 辅助开发,AI 参与了以下工作:

  • 项目架构设计和规划
  • 全部后端 Java 代码生成(Spring Boot + MyBatis-Plus)
  • 全部前端 Vue 3 代码生成(Element Plus + ECharts)
  • 数据库表结构设计
  • 依赖配置(pom.xml, package.json)

验证方式:所有代码经过 mvn compile 编译验证通过,前端 npm install 无报错。资讯模块调用 Hacker News API 验证通过。

遇到的坑:Spring Security Crypto 未默认包含在 Spring Boot Starter Web 中,需单独添加 spring-security-crypto 依赖才能使用 BCryptPasswordEncoder。

About

一个简单的内部任务管理系统,用于实习生和导师之间分配、跟踪日常任务。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors