Meteor + mantra + Reactjs 開發問答系統
Meteor + mantra + Reactjs 開發問答系統
使用最新的Meteor
框架 + 用mantra
和最流行的前端框架React
實現wenda系統.
專案要求
功能模組 | 前端設計頁面 | 功能點說明 |
---|---|---|
使用者模組 | 登陸頁面和個人頁面 | 做溫馨登陸和普通註冊登入 |
使用者用微信登陸並完善資訊呢 | ||
登入之後跳轉到個人頁面並可完善個人資訊 | ||
個人頁面顯示我關心的, 我回應的 ,我發表的問題列表 | ||
點選我關心, 我回應,我發表顯示相應問題列表 | ||
從個人頁面可以進入到其他人的個人頁面 | ||
使用者可發表問題,可對其它問題進行回答,關注 | ||
使用者可對他人對於問題的答案進行點贊 | ||
使用者進行加急問題的獎勵金額提問者自定義 | ||
問題模組 | 問題列表頁面 | 問題分為普通問題和加急問題, 普通問題只顯示問題描述,加急問題提問建立新問題時需要定義問題打賞的金額, 問題釋出後2個小時內問題答案的贊數最多的一位自動獲得此問題的打賞金額 |
按標籤分類顯示問題支援問題關鍵字搜尋功能, 顯示問題的釋出者頭像,暱稱,問題標籤, 問題描述,釋出時間, 瀏覽量, 回答數,回答者的頭像(無互動), 加急標籤, 紅包以及紅包金額,提供問題的發起功能 | ||
問題列表頁資料的優化處理 | ||
問題詳情頁面 | 顯示提問者頭像,時間,紅包以及金額, 緊急標籤,問題描述, 問題標籤,多少人幫助過她,多少瀏覽量 , 多少人關心,回答者的頭像 |
| | 2. 我來答跳轉到回答頁面, 幫你問提示分享
| | 3. 答案列表, 包括回答者頭像, 暱稱, 回答時間, 點贊數,回答內容,點選可進入到答案詳情
| | 4. 答案詳情頁可對此答案進行點贊
| 問題編輯頁面 | 1. 可選擇普通問題或者加急問題, 可選問題標籤,可定義加急問題的紅包金額, 問題標題和詳細描述
| 我來答頁面 | 1. 輸入框 , 可提交問題問題答案
微信支付和紅包模組 | 需要支付以及紅包頁面 | 1. 微信支付功能
2. 微信紅包功能
後臺模組 | 後臺頁面 | 1. 可以對所有的問題進行刪除操作
| | 2. 可以對所有的答案進行刪除操作
| |
3. 可以對問題進行搜尋功能
| | 4. 所有打賞的記錄(包括打賞的問題, 提問者, 被打賞者,答案贊數,打賞金額)
| | 所有前端頁面的HTML/CSS/JS實現及調整
開發流程
說明
Github傳統的流程。也就是:
* 開發者各自fork專案的repo到自己Github賬戶下
* 每次開發同步到專案的repo然後開發
* push自己的開發分支到自己Github賬戶下面的fork的專案repo
* 傳送pull request給專案管理員
* 等待review或者merge
分支規劃
採用git remote add命令給自己本地的開發repo新增分支,我們用一下約定來處理分支的名字
* origin - 直接指向專案的repo
* dev_name - 指向自己fork出來的repo例如我的叫cooloney
* reaction - 指向reaction 原版的repo
具體操作
Fork 專案repo到自己Github賬戶(只需要setup一次)
本地開發的配置(以我的賬戶示例,也只要setup一次)
- 從wenda的專案repo clone最新的程式碼
git clone --recursive https://github.com/wangleihd/wenda.git
- 新增自己fork的repo用來發布程式碼和傳送pull request
cd wenda
git remote add youname https://github.com/youname/wenda.git
git fetch youname
git fetch origin
git checkout -b develop origin/develop (create a new branch for development)
git reset --hard origin/develop (reset the local branch to latest origin development branch)
開發流程(每次開發都要執行)
git rebase origin/develop (rebase local change onto origin development branch)
do some work ...
git commit changes
git push --force youname develop
傳送pull request(每次push都需要)
- 登入自己repo的Github主頁
- 點選pull request
- 按照下圖配置好pull request
Package Git使用指南
說明
- 每一個Package也是一個單獨的repo
- 我們只是加入了那些我們需要修改的package,沒有修改的package我們用reaction原版的程式碼。
- 請登陸自己的Github賬戶fork相應的package repo到自己的Github賬戶
標準PR流程
以我的賬號dev1為例,首先需要在master下Fork到自己賬戶下
首次執行,只需要執行一次
git clone https://github.com/dev1/h5.git
git remote add upstream https://github.com/master/h5.git
git checkout -b dev upstream/dev
每次都需要執行
git fetch upstream
git reset --hard upstream/dev
… work
git rebase upstream/dev
git push -f origin master
開發環境
下面我們使用到的開發環境及相關的版本號資訊.
- Meteor 1.4
- Mantra
- React 0.15
- semantic-ui
- flow-router
建立專案
首先我的專案建立在github
上. 原始碼下載地址
使用mantra
命令建立wenda
專案, 在使用mantra
前, 需要安裝mantra
.
- 安裝
mantra
工具
$ npm install -g mantra-cli
- 建立
wenda
專案
mantra
會呼叫本地安裝好的meteor
進行建立專案, 然後再根據需求對專案進行規範化.
$ mantra create wenda
刪除沒用的包
- 刪除
meteor
自帶的包.
$ meteor remove insecure
- 刪除預設的CSS
$ meteor remove standard-minifier-css
- 刪除自動釋出包, 這是測時使用, 實際開發的時候推薦使用, 他會把server的程式碼都發給client端.
$ meteor remove autopublish
安裝 React
$ meteor npm install --save react react-dom
$ meteor npm install --save react-mounter
安裝 semantic ui
$ meteor add semantic:ui juliancwirko:postcss less jquery
安裝 facebook包
$ meteor add accounts-facebook
安裝 flow-router
安裝命令:
$ meteor add kadira:flow-router
$ meteor add kadira:dochead
需要在 package.json 加入:
{
"devDependencies": {
"autoprefixer": "^6.3.1"
},
"postcss": {
"plugins": {
"autoprefixer": {"browsers": ["last 2 versions"]}
}
}
}
然後再執行:
$ meteor npm install
需要執行下面的兩步驟:
- 必須在專案中的
client/lib/semantic-ui/
目錄下建立一個新的空檔案custom.semantic.json
, 注意需要特別提示不要改更目錄名和檔名, 因為Meteor的規定. 然後執行meteor
.
- 必須在專案中的
參考下面的命令:
$ pwd
~/wenda
$ touch client/lib/semantic-ui/custom.semantic.json
$ meteor
- 然後
meteor
啟動後, 會再client/lib/semantic-ui/
目錄下自動建立一個.custom.semantic.json
的隱藏檔案, 需要先把meteor
停掉. 然後刪除這個meteor
自動生成的檔案.再重新啟動meteor
. 會再client/lib/semantic-ui/
目錄下建立出semantic-ui相應的檔案. 如果
參考下在的命令:
$ 按鍵盤上的 ctrl + c 停止 meteor.
$ rm client/lib/semantic-ui/.custom.semantic.json
$ meteor
- 使用時需要用
className
.
參考
相關文章
- TP3.23開發的分答微信版語音問答系統原始碼原始碼
- NLP教程(7) - 問答系統
- SOA系統架構問答架構
- ThinkSWN開源社群問答系統 免費開源 歡迎使用
- 軟體開發技術問答
- 如何使用Meteor開發以太坊DappAPP
- 基於TP3.2.3的問答系統!
- NLP實踐專案:智慧問答系統
- 學黨史,線上黨史答題系統原始碼開發原始碼
- 使用 Meteor 輕鬆開發實時網站網站
- Meteor:全棧JavaScript開發框架的先驅全棧JavaScript框架
- 基於倒排表的電力排程知識問答系統構建 (nlp問答系統實現,有程式碼)
- 線上試題答題考試系統專案開發搭建原始碼原始碼
- 知了 | 基於NLP的智慧問答推薦系統
- Windows XP 作業系統六例精彩問答(轉)Windows作業系統
- 一文詳解維基百科的開放性問答系統
- 【十問十答】對話Go語言開發團隊Go
- 直播系統開發遇到的三大問題
- Java實用系統開發指南的疑問Java
- 微商複合模式系統開發(開發系統模式)模式
- DeFi系統開發|DeFi質押模式系統開發模式
- QA問答系統中的深度學習技術實現深度學習
- 使用ElementUI開發系統(介紹與開發中遇到的問題)UI
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (四)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (三)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (二)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (一)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (五)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (六)GoReactJS
- 網站開發只需數小時?Meteor 說這才是未來網站
- 理財分紅系統開發-分紅系統開發
- 基於OT開發系統的專利問題
- 遊戲系統開發繼承帶來的問題遊戲繼承
- 自然語音處理(NLP)系列(五)——詳解智慧問答系統
- 知識圖譜的問答系統關鍵技術研究 #01
- 知識圖譜的問答系統關鍵技術研究 #02
- 知識圖譜的問答系統關鍵技術研究 #03
- Linux 作業系統程式設計之Shell 問答錄(轉)Linux作業系統程式設計