

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本 科 生 畢 業(yè) 論 文</p><p> 題 目:基于web 2.0的大學(xué)城活動(dòng)信息共享系統(tǒng)</p><p> 院 系: 軟件學(xué)院 </p><p> 專 業(yè): 軟件工程(電子政務(wù))</p><p> 學(xué)生姓名: 朱君梅 </p&g
2、t;<p> 學(xué) 號(hào): 11331447 </p><p> 指導(dǎo)教師: 路永和(副教授) </p><p><b> 二〇一五年 三 月</b></p><p> 畢業(yè)論文(設(shè)計(jì))開(kāi)題報(bào)告</p><p> 附表二、畢業(yè)論文過(guò)程檢查情況記錄表</p&g
3、t;<p> 附表三、畢業(yè)論文答辯情況</p><p><b> 學(xué)術(shù)誠(chéng)信聲明</b></p><p> 本人所呈交的畢業(yè)論文,是在導(dǎo)師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果,所有數(shù)據(jù)、圖片資料均真實(shí)可靠。除文中已經(jīng)注明引用的內(nèi)容外,本論文不包含任何其他人或集體已經(jīng)發(fā)表或撰寫過(guò)的作品或成果。對(duì)本論文的研究作出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確的
4、方式標(biāo)明。本畢業(yè)論文的知識(shí)產(chǎn)權(quán)歸屬于培養(yǎng)單位。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。</p><p> 本人簽名:朱君梅 日期:2015年4月6日 </p><p><b> 摘 要</b></p><p> 大學(xué)城是許多所大學(xué)集中進(jìn)行資源共享的地方,就廣州大學(xué)城而言,在十
5、年間,廣州大學(xué)城的校際交流變得日漸豐富,隨著互聯(lián)網(wǎng)的發(fā)展,這種校際交流變得多元化,校際活動(dòng)的可行性也越來(lái)越大,但校際活動(dòng)的宣傳渠道卻比較缺乏。“IslandClub”大學(xué)城活動(dòng)信息共享系統(tǒng)是基于web 2.0開(kāi)發(fā)的,web 2.0以去中心化、開(kāi)放、共享為顯著特征。針對(duì)大學(xué)城社團(tuán)活動(dòng)的情況,本系統(tǒng)提供了一個(gè)良好的信息發(fā)布、資源共享、信息匯總的平臺(tái)。本系統(tǒng)實(shí)現(xiàn)了以用戶為中心的設(shè)計(jì),整合了社團(tuán)與學(xué)生,學(xué)生可以根據(jù)自己的喜好加入、關(guān)注社團(tuán)及報(bào)名
6、、收藏活動(dòng),社團(tuán)可以通過(guò)這個(gè)系統(tǒng)來(lái)宣傳活動(dòng)信息,實(shí)現(xiàn)學(xué)生與社團(tuán)之間的雙向交流。系統(tǒng)的主要功能有:發(fā)布活動(dòng)、報(bào)名參加活動(dòng)、收藏活動(dòng)、關(guān)注社團(tuán)、加入社團(tuán)等。</p><p> 本系統(tǒng)是根據(jù)面向?qū)ο蠓治龊驮O(shè)計(jì)的思想進(jìn)行分析設(shè)計(jì)開(kāi)發(fā)的。本系統(tǒng)采用MVC設(shè)計(jì)模式和UML建模工具進(jìn)行設(shè)計(jì),利用PHP動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)語(yǔ)言進(jìn)行開(kāi)發(fā),以MySql作為后臺(tái)數(shù)據(jù)庫(kù),在WAMP集成開(kāi)發(fā)環(huán)境下進(jìn)行開(kāi)發(fā),采用meekrodb第三方庫(kù)作為PHP
7、與數(shù)據(jù)庫(kù)的接口,h2o作PHP模板引擎,用bootstrap作為前端開(kāi)發(fā)框架,同時(shí)使用AJAX創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)來(lái)實(shí)現(xiàn)系統(tǒng)中關(guān)注、加入和報(bào)名、收藏功能。目前本系統(tǒng)搭建在新浪云平臺(tái)上進(jìn)行試用。本文分7個(gè)部分,第一部分介紹了系統(tǒng)開(kāi)發(fā)的背景意義、現(xiàn)狀分析、目標(biāo)范圍;第二部分介紹了系統(tǒng)開(kāi)發(fā)所涉及的技術(shù)原理;第三部分介紹了系統(tǒng)的需求建模;第四部分介紹了系統(tǒng)主要模塊的設(shè)計(jì);第五部分介紹了接口和部分模塊的實(shí)現(xiàn);第六部分介紹了系統(tǒng)的部署和應(yīng)用;第七部
8、分對(duì)本系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)進(jìn)行了總結(jié)。</p><p> 關(guān)鍵詞:信息共享;web2.0;PHP;UML建模</p><p><b> Abstract</b></p><p> Higher Education Mega Center is the place that gathers many colleagues to share the
9、 resource, such as Guangzhou Higher Education Mega Center, the intercollegiate exchanges become more and more rich and colorful in Guangzhou Higher Education Mega Center in the past 10 years, with the development of the
10、Internet, the intercollegiate exchanges become pluralistic and the feasibility of the interscholastic activities is also growing. But the publicity channels of interscholastic activities is rather </p><p>
11、This system is based on the object-oriented analysis and design method to be analyzed, designed and developed. This system is based on the MVC design patterns and UML modeling tools, and developed using the PHP dynamic w
12、eb development language, and using the MySQL database as the background database, and developed in the WAMP integrated development environment, and implemented MeekroDB, the third-party library to be the interface betwee
13、n PHP and the database, and using H2o as the PHP template en</p><p> Keywords: information sharing; Web 2.0; PHP; UML modeling</p><p><b> 目 錄</b></p><p><b> 第
14、一章前言3</b></p><p> 1.1項(xiàng)目的背景和意義3</p><p> 1.2研究開(kāi)發(fā)現(xiàn)狀分析3</p><p> 1.3項(xiàng)目的目標(biāo)和范圍5</p><p> 1.4論文結(jié)構(gòu)簡(jiǎn)介5</p><p> 第二章技術(shù)與原理7</p><p>
15、2.1Web 2.0概述7</p><p> 2.2PHP服務(wù)器端技術(shù)8</p><p> 2.3MeekroDB技術(shù)8</p><p> 2.4 AJAX技術(shù)9</p><p> 第三章需求建模10</p><p> 3.1功能性需求分析10</p><p&g
16、t; 3.2系統(tǒng)用例11</p><p> 3.2.1系統(tǒng)用例圖11</p><p> 3.2.2系統(tǒng)用例表12</p><p> 3.3核心用例設(shè)計(jì)14</p><p> 3.3.1發(fā)布活動(dòng)14</p><p> 3.3.2收藏活動(dòng)16</p><p>
17、3.3.3加入社團(tuán)18</p><p> 3.4領(lǐng)域模型20</p><p> 第四章架構(gòu)設(shè)計(jì)22</p><p> 4.1系統(tǒng)架構(gòu)及原理22</p><p> 4.1.1RUP 4+1視圖方法22</p><p> 4.1.2邏輯視圖23</p><p>
18、4.1.3開(kāi)發(fā)視圖25</p><p> 4.1.4實(shí)施視圖26</p><p> 4.2業(yè)務(wù)用例的實(shí)現(xiàn)26</p><p> 4.2.1發(fā)布活動(dòng)用例的實(shí)現(xiàn)26</p><p> 4.2.2報(bào)名活動(dòng)用例的實(shí)現(xiàn)27</p><p> 4.2.3加入社團(tuán)用例的實(shí)現(xiàn)28</p>
19、<p> 4.3數(shù)據(jù)庫(kù)設(shè)計(jì)29</p><p> 4.3.1E-R模型29</p><p> 4.3.2數(shù)據(jù)庫(kù)31</p><p> 第五章模塊設(shè)計(jì)34</p><p> 5.1接口說(shuō)明34</p><p> 5.1.1./include/文件夾34</p>
20、<p> 5.1.2外部評(píng)論接口35</p><p> 5.2發(fā)布活動(dòng)模塊設(shè)計(jì)36</p><p> 5.2.1頁(yè)面設(shè)計(jì)36</p><p> 5.2.2算法描述活動(dòng)圖38</p><p> 5.2.3關(guān)鍵代碼展示39</p><p> 5.3查看活動(dòng)模塊設(shè)計(jì)41</p&g
21、t;<p> 5.3.1界面設(shè)計(jì)41</p><p> 5.3.2算法描述活動(dòng)圖42</p><p> 5.3.3關(guān)鍵代碼展示43</p><p> 第六章部署與應(yīng)用46</p><p> 6.1系統(tǒng)部署46</p><p> 6.1.1系統(tǒng)運(yùn)行環(huán)境46</p>
22、<p> 6.1.2部署圖47</p><p> 6.2網(wǎng)頁(yè)界面展示50</p><p> 6.3搭建云平臺(tái)項(xiàng)目53</p><p><b> 第七章 結(jié)論55</b></p><p><b> 致謝56</b></p><p><
23、b> 參考文獻(xiàn):57</b></p><p><b> 前言</b></p><p> 本章主要敘述了項(xiàng)目的背景意義、開(kāi)發(fā)現(xiàn)狀分析、項(xiàng)目的目標(biāo)和范圍,并且簡(jiǎn)單介紹了論文的結(jié)構(gòu)。</p><p> 1.1項(xiàng)目的背景和意義</p><p> 20世紀(jì)40、50年代,隨著知識(shí)經(jīng)濟(jì)逐漸成為世界經(jīng)濟(jì)
24、競(jìng)爭(zhēng)的主流,各國(guó)紛紛從立法、財(cái)政等方面主持創(chuàng)辦大型的大學(xué)城,一種新興的高等教育現(xiàn)象開(kāi)始出現(xiàn)。在中國(guó),大學(xué)城建設(shè)始于20世紀(jì)90年代,伴隨著城市用地的減少和大學(xué)擴(kuò)展的需要,可以遇見(jiàn)將會(huì)有更多的大學(xué)進(jìn)駐大學(xué)城。英國(guó)學(xué)者奧隆索(M.Auronsseau)在城市職能分類系統(tǒng)中首次提出了“大學(xué)城”的概念,“大學(xué)城是一個(gè)被大學(xué)影響并具有大學(xué)特征的大社區(qū)”。[1]美國(guó)學(xué)者貢普雷希特(Blake Gumprecht)則這樣定義,“大學(xué)城是由大學(xué)和大學(xué)所
25、創(chuàng)造的文化占主導(dǎo)地位的城鎮(zhèn)”。[2]文化之于大學(xué)城具有重要意義。大學(xué)城作為高校聚集地,城中人數(shù)達(dá)幾十萬(wàn)甚至更多,形同一座中小型城市,依托于其文化教育服務(wù)功能而得以發(fā)展。以大學(xué)為界,外有社區(qū)文化,內(nèi)有校園文化,共同構(gòu)成了“城文化”。[3]以廣州大學(xué)城為例,廣州大學(xué)城規(guī)劃范圍約43.3平方公里,可容納學(xué)生18萬(wàn)-20萬(wàn)人,總?cè)丝谶_(dá)35萬(wàn)-40萬(wàn)人(包括村鎮(zhèn)人口),相當(dāng)于一個(gè)中等規(guī)模的城市,估計(jì)總投資規(guī)模將達(dá)到200億-300億元。廣州大學(xué)城
26、現(xiàn)在進(jìn)駐的高校有:中山大學(xué),華南理工大學(xué),華南師范大學(xué),廣東外語(yǔ)外貿(mào)</p><p> “IslandClub”是基于web 2.0開(kāi)發(fā)的,web 2.0以去中心化、開(kāi)放、共享為顯著特征, “IslandClub”針對(duì)大學(xué)城社團(tuán)活動(dòng)的情況,提供了一個(gè)良好的信息發(fā)布、資源共享、信息匯總的平臺(tái)。本系統(tǒng)在實(shí)現(xiàn)了以用戶為中心的設(shè)計(jì),整合社團(tuán)與學(xué)生,學(xué)生可以根據(jù)自己的喜好關(guān)注、收藏社團(tuán)及其活動(dòng),社團(tuán)可以通過(guò)這個(gè)系統(tǒng)來(lái)發(fā)布
27、活動(dòng)信息,實(shí)現(xiàn)學(xué)生與社團(tuán)之間的雙向交流。系統(tǒng)的主要功能有:發(fā)布活動(dòng)、報(bào)名參加活動(dòng)、收藏社團(tuán)、加入社團(tuán)、關(guān)注社團(tuán)活動(dòng)等。</p><p> 1.2研究開(kāi)發(fā)現(xiàn)狀分析</p><p> 目前網(wǎng)絡(luò)上主要的活動(dòng)信息發(fā)布平臺(tái)主要有基于用戶興趣和所在城市發(fā)布活動(dòng)的豆瓣同城,和基于校園內(nèi)部交流的校園BBS論壇。豆瓣同城是豆瓣網(wǎng)衍生出來(lái)的子頻道,是豆瓣網(wǎng)的有機(jī)組成部分,因此它繼承了豆瓣網(wǎng)的部分用戶群體
28、。其中豆瓣網(wǎng)擁有數(shù)以億萬(wàn)計(jì)的擁躉,以書籍、電影、音樂(lè)為切入點(diǎn)和紐帶,致力于幫助都市青年發(fā)現(xiàn)生活中別樣的趣味豆瓣同城為城市青年打造了一個(gè)“藝術(shù)社區(qū)”,讓志同道合的人們擁有一個(gè)線上線下交流和推廣藝術(shù)展覽、戲劇演出的平臺(tái)。豆瓣同城是以城市為單元的網(wǎng)絡(luò)社區(qū),沒(méi)有自己獨(dú)立的域名,而是整合在豆瓣網(wǎng)的頁(yè)面內(nèi),同豆瓣讀書、電影、音樂(lè)、小組等并列,用戶可以在搜索引擎內(nèi)輸入“豆瓣同城”直接登錄。豆瓣同城頁(yè)面設(shè)計(jì)比較簡(jiǎn)潔,由同城活動(dòng)、主辦方和舞臺(tái)劇三個(gè)部分構(gòu)
29、成,用戶可以通過(guò)輸入活動(dòng)名稱、地址、介紹等關(guān)鍵詞查找同城活動(dòng)。當(dāng)用戶鎖定某一同城活動(dòng)之后,可以選擇標(biāo)記“我感興趣”和“我要參加”按鈕,或者通過(guò)已給出的聯(lián)系方式和跟帖獲得更多信息,自由選擇是否參加線下活動(dòng)。這一功能體現(xiàn)了新媒體的特點(diǎn),即“交互式”和“個(gè)人化”。主辦方這一部分為用戶提供按主辦方檢索同城活動(dòng)的服務(wù),更重要的是為普通用戶搭建了發(fā)起活動(dòng)的平臺(tái),任</p><p> 校園BBS論壇的活動(dòng)專區(qū),BBS主要面向
30、的群體是校友,受眾面積比較小,在這樣的情況下,以校園為基準(zhǔn)的校園 BBS 建立之后,是有機(jī)會(huì)在短時(shí)間內(nèi)就將本校的同學(xué)們都吸引過(guò)來(lái),進(jìn)行更加現(xiàn)實(shí)一點(diǎn)的信息交流交互的。因?yàn)锽BS就是公告板系統(tǒng)的英文首字母的縮寫,所以早期BBS被認(rèn)為是由有興趣的使用者組成的基于計(jì)算機(jī)通訊的交互式傳播系統(tǒng)。公告板的最基本的功能是:(1)閱讀文章(Read);(2)張貼文章(Post),用戶通過(guò)發(fā)布帖子相互討論,形成了討論的話題串(Thread)或者話題(Top
31、ic);(3)在線討論(Message&Talk);(4)聊天(chat);(5)收發(fā)電子郵件(Email)。在早期的BBS上,原有的信息量較少,用戶們主要是通過(guò)它來(lái)彼此交換信息;多年來(lái),參與BBS管理的志愿者每天不停地將用戶交流中的精華信息積累并整理后,現(xiàn)在BBS本身就演變成為了一個(gè)海量、可信且便捷的信息源。隨著信息傳播的及時(shí)性和大眾的參與度不斷提高,BBS已經(jīng)不再是冷冷清清的公告欄,而是熙熙攘攘的演講廣場(chǎng)。[6]</p
32、><p> 將市場(chǎng)上最有代表性的兩個(gè)活動(dòng)發(fā)布平臺(tái)作對(duì)比,可以看出它們優(yōu)點(diǎn)在于:(1)傳播主體的獨(dú)立性——每一個(gè)用戶都可以是一個(gè)傳播的參與者,通過(guò)線上交流,將活動(dòng)的信息散布,通過(guò)線下互動(dòng),將自己對(duì)生活、藝術(shù)的理解傳播給他人;(2)興趣或者地域社交得到的強(qiáng)大口碑力量,豆瓣作為互聯(lián)網(wǎng)上具有影響力的社交平臺(tái),而BBS也在校園里扮演一個(gè)重要的角色,因此在網(wǎng)站上發(fā)布活動(dòng)信息的傳播更廣。但同時(shí)也有缺點(diǎn),缺點(diǎn)在于這兩個(gè)網(wǎng)站的活動(dòng)發(fā)
33、布網(wǎng)站只是其主網(wǎng)站的一個(gè)附屬頁(yè)面,對(duì)活動(dòng)的展示未夠直觀和具體,而且用戶參與活動(dòng)的發(fā)布比較繁瑣。</p><p> 因此在參考了兩大活動(dòng)發(fā)布網(wǎng)站類型之后,本系統(tǒng)將專注于為大學(xué)城的學(xué)生和社團(tuán)提供一個(gè)簡(jiǎn)單易操作的活動(dòng)信息共享平臺(tái)。</p><p> 1.3項(xiàng)目的目標(biāo)和范圍</p><p> 本系統(tǒng)旨在為用戶提供一個(gè)信息發(fā)布、資源共享、信息匯總的平臺(tái),瀏覽網(wǎng)頁(yè)的用戶
34、都能了解到大學(xué)城最近將要舉辦的活動(dòng),也能一覽大學(xué)城的活動(dòng)。如果在網(wǎng)站上注冊(cè),就能享受到更多個(gè)性化的功能。通過(guò)對(duì)大學(xué)城的學(xué)生的調(diào)查可知,由于學(xué)校對(duì)體育蓋章的硬性要求和有些公益活動(dòng)提供加績(jī)點(diǎn)的額外獎(jiǎng)勵(lì),因此學(xué)生在選擇活動(dòng)的時(shí)候也側(cè)重于關(guān)注活動(dòng)是否能有體育章或者公益時(shí)數(shù)的獎(jiǎng)勵(lì),根據(jù)這個(gè)特殊的需求,在活動(dòng)的展示中也將這方面的信息羅列出來(lái),以便于學(xué)生根據(jù)自己的需求找到感興趣的活動(dòng)。</p><p> 本系統(tǒng)允許用戶以游客
35、的身份瀏覽,游客均可獲取發(fā)布的活動(dòng)和大學(xué)城社團(tuán)的信息。系統(tǒng)注冊(cè)是無(wú)門檻的,注冊(cè)的用戶分為兩類,一類是社團(tuán),另一類是學(xué)生。如果用戶以社團(tuán)身份注冊(cè),該用戶可以發(fā)布活動(dòng);查看自己已發(fā)布的活動(dòng);查看社團(tuán)成員及其信息;查看自己發(fā)布活動(dòng)的報(bào)名人員及其信息,可以幫助社團(tuán)預(yù)計(jì)開(kāi)展活動(dòng)的規(guī)模,以便于更好地控制活動(dòng)場(chǎng)面。如果用戶以學(xué)生身份注冊(cè),可以收藏或者參加活動(dòng),收藏活動(dòng)則不會(huì)將自己的信息匯總到活動(dòng)舉辦方,可以讓用戶有時(shí)間考慮是否需要參加該活動(dòng);可以收藏
36、或者加入社團(tuán),選擇收藏社團(tuán)的學(xué)生的信息不會(huì)被統(tǒng)計(jì)匯總到社團(tuán),收藏和加入功能讓學(xué)生進(jìn)行分類管理;可以查看自己參加活動(dòng)的情況,如參加活動(dòng)的次數(shù)、蓋章總數(shù)、績(jī)點(diǎn)總數(shù)、公益時(shí)數(shù)總數(shù),有助于學(xué)生進(jìn)行接下來(lái)的活動(dòng)選擇。</p><p> 1.4論文結(jié)構(gòu)簡(jiǎn)介</p><p> 整篇論文將會(huì)分為七個(gè)章,分別是:前言、技術(shù)與原理、需求建模、架構(gòu)設(shè)計(jì)、模塊設(shè)計(jì)、部署與應(yīng)用、結(jié)論。</p>
37、<p> 第一章:前言。論述項(xiàng)目背景意義,研究分析開(kāi)發(fā)現(xiàn)狀,制定開(kāi)發(fā)的目標(biāo)和范圍,整體上對(duì)項(xiàng)目進(jìn)行描述。</p><p> 第二章,技術(shù)原理。介紹開(kāi)發(fā)本系統(tǒng)所應(yīng)用的主要技術(shù)以及本系統(tǒng)采用這些技術(shù)的原因,包括web 2.0、PHP、meekroDB、AJAX技術(shù)。</p><p> 第三章,需求建模。首先對(duì)系統(tǒng)進(jìn)行功能性需求分析,最后對(duì)三個(gè)核心用例進(jìn)行了詳細(xì)的需求分析。<
38、;/p><p> 第四章,架構(gòu)設(shè)計(jì)。首先概述系統(tǒng)架構(gòu)及原理,選取三個(gè)核心用例的實(shí)現(xiàn)作設(shè)計(jì)和解釋,最后以E-R模型為基礎(chǔ),描述數(shù)據(jù)庫(kù)的設(shè)計(jì)。</p><p> 第五章,模塊設(shè)計(jì),選取發(fā)布活動(dòng)模塊和查看活動(dòng)模塊的主要流程、算法和核心代碼作簡(jiǎn)要介紹。</p><p> 第六章,部署與應(yīng)用,說(shuō)明系統(tǒng)運(yùn)行環(huán)境及其部署,再展示網(wǎng)頁(yè)的部分功能界面,最后展示搭建在新浪云平臺(tái)的系統(tǒng)
39、。</p><p> 第七章,結(jié)論,總結(jié)了項(xiàng)目的優(yōu)點(diǎn)、不足和將來(lái)改進(jìn)方向。</p><p><b> 技術(shù)與原理</b></p><p> 本章介紹項(xiàng)目中用到的核心技術(shù),其中包括web 2.0、PHP服務(wù)器端技術(shù)、MeekroDB技術(shù)、AJAX技術(shù)。</p><p><b> Web 2.0概述<
40、/b></p><p> Web 2.0,指的是一個(gè)利用Web的平臺(tái),由用戶主導(dǎo)而生成內(nèi)容的互聯(lián)網(wǎng)產(chǎn)品模式,為了區(qū)別傳統(tǒng)由網(wǎng)站雇員主導(dǎo)生成的內(nèi)容而定義為web2.0。[7]Web 2.0是一種新的互聯(lián)網(wǎng)方式,通過(guò)網(wǎng)絡(luò)應(yīng)用(Web Applications)促進(jìn)網(wǎng)絡(luò)上人與人間的信息交換和協(xié)同合作,其模式更加以用戶為中心。典型的Web 2.0站點(diǎn)有:網(wǎng)絡(luò)社區(qū)、網(wǎng)絡(luò)應(yīng)用程序、社交網(wǎng)站、博客、Wiki等等。Web
41、 2.0的顯著特點(diǎn)是分享機(jī)制和去中心化,Digg機(jī)制為更多網(wǎng)絡(luò)用戶提供了參與網(wǎng)絡(luò)建設(shè)的機(jī)制,無(wú)需進(jìn)行內(nèi)容貢獻(xiàn)或創(chuàng)作,只要用戶對(duì)網(wǎng)絡(luò)內(nèi)容進(jìn)行評(píng)分或點(diǎn)評(píng),即可參與到網(wǎng)絡(luò)內(nèi)容的建設(shè)過(guò)程當(dāng)中。Web 2.0是一個(gè)架構(gòu)在知識(shí)上的環(huán)境,人與人之間交互而產(chǎn)生出的內(nèi)容,經(jīng)由在服務(wù)導(dǎo)向架構(gòu)中的程序,在這個(gè)環(huán)境被發(fā)布,管理和使用。[8]</p><p> 另一方面,其實(shí)早在1999年,著名的管理學(xué)者彼得·杜拉克(Pete
42、r F. Drucker)就曾指出當(dāng)時(shí)的信息技術(shù)發(fā)展走錯(cuò)了方向,因?yàn)檎嬲苿?dòng)社會(huì)進(jìn)步的,是“Information Technology”里的“Information”,而不是“Technology”。如果僅僅著重技術(shù)層面而忽略了信息的話,就只是一具空的軀殼,不能使社會(huì)增值。而Web 2.0很明顯是通過(guò)參與者的交互:不論是提供內(nèi)容、為內(nèi)容索引或評(píng)分,都能夠使他們所使用的平臺(tái)增值。通過(guò)參與者的交互,好的產(chǎn)品或信息本著它的口碑,從一小撮用戶
43、擴(kuò)展到一大班人,一但超過(guò)了臨界質(zhì)量,就會(huì)“像病毒一樣廣泛流傳”(葛拉威爾,2002)。[9]</p><p> 正如同創(chuàng)新2.0所倡導(dǎo)的以人為本、草根創(chuàng)新、開(kāi)放創(chuàng)新、共同創(chuàng)新理念,Web 2.0的核心概念是互動(dòng)、分享與關(guān)系,所有的網(wǎng)絡(luò)行為,都可用“互動(dòng)、分享、關(guān)系”的概念來(lái)作詮釋。</p><p> 本系統(tǒng)是基于web2.0來(lái)開(kāi)發(fā)實(shí)現(xiàn)的,主要目的是讓每一個(gè)用戶都能參與到信息的傳遞,在用
44、戶之間鏈接起溝通的紐帶,通過(guò)互動(dòng),讓社團(tuán)與學(xué)生之間實(shí)現(xiàn)雙向溝通,有利于系統(tǒng)的持續(xù)建設(shè)。</p><p><b> PHP服務(wù)器端技術(shù)</b></p><p> PHP(全稱:PHP:Hypertext Preprocessor,即“PHP:超文本預(yù)處理器”)是一種開(kāi)源的通用計(jì)算機(jī)腳本語(yǔ)言,尤其適用于網(wǎng)絡(luò)開(kāi)發(fā)并可嵌入HTML中使用。PHP 獨(dú)特的語(yǔ)法混合了C、Jav
45、a、Perl以及PHP自創(chuàng)的語(yǔ)法。它可以比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。[10]</p><p> PHP的特性包括:1. PHP 獨(dú)特的語(yǔ)法混合了 C、Java
46、、Perl 以及 PHP 自創(chuàng)新的語(yǔ)法。2. PHP可以比CGI或者Perl更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)——?jiǎng)討B(tài)頁(yè)面方面,與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成htmL標(biāo)記的CGI要高許多;PHP具有非常強(qiáng)大的功能,所有的CGI的功能PHP都能實(shí)現(xiàn)。3. PHP支持幾乎所有流行的數(shù)據(jù)庫(kù)以及操作系統(tǒng)。4. 最重要的是PHP可以用C、C++進(jìn)行程序的擴(kuò)展。</p><p> 通常
47、情況下,PHP可以表現(xiàn)得更好,更快(PHP消耗相當(dāng)少的系統(tǒng)資源)。因此在處理本系統(tǒng)的數(shù)據(jù)時(shí)可以有更好的表現(xiàn)。雖然Pearl和Java可以做PHP不能做到的事,但是PHP完全可以勝任本系統(tǒng),由于本系統(tǒng)有大量數(shù)據(jù)要處理,必須要使用PHP完善,而不僅僅是幾個(gè)靜態(tài)頁(yè)面的跳轉(zhuǎn)。與此同時(shí),PHP的跨平臺(tái)性也很好,可以運(yùn)行在UNIX、LINUX、WINDOWS、Mac OS、Android等平臺(tái)。本應(yīng)用中使用PHP主要分成三個(gè)部分:處理ClubUI的
48、數(shù)據(jù),處理StudentUI的數(shù)據(jù)以及處理兩者共同界面的數(shù)據(jù),處于結(jié)構(gòu)清晰易于處理的考慮,每個(gè)PHP對(duì)應(yīng)相應(yīng)的HTML,并且分別處在各自的包中。[11]</p><p> MeekroDB技術(shù)</p><p> MeekroDB是一個(gè)PHP庫(kù),能讓你用更少行代碼實(shí)現(xiàn)更多的事,并且使SQL注入100%不可能。MeekroDB已經(jīng)有兩年作為谷歌搜索中“PHP MySQL庫(kù)”的搜索結(jié)果,并在
49、全世界有成千上萬(wàn)的部署。MeekroDB擁有完美的安全記錄,目前為止還沒(méi)有被發(fā)現(xiàn)安全上的缺陷或者SQL注入。[12]</p><p> 由于目前web應(yīng)用經(jīng)常受到XSS以及SQL注入攻擊,開(kāi)發(fā)本系統(tǒng)時(shí)出于安全以及編碼效率的考慮,使用了這個(gè)庫(kù)。XSS攻擊可以在編碼中調(diào)用相應(yīng)函數(shù)進(jìn)行識(shí)別并且避免,這對(duì)于普通的XSS攻擊已經(jīng)足夠。同時(shí)因?yàn)楸鞠到y(tǒng)使用大量的SQL語(yǔ)句,使得SQL注入攻擊危險(xiǎn)性大大提高,這是本系統(tǒng)使用Me
50、ekroDB的主要原因。</p><p> MeekroDB是可以和PHP無(wú)縫對(duì)接的MySQL數(shù)據(jù)庫(kù)封裝接口,同時(shí)能都完全杜絕SQL注入攻擊,使得我們不必?fù)?dān)心簡(jiǎn)單的安全攻擊。也因?yàn)閞equire以及require_once語(yǔ)句的存在,調(diào)用也是很方便的。</p><p> 2.4 AJAX技術(shù)</p><p> AJAX即“Asynchronous JavaS
51、cript and XML”(異步的JavaScript與XML技術(shù)),指的是一套綜合了多項(xiàng)技術(shù)的瀏覽器端網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。[13]傳統(tǒng)的Web應(yīng)用允許用戶端填寫表單(form),當(dāng)提交表單時(shí)就向Web服務(wù)器發(fā)送一個(gè)請(qǐng)求。服務(wù)器接收并處理傳來(lái)的表單,然后送回一個(gè)新的網(wǎng)頁(yè),但這個(gè)做法浪費(fèi)了許多帶寬,因?yàn)樵谇昂髢蓚€(gè)頁(yè)面中的大部分HTML碼往往是相同的。由于每次應(yīng)用的溝通都需要向服務(wù)器發(fā)送請(qǐng)求,應(yīng)用的回應(yīng)時(shí)間依賴于服務(wù)器的回應(yīng)時(shí)間。這導(dǎo)致了用戶界
52、面的回應(yīng)比本機(jī)應(yīng)用慢得多。</p><p> 與此不同,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必須的數(shù)據(jù),并在客戶端采用JavaScript處理來(lái)自服務(wù)器的回應(yīng)。因?yàn)樵诜?wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少(大約只有原來(lái)的5%),服務(wù)器回應(yīng)更快了。同時(shí),很多的處理工作可以在發(fā)出請(qǐng)求的客戶端機(jī)器上完成,因此Web服務(wù)器的負(fù)荷也減少了。[14]</p><p> 使用Ajax的最大優(yōu)點(diǎn),就是能
53、在不更新整個(gè)頁(yè)面的前提下維護(hù)數(shù)據(jù)。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動(dòng)作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒(méi)有改變的信息。Ajax不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執(zhí)行。對(duì)應(yīng)用Ajax最主要的批評(píng)就是,它可能破壞瀏覽器的后退功能。在動(dòng)態(tài)更新頁(yè)面的情況下,用戶無(wú)法回到前一個(gè)頁(yè)面狀態(tài),這是因?yàn)闉g覽器僅能記下歷史記錄中的靜態(tài)頁(yè)面。</p><p> 本系統(tǒng)中僅僅在部分?jǐn)?shù)據(jù)交互量大的頁(yè)面使用
54、了AJAX,例如學(xué)生關(guān)注、收藏社團(tuán)和學(xué)生報(bào)名、收藏活動(dòng)的動(dòng)作,通過(guò)使用異步交互,防止了全部頁(yè)面刷新帶來(lái)的等待,提升了用戶體驗(yàn)和應(yīng)用性能,在網(wǎng)站用戶量比較多的時(shí)候也可以正常地運(yùn)行。</p><p><b> 需求建模</b></p><p> 本章采用UML統(tǒng)一建模過(guò)程為“IslandClub”大學(xué)城活動(dòng)信息共享系統(tǒng)進(jìn)行需求建模。首先概述系統(tǒng)的功能性需求,描述用戶的
55、組織結(jié)構(gòu)、角色,描述關(guān)鍵的業(yè)務(wù)流程;接著以目標(biāo)分解細(xì)化為線索,識(shí)別用例,畫出用例圖;然后描述幾個(gè)關(guān)鍵用例,對(duì)復(fù)雜用例用活動(dòng)圖描述用例的時(shí)間流;最后描述應(yīng)用領(lǐng)域的概念及概念間的關(guān)系。</p><p><b> 功能性需求分析</b></p><p> 本系統(tǒng)的目標(biāo)是為大學(xué)城學(xué)生和社團(tuán)提供一個(gè)活動(dòng)信息共享的平臺(tái),在參考現(xiàn)有的兩個(gè)活動(dòng)發(fā)布網(wǎng)站的功能之后,結(jié)合現(xiàn)實(shí)需要和產(chǎn)
56、品特點(diǎn),本系統(tǒng)主要面向的有三種用戶角色:游客、學(xué)生和社團(tuán),針對(duì)這三種用戶,系統(tǒng)的主要功能性需求有:</p><p> 針對(duì)游客,即是未注冊(cè)賬號(hào)的用戶:可以瀏覽社團(tuán)發(fā)布的活動(dòng)信息,可以看到大學(xué)城有哪些社團(tuán),可以注冊(cè)賬號(hào);</p><p> 針對(duì)學(xué)生,即是注冊(cè)了學(xué)生賬號(hào)的用戶:可以瀏覽社團(tuán)發(fā)布的活動(dòng)信息,了解大學(xué)城有哪些社團(tuán),關(guān)注社團(tuán),加入社團(tuán)成為會(huì)員,報(bào)名參加活動(dòng),收藏活動(dòng),修改賬號(hào)密碼
57、;</p><p> 針對(duì)社團(tuán),即是注冊(cè)了社團(tuán)賬號(hào)的用戶:可以瀏覽社團(tuán)發(fā)布的活動(dòng)信息,可以發(fā)布活動(dòng)信息,查看活動(dòng)報(bào)名人員,查看社團(tuán)成員,修改賬號(hào)密碼。</p><p> 根據(jù)功能性需求,本系統(tǒng)主要有三種權(quán)限角色,分別是:游客、學(xué)生、社團(tuán),其用戶組織架構(gòu)圖如圖3-1所示:</p><p> 圖3-1:用戶組織結(jié)構(gòu)圖</p><p><
58、;b> 系統(tǒng)用例</b></p><p> 用例,是軟件工程或系統(tǒng)工程中對(duì)系統(tǒng)如何反應(yīng)外界請(qǐng)求的描述,是一種通過(guò)用戶的使用場(chǎng)景來(lái)獲取需求的技術(shù)。每個(gè)用例提供了一個(gè)或多個(gè)場(chǎng)景,該場(chǎng)景說(shuō)明了系統(tǒng)是如何和最終用戶或其它系統(tǒng)互動(dòng),也就是誰(shuí)可以用系統(tǒng)做什么,從而獲得一個(gè)明確的業(yè)務(wù)目標(biāo)。以下描述了用戶使用本系統(tǒng)可以發(fā)生的動(dòng)作或完成的事情。</p><p><b> 系
59、統(tǒng)用例圖</b></p><p> 根據(jù)上述的需求分析可知,該系統(tǒng)中主要有三種用戶角色,分別是游客、學(xué)生、社團(tuán),其中游客注冊(cè)登錄之后就以學(xué)生或者社團(tuán)的身份操作系統(tǒng),他們與系統(tǒng)的關(guān)系如圖3-2所示:</p><p> 圖3-2:系統(tǒng)用例圖</p><p><b> 系統(tǒng)用例表</b></p><p>
60、本節(jié)用表格的形式簡(jiǎn)單描述系統(tǒng)主要的用例,如表3-1所示:</p><p> 表3-1:系統(tǒng)用例表</p><p><b> 核心用例設(shè)計(jì)</b></p><p> 從涉及到的用例中,選取以下三個(gè)核心用例來(lái)進(jìn)行設(shè)計(jì),分別是:發(fā)布活動(dòng)、關(guān)注活動(dòng)、加入社團(tuán)。</p><p><b> 發(fā)布活動(dòng)</b&g
61、t;</p><p> 當(dāng)用戶注冊(cè)為社團(tuán)賬號(hào)時(shí),就有權(quán)限發(fā)布活動(dòng),其用例表如表3-2:</p><p> 表3-2:發(fā)布活動(dòng)用例表</p><p> 發(fā)布活動(dòng)這個(gè)用例的活動(dòng)圖如圖3-3所示:</p><p> 圖3-3:發(fā)布活動(dòng)活動(dòng)圖</p><p><b> 收藏活動(dòng)</b></
62、p><p> 當(dāng)用戶以學(xué)生的身份注冊(cè)賬號(hào),并且成功登錄,查看活動(dòng)的時(shí)候,可以選擇收藏活動(dòng),以便進(jìn)行活動(dòng)管理,收藏活動(dòng)這個(gè)用例可以用表3-3來(lái)表示:</p><p> 表3-3:收藏活動(dòng)用例表</p><p> 學(xué)生對(duì)活動(dòng)的操作,除了關(guān)注活動(dòng),還有報(bào)名活動(dòng),報(bào)名活動(dòng)是學(xué)生確定參加該活動(dòng),選擇報(bào)名活動(dòng)之后,系統(tǒng)會(huì)記錄學(xué)生的報(bào)名,發(fā)布活動(dòng)的社團(tuán)可以查看學(xué)生的報(bào)名,并看到
63、學(xué)生的個(gè)人信息(如聯(lián)系電話,郵箱),方便社團(tuán)合理安排活動(dòng)的開(kāi)展。報(bào)名活動(dòng)的用例與關(guān)注活動(dòng)的用例所涉及的對(duì)象和動(dòng)作相差不大,學(xué)生對(duì)活動(dòng)的操作可以用圖3-4來(lái)表示:</p><p> 圖3-4:學(xué)生對(duì)活動(dòng)的操作活動(dòng)圖</p><p><b> 加入社團(tuán)</b></p><p> 當(dāng)用戶以學(xué)生的身份注冊(cè),并且成功登錄之后,在瀏覽社團(tuán)信息的時(shí)候可
64、以選擇加入社團(tuán),成為該社團(tuán)的成員,之后可以得到社團(tuán)的活動(dòng)匯總,方便之后獲取社團(tuán)活動(dòng)的信息,并且自己的信息也會(huì)被社團(tuán)得知,便于社團(tuán)管理成員。該用例可以用表3-4表示:</p><p> 表3-4:加入社團(tuán)用例表</p><p> 學(xué)生對(duì)于社團(tuán)的操作,除了加入社團(tuán),還有關(guān)注社團(tuán)。當(dāng)學(xué)生對(duì)該社團(tuán)感興趣,但是又不想成為該社團(tuán)的成員時(shí)候選擇關(guān)注社團(tuán),這個(gè)功能方便學(xué)生將來(lái)能看到感興趣的社團(tuán)所發(fā)布的
65、活動(dòng)信息,但是社團(tuán)并沒(méi)有該學(xué)生的信息。關(guān)注社團(tuán)和加入社團(tuán)所涉及的對(duì)象和操作相差不大,其活動(dòng)圖如圖3-5所示:</p><p> 圖3-5:學(xué)生對(duì)社團(tuán)的操作活動(dòng)圖</p><p><b> 領(lǐng)域模型</b></p><p> 領(lǐng)域模型可以被看作是一個(gè)系統(tǒng)的概念模型,用于以可視化的形式描述系統(tǒng)中的各個(gè)實(shí)體及其之間的關(guān)系。領(lǐng)域模型記錄了一個(gè)系統(tǒng)
66、中的關(guān)鍵概念和詞匯表,顯示出了系統(tǒng)中的主要實(shí)體之間的關(guān)系,并確定了它們的重要的方法和屬性。因此,對(duì)應(yīng)于用例所描述的動(dòng)態(tài)視圖,領(lǐng)域模型提供了一種對(duì)整個(gè)系統(tǒng)的結(jié)構(gòu)化的視圖。領(lǐng)域模型的一個(gè)好處是描述并限制了系統(tǒng)邊界。[15]</p><p> 本系統(tǒng)的領(lǐng)域模型如圖3-6所示:</p><p> 圖3-6:領(lǐng)域模型圖</p><p><b> 架構(gòu)設(shè)計(jì)<
67、;/b></p><p> 本章主要介紹了系統(tǒng)的架構(gòu)設(shè)計(jì),包括系統(tǒng)的架構(gòu)原理、業(yè)務(wù)用例的實(shí)現(xiàn)和數(shù)據(jù)庫(kù)設(shè)計(jì)。</p><p><b> 系統(tǒng)架構(gòu)及原理</b></p><p> 本項(xiàng)目采用的系統(tǒng)架構(gòu)方法是RUP4+1視圖方法,本節(jié)將從架構(gòu)方面對(duì)系統(tǒng)進(jìn)行綜合概述,其中將運(yùn)用不同的架構(gòu)視圖對(duì)描述系統(tǒng)的各個(gè)方面,用于記錄和表述在系統(tǒng)架構(gòu)方面
68、所做的決定。</p><p> RUP 4+1視圖方法</p><p> 一個(gè)架構(gòu)視圖是對(duì)于從某一視角或某一點(diǎn)上看到的系統(tǒng)所做的簡(jiǎn)化描述,描述中涵蓋了系統(tǒng)的某一特定方面,而省略了于此方面無(wú)關(guān)的實(shí)體。也就是說(shuō),架構(gòu)要涵蓋的內(nèi)容和決策太多了,超過(guò)了人腦"一蹴而就"的能力范圍,因此采用"分而治之"的辦法從不同視角分別設(shè)計(jì);同時(shí),也為軟件架構(gòu)的理解、交流
69、和歸檔提供了方便。值得特別說(shuō)明的,大多數(shù)書籍中都強(qiáng)調(diào)多視圖方法是軟件架構(gòu)歸檔的方法,其實(shí)不然。多視圖方法不僅僅是架構(gòu)歸檔技術(shù),更是指導(dǎo)我們進(jìn)行架構(gòu)設(shè)計(jì)的思維方法。[16]</p><p> 圖4-1: Philippe Kruchten提出的4+1視圖方法</p><p> 該方法的不同架構(gòu)視圖承載不同的架構(gòu)設(shè)計(jì)決策,支持不同的目標(biāo)和用途:</p><p>
70、邏輯視圖:當(dāng)采用面向?qū)ο蟮脑O(shè)計(jì)方法時(shí),邏輯視圖即對(duì)象模型。</p><p> 開(kāi)發(fā)視圖:描述軟件在開(kāi)發(fā)環(huán)境下的靜態(tài)組織。</p><p> 處理視圖:描述系統(tǒng)的并發(fā)和同步方面的設(shè)計(jì)。</p><p> 物理視圖:描述軟件如何映射到硬件,反映系統(tǒng)在分布方面的設(shè)計(jì)。</p><p> 在本次系統(tǒng)架構(gòu)設(shè)計(jì)中,選用邏輯視圖、開(kāi)發(fā)視圖和實(shí)施視圖
71、三種視圖來(lái)從各個(gè)方面描述設(shè)計(jì)本系統(tǒng)時(shí)的決策。 </p><p><b> 邏輯視圖</b></p><p> 本小節(jié)運(yùn)用邏輯視圖的方式來(lái)顯示本系統(tǒng)架構(gòu)的分層、子系統(tǒng)和包之間的關(guān)系,并且加之必要的文字說(shuō)明,特別是架構(gòu)的分層、機(jī)制和模式的說(shuō)明。</p><p> 邏輯架構(gòu)只要支持功能性需求——系統(tǒng)應(yīng)該為用戶提供哪些服務(wù),系統(tǒng)分解為一系列的
72、關(guān)鍵抽象,(大多數(shù))來(lái)自于問(wèn)題域,表現(xiàn)為對(duì)象或?qū)ο箢惖男问健T诖?,還需要把與本系統(tǒng)有接口關(guān)系的其他系統(tǒng)都表示出來(lái),這樣可以清楚地看出本系統(tǒng)和其他系統(tǒng)的接口邏輯視圖,并且還需要將在本系統(tǒng)中負(fù)責(zé)接口的子系統(tǒng)表示出來(lái)。本系統(tǒng)的邏輯視圖如圖4-2所示:</p><p> 圖4-2:本系統(tǒng)的邏輯視圖</p><p><b> 開(kāi)發(fā)視圖</b></p><
73、p> 本系統(tǒng)基于web 2.0開(kāi)發(fā)的,因此按照表現(xiàn)層、業(yè)務(wù)層和數(shù)據(jù)層的結(jié)構(gòu),可以用開(kāi)發(fā)視圖表示如圖4-3:</p><p> 圖4-3:本系統(tǒng)的開(kāi)發(fā)視圖</p><p><b> 實(shí)施視圖</b></p><p> 本系統(tǒng)的組件圖如圖4-4所示:</p><p> 圖4-4:本系統(tǒng)的組件圖</p&g
74、t;<p><b> 業(yè)務(wù)用例的實(shí)現(xiàn)</b></p><p> 本節(jié)主要通過(guò)說(shuō)明用例實(shí)現(xiàn)的步驟,配合上順序圖,來(lái)說(shuō)明三個(gè)核心業(yè)務(wù)用例的實(shí)現(xiàn)。</p><p><b> 發(fā)布活動(dòng)用例的實(shí)現(xiàn)</b></p><p> 社團(tuán)發(fā)布活動(dòng)的交互步驟如下:</p><p> 社團(tuán)點(diǎn)擊發(fā)布活
75、動(dòng),controller切換到launch_activity的頁(yè)面;</p><p> 社團(tuán)輸入活動(dòng)的主題、類別、蓋章數(shù)、公益時(shí)間、績(jī)點(diǎn)、截止報(bào)名時(shí)間、活動(dòng)開(kāi)始時(shí)間、活動(dòng)結(jié)束時(shí)間、活動(dòng)進(jìn)行地點(diǎn)、主辦方聯(lián)系方式、海報(bào)網(wǎng)址鏈接、活動(dòng)簡(jiǎn)介,然后點(diǎn)擊發(fā)布活動(dòng),clubUI通過(guò)newActivity方法傳到controller,然后controller將信息儲(chǔ)存成activityNotice;</p>&l
76、t;p> activityNotice將信息返回到controller,然后controller返回給LaunchActivityResult的UI;</p><p> LaunchActivityResultUI將發(fā)布活動(dòng)成功的信息返回給社團(tuán),發(fā)布活動(dòng)完成。</p><p> 發(fā)布活動(dòng)的順序圖表示如圖4-5:</p><p> 圖4-5:發(fā)布活動(dòng)順序
77、圖</p><p><b> 報(bào)名活動(dòng)用例的實(shí)現(xiàn)</b></p><p> 學(xué)生報(bào)名活動(dòng)的交互過(guò)程如下:</p><p> 學(xué)生看到活動(dòng)列表的時(shí)候,點(diǎn)擊感興趣的活動(dòng),allActivityUI觸發(fā)controller,跳轉(zhuǎn)到ActitityInfo頁(yè)面;</p><p> 學(xué)生頁(yè)面點(diǎn)擊報(bào)名按鈕,ActivityI
78、nfo將信息傳到controller, Controller記錄學(xué)生報(bào)名情況,并且返回信息到ActivityInfo頁(yè)面;</p><p> 學(xué)生可以看到報(bào)名成功的信息,活動(dòng)報(bào)名成功。</p><p> 報(bào)名活動(dòng)用例的順序圖如圖4-6:</p><p> 圖4-6:報(bào)名活動(dòng)的順序圖</p><p> 加入社團(tuán)用例的實(shí)現(xiàn)</p&
79、gt;<p> 學(xué)生加入社團(tuán)的交互過(guò)程如下:</p><p> 學(xué)生瀏覽社團(tuán)列表,點(diǎn)擊感興趣的社團(tuán),點(diǎn)擊動(dòng)作傳controller,controller觸發(fā),跳轉(zhuǎn)到clubInfo頁(yè)面;</p><p> 學(xué)生在clubInfo頁(yè)面點(diǎn)擊加入按鈕,clubInfo頁(yè)面將記錄傳到controller,controller記錄學(xué)生加入社團(tuán)的信息;</p><
80、;p> Controller返回加入社團(tuán)結(jié)果到clubInfo頁(yè)面,學(xué)生加入社團(tuán)成功。</p><p> 加入社團(tuán)的順序圖如圖4-7:</p><p> 圖4-7:加入活動(dòng)順序圖</p><p><b> 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 本系統(tǒng)的數(shù)據(jù)庫(kù)是mysql 5.6.12,本節(jié)敘述了數(shù)據(jù)庫(kù)的設(shè)
81、計(jì)過(guò)程。</p><p><b> E-R模型</b></p><p> E-R圖也稱實(shí)體-聯(lián)系圖(Entity Relationship Diagram),提供了表示實(shí)體類型、屬性和聯(lián)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型。它是描述現(xiàn)實(shí)世界概念結(jié)構(gòu)模型的有效方法,是一種概念模型的一種方式,在本系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)中,E-R模型如圖4-8:</p><
82、;p><b> 圖4-8:E-R圖</b></p><p><b> 數(shù)據(jù)庫(kù)</b></p><p> 根據(jù)E-R圖設(shè)計(jì),可以得到關(guān)系模式:</p><p> Users(Uid:integer, username:string, password:integer, login_id: cher)</p
83、><p> Students(uid:integer, email:string, phone:string)</p><p> Clubs(uid:integer, contact:string)</p><p> Activities(aid:integer, title:string, attribute:integer, categoties:string
84、, stamped_number:integer, volunteer_hour:integer, credit:float, deadline:datetime, date:datetime, begin_time:datetime, end_time:datetime, location:string, other_info:text, posturl:text, phone:integer)</p><p>
85、; Concern(uid_s:integer, uid_c:integer)</p><p> Belong_to(uid_s:integer, uid_c:integer)</p><p> Collect(uid:integer, aid:integer)</p><p> Participate(uid:integer, aid:integer, i
86、sParticipate:boolean)</p><p> Launch(uid:integer, aid:integer)</p><p> 在MySQL里建9個(gè)表,分別如表4-1所示:</p><p> 表4-1:系統(tǒng)數(shù)據(jù)庫(kù)各表概述</p><p> 對(duì)數(shù)據(jù)庫(kù)表的詳細(xì)設(shè)計(jì)如表4-2到表4-10所示:</p><
87、;p> 表4-2:Users表</p><p> 表4-3:Students表</p><p> 表4-4:Clubs表</p><p> 表4-5:Activities表</p><p> 表4-6:Concern表</p><p> 表4-7:Belong_to表</p><p
88、> 表4-8:Collect表</p><p> 表4-9:Participate表</p><p> 表4-10:Launch表</p><p><b> 模塊設(shè)計(jì)</b></p><p><b> 接口說(shuō)明</b></p><p> ./include/
89、文件夾</p><p> 在此文件下的文件提供路由選擇,相當(dāng)于MVC模式中controller的作用,因?yàn)橄到y(tǒng)運(yùn)用了MeekroDB PHP庫(kù),可以用更少的代碼來(lái)實(shí)現(xiàn)對(duì)MySQL數(shù)據(jù)庫(kù)的訪問(wèn),而且系統(tǒng)前端也用了H2o模板,因此本文件夾包含MeekroDB文件和H2o模板文件。./include/dbhome.php 在每一個(gè)php文件中都被調(diào)用,里面包含了幾個(gè)關(guān)鍵的函數(shù):</p><p>
90、; Render_t函數(shù)</p><p> function render_t($name, $kwargs=array())//定義跳轉(zhuǎn)函數(shù),從php跳轉(zhuǎn)到對(duì)應(yīng)的html,完成數(shù)據(jù)的傳遞</p><p><b> {</b></p><p> global $h2o_tpl;</p><p> $h2o_tp
91、l->loadTemplate($name);</p><p> echo $h2o_tpl->render($kwargs);</p><p><b> }</b></p><p> Url_for_active函數(shù)</p><p> function url_for_active($aid, $p
92、agenum=1)</p><p><b> {</b></p><p> return "/show_a.php?aid=$aid&pagenum=$pagenum";</p><p> }//定義顯示活動(dòng)函數(shù),提供跳轉(zhuǎn)到show_a.php的接口</p><p> $h2o_tpl
93、->addFilter('url_for_active');//調(diào)用h2o顯示頁(yè)面</p><p> url_for_avater函數(shù):</p><p> 本系統(tǒng)運(yùn)用了gravater頭像的技術(shù),Gravatar是Globally Recognized Avatar的縮寫,是gravatar推出的一項(xiàng)服務(wù),意為“全球通用頭像”。如果在Gravatar的服務(wù)器上放置
94、了你自己的頭像,那么在任何支持Gravatar的blog或者留言本上留言時(shí),只要提供你與這個(gè)頭像關(guān)聯(lián)的email地址,就能夠顯示出你的Gravatar頭像來(lái)。</p><p> function url_for_avatar( $email, $s = 50, $d = 'mm', $r = 'g', $img = false, $atts = array() ) {</p
95、><p> $url = 'http://www.gravatar.com/avatar/';</p><p> $url .= md5( strtolower( trim( $email ) ) );</p><p> $url .= "?s=$s&d=$d&r=$r";</p><p>
96、; if ( $img ) {</p><p> $url = '<img src="' . $url . '"';</p><p> foreach ( $atts as $key => $val )</p><p> $url .= ' ' . $key . '=&q
97、uot;' . $val . '"';</p><p> $url .= ' />';</p><p><b> }</b></p><p> return $url;</p><p> }//傳入用戶注冊(cè)所用的email,在gravater里面查找對(duì)應(yīng)的頭
98、像。顯示到對(duì)應(yīng)的heml頁(yè)面。</p><p><b> 外部評(píng)論接口</b></p><p> 在活動(dòng)詳情的頁(yè)面中,引入了“友言”外部評(píng)論接口,這樣可以用外部社交網(wǎng)絡(luò)賬號(hào)登錄并對(duì)活動(dòng)發(fā)表評(píng)論,并且可以將活動(dòng)分享到不同的社交平臺(tái),為系統(tǒng)引入更多的流量,擴(kuò)大系統(tǒng)的影響力,接口的代碼如下:</p><p> <div class=&qu
99、ot;comment"></p><p> <!-- UY BEGIN --></p><p> <div id="uyan_frame"></div></p><p> <script type="text/javascript"></p>
100、<p> var uyan_config = {</p><p> 'title':'{{a.title}}',</p><p> 'su': String(location)</p><p><b> };</b></p><p> </scri
101、pt> </p><p> <script type="text/javascript" id="UYScript" src="http://v1.uyan.cc/js/iframe.js?UYUserId=1787488" async=""></script></p><p>
102、; <!-- UY END --></p><p><b> </div></b></p><p><b> 發(fā)布活動(dòng)模塊設(shè)計(jì)</b></p><p> 用戶以社團(tuán)身份登錄系統(tǒng)后,可以在發(fā)布活動(dòng)版塊來(lái)發(fā)布活動(dòng)信息,發(fā)布活動(dòng)模塊主要實(shí)現(xiàn)了社團(tuán)將活動(dòng)信息發(fā)布在網(wǎng)頁(yè),然后網(wǎng)頁(yè)將信息傳到后臺(tái)進(jìn)行記錄
103、,并在首頁(yè)將活動(dòng)進(jìn)行顯示的功能。</p><p><b> 5.2.1頁(yè)面設(shè)計(jì)</b></p><p> 圖5-1:社團(tuán)發(fā)布活動(dòng)頁(yè)面草圖</p><p> 用戶在各個(gè)信息框里面輸入相應(yīng)的活動(dòng)信息后,點(diǎn)擊發(fā)布活動(dòng),系統(tǒng)將記錄活動(dòng)信息,如果發(fā)布成功,則返回鏈接,返回到首頁(yè)。</p><p><b> 圖5-
104、2:首頁(yè)草圖</b></p><p> 當(dāng)用戶發(fā)布信息成功返回首頁(yè)之后,活動(dòng)的信息將展示在首頁(yè)。</p><p> 5.2.2算法描述活動(dòng)圖</p><p> 圖5-3:發(fā)布活動(dòng)算法描述活動(dòng)圖</p><p> 5.2.3關(guān)鍵代碼展示</p><p> 5.2.3.1 PHP代碼展示:</p
105、><p> 當(dāng)用戶在主頁(yè)點(diǎn)擊“發(fā)布活動(dòng)”時(shí):</p><p> if(!isset($_SESSION['uid']) ||</p><p> $_SESSION['ut'] != 'c')</p><p><b> {</b></p><p>
106、 $msg = '只有登錄社團(tuán)才能發(fā)起活動(dòng)!';</p><p> goto failed;</p><p> }//判斷用戶是否登錄,登錄的用戶是否為社團(tuán)賬號(hào)</p><p> 當(dāng)用戶輸入活動(dòng)信息,點(diǎn)擊“發(fā)布活動(dòng)”時(shí):</p><p> if($_POST)//判斷數(shù)據(jù)是否傳輸成功</p><
107、p><b> {</b></p><p> if(empty($_POST['title']) )</p><p><b> {</b></p><p> $msg = '主題不能為空';</p><p> goto failed;</p>
108、<p> }//提示主題不能為空,跳轉(zhuǎn)到發(fā)布活動(dòng)失敗的頁(yè)面</p><p> 如果發(fā)布的活動(dòng)信息格式正確:</p><p> $now = new DateTime();</p><p> DB::insert('Activities',</p><p><b> array(</b&g
109、t;</p><p> 'title' => $_POST['title'],</p><p> 'attribute' => 0,</p><p> 'categories' => $_POST['cat'],</p><p>
110、9;stamped_number' => $_POST['stamped'],</p><p> 'volunteer_hour' => $_POST['vhour'],</p><p> 'credit' => $_POST['credit'],</p><p
111、> 'date' => $now->format("Y-m-d H:i:s"),</p><p> 'deadline' => $_POST['deadline'],</p><p> 'begin_time' => $_POST['begin'],<
112、;/p><p> 'end_time' => $_POST['end'],</p><p> 'location' => $_POST['location'],</p><p> 'phone' => $_POST['phone'],</p>
113、;<p> 'posturl' => $_POST['posturl'],</p><p> 'other_info' => $_POST['info'])); //將活動(dòng)信息數(shù)據(jù)傳輸?shù)綌?shù)據(jù)庫(kù),記錄在Activities表里</p><p> $aid = DB::insertId();<
114、/p><p> DB::insert('Launch',</p><p> array('uid' => $_SESSION['uid'],</p><p> 'aid' => $aid));//將活動(dòng)和社團(tuán)的關(guān)系傳輸?shù)綌?shù)據(jù)庫(kù),記錄在Launch表里</p><p>
115、; render_t('c/new_activity_success.html'); //跳轉(zhuǎn)到發(fā)布活動(dòng)成功頁(yè)面</p><p> 如果數(shù)據(jù)傳輸不成功:</p><p> render_t('c/new_activity.html'); //如果數(shù)據(jù)傳輸不成功,還留在原頁(yè)面</p><p> 如果發(fā)布活動(dòng)失敗,跳轉(zhuǎn)到發(fā)布失敗頁(yè)
116、面:</p><p> render_t('c/new_activity_failed.html', array('msg' => $msg)); //傳輸失敗原因,跳轉(zhuǎn)到活動(dòng)發(fā)布失敗頁(yè)面</p><p><b> HTML代碼展示:</b></p><p> new_activity_success
117、.html</p><p> <input type="submit" value="發(fā)布活動(dòng)"/><br/></p><p> <a href="../index.php">發(fā)布成功!點(diǎn)擊返回</a> //提示發(fā)布成功,顯示返回首頁(yè)鏈接</p><p>
118、 new_activity_failed.html</p><p> {{ msg }}//打印錯(cuò)誤信息提示</p><p> 5.3查看活動(dòng)模塊設(shè)計(jì)</p><p> 當(dāng)用戶以學(xué)生身份登錄系統(tǒng)之后,可以點(diǎn)擊活動(dòng)題目來(lái)查看活動(dòng)詳情,在活動(dòng)詳情頁(yè)面,有“報(bào)名”和“收藏”兩個(gè)選項(xiàng),學(xué)生可以根據(jù)是否想報(bào)名參加活動(dòng),或者想收藏活動(dòng)來(lái)執(zhí)行操作,系統(tǒng)數(shù)據(jù)庫(kù)會(huì)記錄學(xué)生的選
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于web2.0的eecp醫(yī)學(xué)信息共享系統(tǒng)的研究
- 大學(xué)城流通系統(tǒng)設(shè)計(jì)研究——從流通系統(tǒng)設(shè)計(jì)角度談大學(xué)城資源共享的實(shí)現(xiàn)問(wèn)題.pdf
- 大學(xué)城教育資源共享分析——以濟(jì)南長(zhǎng)清大學(xué)城為例.pdf
- 大學(xué)城教學(xué)資源共享的機(jī)制構(gòu)建.pdf
- 大學(xué)城的空間資源共享問(wèn)題初探.pdf
- 合肥大學(xué)城教學(xué)資源共享的問(wèn)題研究
- 我國(guó)大學(xué)城的資源共享問(wèn)題研究.pdf
- web2.0在教師培訓(xùn)中的應(yīng)用_信息共享
- 大學(xué)城高校圖書館聯(lián)盟條件下的信息共享空間研究.pdf
- 合肥大學(xué)城教學(xué)資源共享的問(wèn)題研究.pdf
- 資源共享理念下的大學(xué)城規(guī)劃設(shè)計(jì)研究.pdf
- 廣州大學(xué)城教學(xué)資源共享機(jī)制研究.pdf
- 6580.“世界大學(xué)城”教育資源共享模式探究
- 大學(xué)城國(guó)防教育教學(xué)資源共享研究.pdf
- 大學(xué)城監(jiān)理規(guī)劃
- 18319.大學(xué)城校際資源共享的問(wèn)題與對(duì)策研究
- 基于web2.0和移動(dòng)系統(tǒng)的gps數(shù)據(jù)共享服務(wù)系統(tǒng)的構(gòu)建
- 基于集群理論的大學(xué)城現(xiàn)象研究.pdf
- 基于web的信息共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于web2.0的信息服務(wù)研究
評(píng)論
0/150
提交評(píng)論