# TeachEvalPro **Repository Path**: limou3434/teach-eval-pro ## Basic Information - **Project Name**: TeachEvalPro - **Description**: "TeachEvalPro",这个名称结合了"Teach"(教学)和"Eval"(评估),表达了这个系统的主要功能。同时,加上"Pro"表示这是一个专业的评教系统,专为老师提供教学帮助。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-29 - **Last Updated**: 2024-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TeachEvalPro ## 1.项目介绍 `TeachEvalPro`,这个名称结合了 `Teach`(教学)和 `Eval`(评估),表达了这个系统的主要功能。同时,加上 `Pro` 表示这是一个专业的评教系统,专为老师提供教学帮助。 ## 2.需求分析 根据和老师的讨论和分析,大致得到以下需求和项目分析: **根据学生成绩和课程要求,生成达成度分析报告,辅助教师调整教学任务。** 因此我将这个项目定义为一个: 1. 基于 `Excel` 表格读取数据 2. 然后使用 `python` 和某些库、模块的特性分析数据得到结果 3. 再根据结果得到可视化数据图表和分析结果 `word/pdf` 文档 的偏向脚本的小型程序。 ## 3.技术要求 根据上述的需求分析,我至少需要一些比较基础的库: - **涉及到文件的操作**:推荐使用 [pathlib](https://docs.python.org/3/library/pathlib.html#pure-paths) 库 - **涉及分析 Excel 文档**:应使用类似 [openpyxl](https://openpyxl.readthedocs.io/en/stable/tutorial.html) 库 - **涉及到 Word 操作**:推荐私用 [python-docx](https://python-docx.readthedocs.io/en/latest/) 库 - **涉及到图标分析**:前期推荐使用 [matplotlib](https://matplotlib.org/stable/users/index.html) 库 - **涉及到字符匹配**:推荐使用正则表达式库 [re](https://docs.python.org/zh-cn/3/library/re.html#) 库 - **涉及到 UI 界面**:一方面是暂时还没有推荐的库,另一方面是暂时没有 `UI` 的设计经验(可以设计出一系列的接口,后期交给懂 `UI` 的人来调用和设计) - **涉及到数据计算**:可能需要使用一些数学库,但是由于我们的数据其实并不复杂,只是需要一些简单的平均数和除法计算,因此暂时不花太多功夫来查找数学库(自己封装一些计算方法就行) ## 4.所需软件 下载 `git` 和 `vscode`(如果你的 `python` 代码开发软件不在 `vscode` 上,则无需下载直接继续使用您现有的开发软件即可),这两个如果不会安装可以直接找在微信上问(如果不会使用这两个软件也在微信里直接问)。 > 补充:由于网速原因,可以直接到 [这个地址](https://gitee.com/limou3434/limou-c-test-code/tree/master/%E8%BD%AF%E4%BB%B6%E8%B5%84%E6%BA%90%E5%8C%85) 获取安装包,如果您的网速不错,直接到官方网址下载即可。 > > 1. [git 官方网址](https://git-scm.com/download) > 2. [vscode 官方网址](https://code.visualstudio.com/Download) 此外,还使用到了 `Linux` 下的 `MySQL` 数据库。 ## 5.代码规范 ### 5.1.关于代码编写的规范 主要是关于 `python` 编码的一些规范,详情见 [项目编码规范](./项目编码规范.md)。 该规范我是借鉴 `Google` 开源项目规范文档的,去除了一些我们短期用不到的规范,如果出现了新的规范问题再来补充(当然,我建议直接看 [原文](https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/#)...) ### 5.2.关于代码推送的规范 暂时不使用 `git` 来推送代码,一是我们无法保证每一个人对 `git` 足够熟习,二是前期代码量不大。 1. 先使用 `gitee` 结合 `git` 把存放在 `gitee` 的代码克隆到本地电脑中 2. 每个人在本地电脑经过自己开发后,发送修改部分的代码文件到 `qq` 邮箱 `898738804@qq.com` 中(如果代码量及其改动不大就可以使用微信传送,简单点,不用搞太复杂) 3. 在经过修改和投票,整合成一个完整的代码项目,然后进行进一步的测试和新的任务分发 > 补充:如果后期项目变大再考虑使用 `git` 推送的问题(目前 gitee 上的远端仓库由项目发起人维护)... ## 6.安装教程 目前是直接复制源码,项目并没有没有开始打包,也没有打通网络服务。 ## 7.使用说明 由于目前还没有打包软件,只能直接下载对应的 `python` 库来运行。 ## 8.参与贡献 | 次序 | 姓名(不分先后) | 邮箱 | | ---- | -------------- | ------------------- | | 1 | `ljp`(计科) | `898738804@qq.com` | | 2 | `lhb`(计科) | `2837883168@qq.com` | | 3 | `lxt`(网新) | `2026986973@qq.com` | | 4 | `zsh`(计科) | `1619382695@qq.com` | | 5 | `zqr`(计科) | `3582461651@qq.com` | | 6 | `wyf`(软工) | `692148194@qq.com` | ## 9.项目原理 如果可以,将项目改写为 `B/S` 模型或者 `C/S` 模型,那么我们到时候就一定需要一个 `Linux` 服务器(这也意味着代码需要一定的可移植性)。 > 1. **B/S 结构(Browser/Server)**: > * 在 `B/S` 结构中,用户通过 `Web` 浏览器(客户端)访问应用程序,而应用程序的逻辑和数据存储在远程服务器上。 > * 客户端主要负责展示数据和内容,并向服务器发送请求。大部分的计算和数据处理都在服务器端完成。 > * `B/S` 结构通常更灵活,因为它允许应用程序在多个平台上运行,只要这些平台支持 `Web` 浏览器。 > 2. **C/S 平台(Client/Server)**: > * 在 `C/S` 平台中,客户端应用程序通常是一个独立的软件,用户需要在自己的设备上安装这个客户端软件。 > * 客户端负责处理用户界面和交互,并向服务器发送请求,服务器返回数据和结果。 > * `C/S` 平台通常更适合需要大量本地计算或者与本地硬件设备交互的应用程序,例如图形设计软件、游戏等。 而如果选择 `B/S` 模型,可能需要一些前端知识,若是选择 `C/S` 模型,可能需要有套接字编程的功底... 首先给出一个简要的后端流程图分析,这是程序的基本处理逻辑: ![1708072439907](./assets/1708072439907.jpg) 而前后端展示图预期如下: ![image-20240311092557886](./assets/image-20240311092557886.png) 其中数据库建表结构如下: ```sql # sql 表结构 create table course_table ( course_id int auto_increment primary key, course_name varchar(255), course_size int, course_time varchar(255), course_teach varchar(255), course_credit int, course_credit_hour int ); ```