Skip to content

ccc-larc/itaigi

 
 

Repository files navigation

新台語·運動

Build Status devDependency Status

Frontend

Install:

Install npm

Check node.js version

$ node -v # version must >4

update node.js to specific version

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash && source ~/.nvm/nvm.sh
$ nvm install 6

$ nvm use 6

# Check node.js version again
$ node -v

Install packages

$ npm i

If you meet some problem during npm i and finally succeed, you might need rm -rf node_modules && npm i

Start development server:

$ npm start

then open https://localhost:3000/

Coding style

JavaScript Style: Airbnb

  • npm test 檢查
  • npm run reformat 自動重排

佈署試驗機

請揀其中一臺試驗機,注意Pull request有人佇用無

$ npm run deploy-tshi3

對應到https://tshi3.itaigi.tw/

$ npm run deploy-giam7

對應到https://giam7.itaigi.tw/

$ npm run deploy-test

對應到https://test.itaigi.tw/

佈署正式機

$ npm run deploy

產生favicon

  1. design/logo正方形.svg擲去https://realfavicongenerator.net/
  2. 調顯示的畫面
  3. 共產生的favicons.zip掠落來
  4. 解壓縮佇專案內
  5. https://realfavicongenerator.net/favicon_checker檢查

後端

後端的設定較麻煩,若只是要改前端,可以不用架後端,直接用線上機就行。 若需要試新功能,可以改apiary,並改前端的後端網址就可以運作了

環境設定

後端使用臺灣言語平臺。 環境要求Python 3.4+,並放在server-side/資料夾. 以下指令請在server-side/裡面執行

sudo apt-get install -y python3-dev libffi-dev libxml2-dev libxslt1-dev rabbitmq-server # 為了編譯, 連google oauth2, message queue
virtualenv venv --python python3 # 設置環境檔
. venv/bin/activate # 載入環境
pip install -r requirements.txt # 裝相關python套件
python manage.py migrate #建立資料庫欄位
sudo apt-get install -y libav-tools # 安裝avconv for Ubuntu

以上即已建立開發用簡單的 sqlite db(/server-side/db.sqlite3),如欲使用 postgres 請參考Postgres設定

跑服務

需同時開djangocelery workercelery beat三個服務,可用screen

開發用

程式碼若有修改django會重新載入,celery需重新啟動

python manage.py runserver
celery -A itaigi worker -l info
celery -A itaigi beat -l info

上機用

支援多線程

gunicorn itaigi.wsgi
celery -A itaigi worker -l info
celery -A itaigi beat -l info

可考慮 Process Control System 將 celery 跑在系統背景,例如使用 supervisor

Postgres設定(optional)

詳情請看臺灣言語資料庫的使用Postgres

設定FB登入

增加管理員帳號

python manage.py createsuperuser

email 和密碼隨意輸入,待會需用此帳密登入

登入管理員並且設定FB app

  1. 用瀏覽器進入 https://localhost:8000/admin
  2. 輸入剛剛的 email 和密碼登入
  3. 點選 SOCIAL ACCOUNTS 分類下的 Social applications 的 +Add
  4. provider:FB
  5. Client id:2055788134646727
  6. Secret key:880d339384674341c8bf1e62d8c8e0aa
  7. 左下角 choose all site
  8. 其他欄位隨便填

google sheet匯入資料庫

參考Obtain OAuth2 credentials from Google Developers Console

  1. 申請服務
  2. 開啟Drive API
  3. 用Service Account得到一個服務帳戶json,假設叫做itaigi-sui2.json
  4. itaigi-sui2.json放到 server-side/

設定google development

假設服務帳戶json得到itaigi-sui2.json

python manage.py 加sheet的json itaigi-sui2.json https://docs.google.com/spreadsheets/d/1_sXX2CGJsfSUTg-r-RGc4ApU1fPUmuLc2DmUSy4y_Zk/edit#gid=0
python manage.py 顯示全部sheet狀態

匯入資料

先去寶島可夢設定google sheet的Can Edit權限

echo 'from 佳怡表匯入資料庫 import 走 ; 走()' | python manage.py shell
echo 'from 匯入台華 import 走台華 ; 走台華()' | python manage.py shell
echo 'from 匯入寶島可夢 import 走寶島可夢 ; 走寶島可夢()' | python manage.py shell
echo 'from 匯入glll4678外來詞 import 走匯外來詞 ; 走匯外來詞()' | python manage.py shell

完整匯入需等待一段時間,等待途中可以繼續做其他事 若只需試驗,可中途中斷

無完整的簡單佈署流程

sudo apt-get install -y libffi-dev # 為了連google oauth2
git pull
pip install -r requirements.txt
python manage.py migrate
python manage.py 加sheet的json itaigi-9.json https://docs.google.com/spreadsheets/d/1_sXX2CGJsfSUTg-r-RGc4ApU1fPUmuLc2DmUSy4y_Zk/edit#gid=0

License

MIT License https://g0v.mit-license.org/

Packages

No packages published

Languages

  • JavaScript 95.2%
  • Python 3.9%
  • Other 0.9%