版本號 | 說明 |
---|---|
v1.0 | 初步肯定技術路線 |
附Github倉庫:WEDO前端
在主流的前端框架中,咱們調研了Vue、BootStrap、AnguarJS、ReactJS等框架。每一個框架都有各自的優勢,可是考慮到小組成員的前端開發經驗較少,最終選擇了比較容易上手的BootStrap框架。BootStrap框架擁有不少封裝好的UI組件,可以快速地搭建出優質的前端頁面。laravel
在選擇編程語言的時候,拋開適合寫服務器和引擎的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
咱們準備使用LNMP(Linux + Ngnix + MySQL + PHP)的環境。相較於其餘服務器(如Apache),Nginx具備如下兩個優勢:github
可是對於論壇前期的預期運行狀況,還不須要考慮服務器壓力和性能對於系統的影響,而且最開始只有一臺可供使用的服務器。
對於數據庫的選擇,咱們選擇比較經常使用的MySQL。
考慮到服務器上並不須要桌面環境,因此開發環境預計使用CentOS 6.x | 7.x版本。數據庫
項目的具體功能已在項目功能設計書中描述,如下爲項目功能的初步抽象圖:編程
項目具體的前端界面設計已在界面設計計劃書中進行描述。後端
項目後端的路由分發路徑以下圖所示:安全
全部的數據存儲至後端的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 |
目前,系統中預期中的各個部分異常以下圖所示: