【我和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核心深度融合華為在資料庫領域多年的經驗,結合企業級場景需求,持續構建競爭力特性。