技術規格說明書

項目技術規格說明書

簡述

網站總體結構

數據庫技術

在alpha階段,咱們使用sqlite做爲數據庫。在beta階段時,咱們將其移植到MySQL。前端

前端技術

前端框架咱們打算繼續沿用以前項目所採用的bootstrap框架,對頁面進行完善和重構設計。以前項目中所採用的部分JavaScript能夠繼續使用,在此基礎上進行更多JavaScript的編寫。mysql

後端技術

這個項目是接手學長的項目,考慮到該項目的後端框架使用的是Django,咱們也沒有理由更換新的框架。
不只如此Django具備如下特色:web

  • 功能完善、要素齊全:該有的、能夠沒有的都有,自帶大量經常使用工具和框架,無須你自定義、組合、增刪及修改。
  • 完善的文檔:通過十多年的發展和完善,Django有普遍的實踐案例和完善的在線文檔。開發者遇到問題時能夠搜索在線文檔尋求解決方案。
  • 強大的數據庫訪問組件:Django的Model層自帶數據庫ORM組件,使得開發者無須學習其餘數據庫訪問技術(SQL、pymysql、SQLALchemy等)。
  • 靈活的URL映射:Django使用正則表達式管理URL映射,靈活性高。新版的2.0,進一步提升了URL編寫的優雅性。
  • 豐富的Template模板語言:相似jinjia模板語言,不但原生功能豐富,還能夠自定義模板標籤,而且與其ORM的用法很是類似。
  • 自帶後臺管理系統admin:只須要經過簡單的幾行配置和代碼就能夠實現一個完整的後臺數據管理控制平臺。
  • 完整的錯誤信息提示:在開發調試過程當中若是出現運行錯誤或者異常,Django能夠提供很是完整的錯誤信息幫助定位問題。

前端技術規格

前端分爲主頁,登錄界面,註冊界面,我的信息,搜索結果頁面,課程信息頁面,評論頁面七個部分。主頁、登陸、註冊和我的信息將常駐,各個頁面都可點擊查看。其具體關係以下圖:正則表達式

後端技術規格

數據庫結構規格

數據庫ER圖以下所示:sql

接口規格

接口名 模式 傳入需求 傳出內容 說明
sign_up POST 至少包含 username, password, mail 三個鍵 {'status':1,'length':1,'body':{'message': "新建用戶{0}成功".format(username)},errMsg='',} 註冊
update_user POST 必須包含username, role, gender, selfintroduction {'status':1,'length':1,'body':{'message': "用戶{0}信息更新成功".format(username)},errMsg='',} 更新用戶信息
search_teacher GET 教師姓名,空爲任意教師 {'status': 1,'length': len(teacher_list),'body': retlist,errMsg=""} retlist=[{'name': self.name, 'website': self.website,'title': self.title},...]
search_course GET 同上,搜索課程 {'status': 1,'length': len(course_list),'body': retlist,errMsg=""} retlist=[{'name': self.name, 'website': self.website,'course_ID': self.course_ID,'description': self.description,'course_type': self.course_type,'credit': self.credit},...]
search_user GET 同上,搜索用戶 {'status': 1,'length': len(user_list),'body': retlist,errMsg=""} retlist=[{'username': self.username,'mail': self.mail,'role': self.role, 'gender': self.gender,'self_introduction': self.self_introduction},...]
add_teacher POST 包含新增教師的一些信息,至少包括name,title鍵,website鍵可選 {'status': 1,'length': 1,'body': {'message': "新建教師{0}成功".format(name) }}或失敗 增長教師信息
add_course POST 包含新增課程的一些信息,包括如下鍵:name:名字 website:網站 courseID:ID description:描述 courseType:類型 credit:學分 {'status': 1, 'length': 1,'body': {'message': "新建課程{0}成功".format(name)}} 增長課程信息
add_teachCourse POST 包含新增課程的一些信息,包括如下鍵: teacherList 教師列表 course 課程列表 department 部門列表 {'status': 1,'length': 1, 'body': {'message': "新建授課信息成功"}} 增長教師授課信息
make_comment POST username,course_ID,content 成功:{'status':1,'length':1,'body':{'message': "評論發佈成功".format(username)},errMsg='',}失敗:{'status'=-1} 發表評論
get_comment GET course_ID 在body中返回一個list,每項包含rdict['username']=i.user.username,rdict['content']=i.comment.content ,rdict['editTime']=i.comment.edit_time,rdict['createTime']=i.comment.create_time,rdict['commentID']=i.id 得到評論信息
edit_comment POST comment_ID,content {'status': 0,'length': 1, 'body':{'username':username}} 編輯評論
sign_in POST 至少包含 username, password 兩個鍵 {'status': 0,'length': 1,'body':{'username':username}} 用戶登錄
update_teacher POST 包含修改教師的一些信息 成功:{'status':1,'length':1,'body':{'message': "教師{0}信息更新成功".format(username)},errMsg='',}失敗:{'status'=-1} 更新教師信息
update_course POST 包含修改課程的一些信息 成功:{'status':1,'length':1,'body':{'message': "課程{0}信息更新成功".format(username)},errMsg='',}失敗:{'status'=-1} 更新課程信息
update_teachCourse POST 包含修改教師授課的一些信 成功:{'status':1,'length':1,'body':{'message': "授課信息{0}信息更新成功".format(username)},errMsg='',}失敗:{'status'=-1} 更新教師授課信息
select_course POST 學生id,選課(教師授課)id 成功:{'status':1,'length':1,'body':{'message': "添加課程關注成功".format(username)},errMsg='',}失敗:{'status'=-1} 學生選課
unselect_course POST 學生id,退課(教師授課)id 成功:{'status':1,'length':1,'body':{'message': "移除關注成功".format(username)},errMsg='',}失敗:{'status'=-1} 學生退課
rank_course POST 學生評價課程(分數,兩個ID) 成功:{'status':1,'length':1,'body':{'message': "評分更新成功".format(username)},errMsg='',}失敗:{'status'=-1} 學生評價課程
get_rank GET 目標課程ID 成功:{'status':1,'length':1,'body':{‘rank’:評分},errMsg='',}失敗:{'status'=-1} 得到某節課的成績
相關文章
相關標籤/搜索