# CoEval **Repository Path**: bigiver/CoEval ## Basic Information - **Project Name**: CoEval - **Description**: 简易课程评价系统,用于数据库课设 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-28 - **Last Updated**: 2025-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 课程评价系统 本系统基于 **FastAPI** + **MySQL**,实现了学生课程评价、教师评价查看、管理员数据管理等功能,前后端分离,前端为原生HTML/JS/CSS。 --- ## 目录结构 ``` . ├── backend/ # 后端服务 │ ├── app/ │ │ ├── main.py # FastAPI应用入口 │ │ ├── config.py # 配置 │ │ ├── models/ # 数据模型 │ │ ├── routers/ # API路由(student/teacher/admin/auth) │ │ └── utils/ # 工具(认证、数据库、响应等) │ └── requirements.txt # 后端依赖 ├── frontend/ │ ├── index.html # 登录页 │ ├── js/ # 各角色JS逻辑 │ ├── css/ # 样式 │ └── pages/ # 各角色页面 ├── database/ │ ├── init_manual.py # 一键初始化数据库脚本 │ ├── procedures.sql # 存储过程 │ ├── triggers.sql # 触发器 │ └── views.sql # 视图 └── test/ ├── test_auth.py # 认证相关测试 ├── test_student.py # 学生端测试 ├── test_teacher.py # 教师端测试 └── test_admin.py # 管理员端测试 ``` --- ## 技术栈 - **后端**:FastAPI、mysql-connector-python、python-jose、passlib、pydantic - **数据库**:MySQL 8.0+ - **前端**:HTML、CSS、JavaScript、Bootstrap 5、jQuery - **测试**:pytest --- ## 安装与启动 ### 1. 安装依赖 ```bash cd backend pip install -r requirements.txt ``` ### 2. 初始化数据库 ```bash cd database python init_manual.py ``` > 默认数据库连接配置在`init_manual.py`中(host=localhost, user=root, password=abc123),如有需要请自行修改。 ### 3. 启动后端服务 ```bash cd backend uvicorn app.main:app --reload ``` > 默认监听 http://localhost:8000 ### 4. 启动前端页面 推荐直接用VSCode Live Server、Python http.server,或直接用浏览器打开`frontend/index.html`。 --- ## 账号说明 - **学生**:S001 / 123456 - **教师**:T001 / 123456 - **管理员**:admin / admin123 --- ## 主要功能 ### 学生端 - 登录、查看已选课程 - 课程评价(打分+评语) - 查看历史评价 ### 教师端 - 登录、查看所授课程 - 查看课程评价详情 - 统计分析(平均分、分布等) ### 管理员端 - 登录、管理所有用户/课程/班级 - 选课管理 - 数据统计 --- ## 数据库结构 - 角色表(Role) - 学生表(Student) - 教师表(Teacher,含管理员,RoleID=3) - 课程表(Course) - 教学班表(Class) - 学生选课表(StudentClass) - 评价表(Evaluation) > 详细结构见`database/init_manual.py`和各SQL文件。 --- ## API文档 - 启动后访问 [http://localhost:8000/docs](http://localhost:8000/docs) 查看Swagger自动文档 --- ## 测试 ```bash cd test pytest ``` --- ## 常见问题 - **管理员账号在教师表,RoleID=3** - **数据库初始化失败**:请检查MySQL服务、账号密码、权限 - **端口冲突**:可修改uvicorn启动端口 - **前端跨域**:开发环境建议用同源端口或配置CORS --- ## 贡献 欢迎PR和Issue! ---