# educational **Repository Path**: hellogitee990/educational ## Basic Information - **Project Name**: educational - **Description**: 教务系统 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-20 - **Last Updated**: 2025-07-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 教务管理系统 基于 NestJS + MySQL + Vue 的教务管理系统,支持三种角色:管理员、老师、学员。 ## 功能特性 ### 管理员 - 直接登录系统 - 管理老师和学员账号 - 对课程进行 CRUD 操作 - 修改学员成绩 - 拥有所有权限 ### 老师 - 注册账号(需要手机号或邮箱验证) - 创建和管理课程 - 对学员选修的课程进行打分和评价 ### 学员 - 注册账号(需要手机号或邮箱验证) - 选课功能 - 查看自己的课程分数和老师评价 ## 技术栈 - **后端**: NestJS + TypeORM + MySQL 9 - **前端**: Vue 3 + Element Plus - **认证**: JWT - **数据库**: MySQL (用户: root, 密码: root) ## 快速开始 ### 1. 安装依赖 ```bash # 后端依赖 npm install # 前端依赖 cd frontend npm install ``` ### 2. 数据库设置 确保 MySQL 服务运行,然后执行初始化脚本: ```bash mysql -u root -p < init-db.sql ``` ### 3. 启动服务 ```bash # 启动后端服务 (端口 3000) npm run start:dev # 启动前端服务 (端口 8080) cd frontend npm run dev ``` ## 前端特性 ### 🎨 高端优雅设计 - **现代化 UI**: 采用毛玻璃效果、渐变色彩和流畅动画 - **响应式设计**: 完美适配桌面端和移动端 - **深色主题**: 支持深色模式切换 - **优雅交互**: 丰富的过渡动画和悬停效果 ### 🚀 技术亮点 - **Vue 3 Composition API**: 现代化的组件开发方式 - **Element Plus**: 企业级 UI 组件库 - **Pinia**: 轻量级状态管理 - **Vite**: 极速的构建工具 - **SCSS**: 强大的样式预处理器 ### 📱 页面功能 - **登录/注册页**: 精美的认证界面,支持角色选择 - **仪表盘首页**: 个性化欢迎页面,快速操作入口 - **课程管理**: 课程 CRUD,支持筛选和搜索 - **成绩管理**: 成绩录入、编辑和统计分析 - **用户管理**: 用户状态管理和权限控制 - **个人中心**: 个性化设置和信息管理 ### 🎯 用户体验 - **智能路由**: 基于角色的路由守卫 - **实时反馈**: 操作成功/失败的即时提示 - **数据可视化**: 直观的统计图表和进度显示 - **快捷操作**: 一键选课、批量操作等便民功能 ## API 接口 ### 认证接口 - `POST /auth/register` - 用户注册 - `POST /auth/login` - 用户登录 ### 用户管理 - `GET /users` - 获取所有用户 (管理员) - `GET /users/teachers` - 获取所有老师 (管理员) - `GET /users/students` - 获取所有学生 (管理员/老师) ### 课程管理 - `POST /courses` - 创建课程 (管理员/老师) - `GET /courses` - 获取所有课程 - `GET /courses/my-courses` - 获取我的课程 (老师) - `PUT /courses/:id` - 更新课程 (管理员/老师) - `DELETE /courses/:id` - 删除课程 (管理员/老师) ### 成绩管理 - `POST /grades` - 创建成绩 (管理员/老师) - `GET /grades/my-grades` - 获取我的成绩 (学生) - `GET /grades/course/:courseId` - 获取课程成绩 (管理员/老师) - `POST /grades/enroll/:courseId` - 选课 (学生) - `PUT /grades/:id` - 更新成绩 (管理员/老师) ## 默认账户 - **管理员**: admin / admin123 ## 项目结构 ``` ├── src/ │ ├── auth/ # 认证模块 │ ├── user/ # 用户模块 │ ├── course/ # 课程模块 │ ├── grade/ # 成绩模块 │ └── common/ # 公共模块 ├── frontend/ # 前端代码 └── init-db.sql # 数据库初始化脚本 ```