【我和openGauss的故事】openGauss获奖项目讲解

语言: CN / TW / HK

前言

2022年8月30日华为鲲鹏应用大赛openGauss赛道上海赛区第三名获奖作品开源分享,我们团队参加本次比赛的时候想了很多方案,但是最终还是决定用自己最擅长的项目

参赛方案介绍

系统实现学生在线考试管理的基本功能,包括学生登录、查看自己的个人信息及考试信息;提供了在线考试的界面;后台管理员有管理员添加学生、管理学生、管理成绩、添加课程、添加题库题目和组建试卷等功能。本次的学生在线考试管理系统采用Python Django做后端、前端框架采用Bootstrap4实现,实现学生考试的动态管理,使得对信息的管理更加及时、高效,提高了效率。同时还对系统的开发原理、功能特点和设计方案进行了介绍。关键词:考试管理 openGuass数据库 Python Django Web

系统需求分析

系统需求分析
(1)学生用户是主要的需求者,主要需求功能是查看当前自己的考试信息、查看考试成绩并可导出以及进行在线考试等。
(2)教师用户主要需求功能是为自己所教授的课程组建题库和相对应的试卷,并可以查看学生的考试信息等。
(3)管理员用户的功能需求较为复杂,包括对学生信息、教师信息、考试信息进行管理。

主要功能模块

(1)用户登录:实现简单的登录及验证
(2)个人信息展示:展示考生个人信息
(3)考试管理:展示可以考试的试卷,考试及自动计算考试成绩。
(4)考试成绩管理:展示考试结果、导出考试信息
(5)后台基础数据管理:试卷,试题,考生等信息更新维护。
在这里插入图片描述

设计思路

设计思路
系统设计包括三部分:数据库设计,功能函数视图设计,前端页面设计
数据库设计
根据对系统需求分析,得出该考试管理系统大致需要六个实体,他们的实体属性如下图所示:

在这里插入图片描述

根据上面的实体联系图可以得出以下几个表:

学院表:Academy
专业表:Major
课程表:Course
学生表:Student
题库表:QuestionBank
试卷表:TestPaper
学生成绩表:Record

1.学院—序号、名称
2.专业—序号、名称
3.课程—课程号、课程名
4.学生—学号、密码、姓名、性别、班级、邮箱
5.试卷—标题、科目、使用专业、考试时常、开始时间
6.题库—序号、专业、科目、备选项、题目、答案、难度、分值、题目类型

在这里插入图片描述

字段基本数据分析

在这里插入图片描述

页面及功能设计

1、登录页面:
其中需要登录,校验,登录后同时需要存储用户信息在Session中,以备登录后的页面使用。
2、首页(考试信息页):
页面需要显示当前用户可以参考的考试试卷信息,在此页面点击开始考试可以跳转到考试页面。
3、考试页面:
展示对应试卷的题目和选项信息,同时可以进行答题,交卷后可以自动计算考试分数并存入数据库。
4、成绩显示页面:
展示对应考试的考试结果
5、后台管理:
用于管理我们的专业,考生,试卷,题库等基础信息,为了快速实现系统将直接启用Django自带的Admin管理功能。
6、个人详情:
用于展示个人详情信息。
在这里插入图片描述

功能函数视图设计

功能函数视图设计
学生在线考试系统是实现学生在线考试、查看相关信息的一个平台,整个学生在线考试系统共分为3个大模块:管理员模块,学生模块和公有模块,其中复杂的方法和模块的详细设计流程图如下。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

技术亮点及优势

openGuass是基于PostgreSQL9.2版本开发的,基本包括了PostgreSQL9.4的功能。所以可以采用连接postgresql的方式连接openGauss数据库。

django项目下的setting中的DATABASES下进行以下配置:

DATABASES = {
   
'default': {
   
# 'ENGINE': 'django.db.backends.sqlite3',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres', #数据库名
'USER': 'andy', #用户名
'PASSWORD': 'xxxxxxx', #密码
'HOST': 'xxx.xxx.xxx.xxx',#虚拟机ip
'PORT': xxxx #openGauss数据口的端口
}
}

Django项目框架搭建起来后,我们所有对系统的前后台所有的程序开发都可以在这个项目中进行了,一个典型的Django项目模块功能的开发包括如下几个步骤:
(1)创建app
(2)注册app
(3)定义模型
(4)定义视图函数
(5)配置访问路由URL
(6)静态资源准备及配置
(7)前端模板开发
(8)测试及运行

商业模式及市场前景

国外数据库占据国内大部分市场,关注国际局势的每个人都明白,核心技术掌握在自己手里的重要性,所以说我们要提倡使用属于我们自己的核心技术,这对于我们是很重要的!

在这里插入图片描述

功能测试

登录测试
在这里插入图片描述

查询测试

在这里插入图片描述

考试测试

在这里插入图片描述

数据库信息查询测试

在这里插入图片描述

项目总结

我们团队通过这次openguass开发,进一步掌握数据库的方法和技术,提高软件开发的实际能力,培养设计能力和综合分析、解决问题的能力。
学习和实践了分析和设计软件系统的各种知识,包括面向对象的系统分析与设计,编码和测试方面的知识。
熟悉了如何根据实际需要分析实体关系,画出ER图从而设计出符合要求的数据库表。
学习和实践的数据库的增删改查功能在具体功能开发中的使用。
熟悉了openGuass数据库的相关操作。

作者:企鹅圈

openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。