# 学生管理系统 **Repository Path**: RicheFactory/student-management-system ## Basic Information - **Project Name**: 学生管理系统 - **Description**: 本项目是一个基于 FastAPI + Vue 3 的学生信息管理系统,采用前后端分离架构,使用 MongoDB 作为数据库。系统实现了学生管理、课程管理、成绩管理等核心功能,提供完整的增删改查操作。系统内置 JWT 用户认证、数据可视化看板(ECharts图表)、专业的后台管理界面(左侧菜单 + Tab标签栏),具备权限控制和路由守卫等安全机制,适合作为课程设计或学习参考。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-18 - **Last Updated**: 2026-05-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学生信息管理系统 一个基于 FastAPI + Vue 3 + MongoDB 的学生信息管理系统课设项目。 ## 📋 项目简介 本项目是一个完整的前后端分离的学生信息管理系统,支持学生信息的增删改查、搜索和分页功能。 ### 主要功能 - ✅ 添加学生信息 - ✅ 编辑学生信息 - ✅ 删除学生信息 - ✅ 查询学生列表(支持分页) - ✅ 搜索学生(姓名/学号/专业) - ✅ 数据验证和错误处理 ## 🛠️ 技术栈 ### 后端 - **FastAPI** - Python Web 框架 - **Motor** - MongoDB 异步驱动 - **Pydantic** - 数据验证 - **MongoDB** - 数据库 ### 前端 - **Vue 3** - 前端框架 - **TypeScript** - 类型安全 - **Element Plus** - UI 组件库 - **Axios** - HTTP 客户端 - **Vite** - 构建工具 ## 📦 安装步骤 ### 1. 环境要求 - Python 3.8+ - Node.js 16+ - MongoDB 4.4+ ### 2. 安装后端依赖 ```bash # 进入项目根目录 cd D:\devSoftware\dev_python\pythonProject\class_work # 安装 Python 依赖 pip install -r requirements.txt ``` ### 3. 安装前端依赖 ```bash # 进入前端目录 cd class_frontend # 安装 Node 依赖 npm install ``` ### 4. 配置 MongoDB 确保 MongoDB 服务已启动,默认连接地址: ``` mongodb://localhost:27017 ``` 如需修改,编辑 `.env` 文件: ```env MONGO_URL=mongodb://localhost:27017 MONGO_DB_NAME=student_management ``` ## 🚀 运行项目 ### 方式一:使用启动脚本(推荐) 双击运行 `start.bat`,将自动启动后端和前端服务。 ### 方式二:手动启动 #### 启动后端 ```bash python -m uvicorn main:app --reload --host 0.0.0.0 --port 8000 ``` #### 启动前端 ```bash cd class_frontend npm run dev ``` ## 🌐 访问地址 - **前端页面**: http://localhost:5173 - **后端API**: http://localhost:8000 - **API文档**: http://localhost:8000/docs (Swagger UI) - **健康检查**: http://localhost:8000/health ## 📁 项目结构 ``` class_work/ ├── app/ # 后端代码 │ ├── config/ # 配置文件 │ │ ├── settings.py # 应用配置 │ │ └── database.py # 数据库连接 │ ├── models/ # 数据模型 │ │ └── student.py # 学生模型 │ └── routes/ # API路由 │ └── students.py # 学生相关API ├── class_frontend/ # 前端代码 │ ├── src/ │ │ ├── api/ # API调用 │ │ │ ├── request.ts # Axios配置 │ │ │ └── student.ts # 学生API │ │ ├── types/ # TypeScript类型 │ │ │ └── student.ts # 学生类型定义 │ │ ├── components/ # 组件 │ │ │ └── StudentForm.vue # 学生表单 │ │ ├── views/ # 页面 │ │ │ └── StudentList.vue # 学生列表 │ │ ├── router/ # 路由配置 │ │ └── main.ts # 入口文件 ├── main.py # FastAPI入口 ├── requirements.txt # Python依赖 ├── .env # 环境变量 └── start.bat # 启动脚本 ``` ## 🔌 API 接口 ### 学生管理 API | 方法 | 路径 | 描述 | 参数 | |------|------|------|------| | POST | `/api/students/` | 创建学生 | 学生信息对象 | | GET | `/api/students/` | 获取学生列表 | skip, limit, search | | GET | `/api/students/{id}` | 获取单个学生 | 学生ID | | PUT | `/api/students/{id}` | 更新学生信息 | 学生ID, 更新数据 | | DELETE | `/api/students/{id}` | 删除学生 | 学生ID | ### 请求示例 **创建学生** ```bash curl -X POST "http://localhost:8000/api/students/" \ -H "Content-Type: application/json" \ -d '{ "name": "张三", "student_id": "2024001", "age": 20, "gender": "男", "major": "计算机科学", "phone": "13800138000", "email": "zhangsan@example.com" }' ``` **查询学生列表** ```bash curl "http://localhost:8000/api/students/?skip=0&limit=10&search=计算机" ``` ## 📝 注意事项 1. **MongoDB必须启动**:运行项目前请确保 MongoDB 服务已启动 2. **端口占用**:后端使用 8000 端口,前端使用 5173 端口 3. **跨域配置**:开发环境允许所有来源访问,生产环境需修改 CORS 配置 4. **学号唯一性**:系统会自动检查学号是否重复 ## 🎓 课设说明 本项目适合作为课程设计,包含以下技术要点: - 前后端分离架构 - RESTful API 设计 - MongoDB 数据库操作 - 异步编程 - 数据验证 - 分页和搜索功能 - 响应式 UI 设计 ## 📄 许可证 MIT License --- **开发者**: 学生信息管理系统项目 **日期**: 2026年5月