[V1-Team] WEDO創意論壇技術規格說明書

WEDO 創意論壇技術規格說明書

0x0 文檔版本

版本號 說明
v1.0 初步肯定技術路線

附Github倉庫:WEDO前端


0x1 技術說明

1. 前端框架

  在主流的前端框架中,咱們調研了Vue、BootStrap、AnguarJS、ReactJS等框架。每一個框架都有各自的優勢,可是考慮到小組成員的前端開發經驗較少,最終選擇了比較容易上手的BootStrap框架。BootStrap框架擁有不少封裝好的UI組件,可以快速地搭建出優質的前端頁面。laravel

2. 後端框架

  在選擇編程語言的時候,拋開適合寫服務器和引擎的C++以及適合高併發場景下的Go,咱們討論並分析了Java、Python、PHP三種語言,分別對應Django、SSM(Spring+SpringMVC+MyBatis)和PHP框架。
  咱們小組的開發部門有成員有使用Spring開發的經驗。可是由於SSM的學習成本相對較高,須要從Servlet開始,而且一開始上手使用Hibernate或者MyBtis比較麻煩,因而排除了Java。
  根據對PHP的調研,世界上超過80%的網站的搭建都使用到了PHP,基本上大部分論壇以及電商的網站功能,都能使用PHP7實現;另外一方面看,PHP7的性能提高了不少,適合於API的開發。同時因爲組裏開發人員對Python後端開發以及在Django框架下的開發不熟悉,咱們小組決定使用PHP(世界上最好的語言)做爲咱們小組後端的編程語言。
  有關PHP的開發框架,通過對laravel和ThinkPHP兩框架的調研後。咱們初步肯定最後使用Laravel框架。其主要緣由是在Lavarel中內置了大量的API供開發者使用,在實際應用中更加貼近面向對象的開發方式。並且Laravel框架擁有大量的中文文檔做爲參考:Laravel中文社區。另外,從網絡安全的角度來看,Laravel更勝一籌。git


0x2 服務器平臺搭建

  咱們準備使用LNMP(Linux + Ngnix + MySQL + PHP)的環境。相較於其餘服務器(如Apache),Nginx具備如下兩個優勢:github

  1. 反向代理,可以實現請求的分發,以及對於用戶的後臺不可見性。
  2. 可以實現負載均衡。這有助於後期對於大流量用戶狀況的適應。

  可是對於論壇前期的預期運行狀況,還不須要考慮服務器壓力和性能對於系統的影響,而且最開始只有一臺可供使用的服務器。
  對於數據庫的選擇,咱們選擇比較經常使用的MySQL
  考慮到服務器上並不須要桌面環境,因此開發環境預計使用CentOS 6.x | 7.x版本。數據庫


0x3 項目技術設計

項目功能抽象

  項目的具體功能已在項目功能設計書中描述,如下爲項目功能的初步抽象圖:編程

前端界面設計

  項目具體的前端界面設計已在界面設計計劃書中進行描述。後端

後端實現設計

路由路徑設計

  項目後端的路由分發路徑以下圖所示:安全

數據信息存儲

  全部的數據存儲至後端的MySQL數據庫中。數據在數據庫的組織方式以下圖所示:前端框架

  各數據的詳細類型及規定以下表所示:服務器

數據表名 屬性名 屬性類型 是否爲主屬性
User uid int(8) Yes
user_name varchar(32)
password varchar(256)
user_kind int(8)
user_regTime timestamp
user_email varchar(32)
user_info varchar(128)
Project pid int(8) Yes
project_name varchar(32)
project_kind int(8)
project_createTime timestamp
project_progress int(4)
project_info varchar(512)
Workgroup gid int(8) Yes
group_name varchar(32)
group_regTime timestamp
group_kind int(8)
Comment cid int(8) Yes
pid int(8)
uid int(8)
comment_time timestamp
comment_info varchar(256)
comment_thumbs_up int(8)
Reply rid int(8) Yes
cid int(8)
uid int(8)
reply_time timestamp
reply_info varchar(256)
reply_thumbs_up int(8)
ProjectOwner pid int(8) Yes
uid int(8)
ProjectDeveloper pid int(8) Yes
gid int(8)
WorkgroupMember gid int(8) Yes
uid int(8) Yes
UserLabel uid int(8) Yes
user_label int(8) Yes
WorkgroupLabel gid int(8) Yes
group_label int(8) Yes

異常處理

  目前,系統中預期中的各個部分異常以下圖所示:

相關文章
相關標籤/搜索