- 專案網址:http://54.214.247.228:3000/
- 測試帳號:[email protected]
- 測試密碼:test
Payment | set |
---|---|
卡片號碼 |
4242-4242-4242-4242 |
過期日 |
12/31 |
CCV |
123 |
「臺北一日遊」為旅遊電商網站,提供使用者搜尋臺北景點,進一步預約導覽行程時間,並提供信用卡付款。
- 前端開發
- 使用 Html、SCSS / Sass、JavaScript 開發,並實踐 RWD、AJAX,沒有使用任何前端 UI 套件
- 後端開發
- 專案使用 AWS EC2 雲端部屬
- 使用 Python flask 建立 Application server
- MySQL 關聯式資料庫儲存景點、會員資料及訂單
- 開發購物車系統,結合 TapPay 第三方金流服務
- 開發工具
- 使用 Git / GitHub 做版本管控
- 專案目錄下有 static 目錄供 Python server 套件 Flask.py 取得靜態檔案; templates 目錄下的 HTML 檔案使用 Jinja2 樣板引擎渲染
- static 目錄下分成 JavaScript、styles、picture 子目錄
- Javascript: 依照功能拆分檔案
- styles: 依照頁面拆分檔案; 全域顏色儲存在 _variable.scss、全域 styles 儲存在 _mixin.scss
- picture: 儲存首頁以及 README 圖片
- 以 GitHub Flow 為基礎進行開發,包含要求 reviewer 同意 pull request 實踐 GitHub Flow
- 根據後端規格文件建立 MySQL 資料庫、開發 RESTful API
- 篩選臺北旅遊網 Open API 的原始資料,並建立 MySQL 資料庫中的 attractions 資料表
- 使用 AWS EC2 的服務建立一台 Linux 機器,作業系統選擇 Ubuntu Server,並執行由 Python、Flask.py 編寫之 Application server
- 在 AWS EC2 建立 MySQL 資料庫
- 使用 nohup 指令讓 Application server 在 AWS EC2 背景運作
-
- 使用 MySQL 資料庫 users 資料表建立會員系統
- 使用 Flask.py、PyJWT、Bearer Token 判斷使用者登入狀態,實踐會員登入、登出功能
-
- 使用 Flask.py 建立 Routing system
- 配合規格文件實踐 RESTful API,依照不同 HTTP 方法的請求,執行對應的程式碼
-
- Client 會去跟 TapPay Server 取得一組專屬 Prime
- 將 Prime 傳到後端 Server 作處理
- 後端 Server 會用這組 Prime,去跟 TapPay Server 要求付款 ( TapPay 會去跟 Bank Server 去請求付款 )
- 後端 Server 會接收 TapPay 付款結果,並回傳付款狀態回 Client
- 使用 Sass / SCSS 預處理、靜態切版
- 使用 JavaScript 操作 DOM 建立前端動態
-
- 實踐 RWD
- 實踐 infinite scroll、carousel
- 使用 Fetch API 實踐 AJAX
- 使用 Python、Flask.py 建立 Application server
- 使用 AWS EC2 的服務建立一台 Linux 機器,作業系統選擇 Ubuntu Server,並執行 Application server
- 實踐 RESTful API 並更新資料庫
-
- 使用 PyJWT 套件,使用者登入時,資料庫檢查 Email 和密碼配對成功,將會員的編號、姓名、Email 等關鍵資訊利用 JWT 機制編碼簽名,取得簽名後的 Token ,回傳給前端
- 前端程式登入成功後,接收後端回應的 Token,儲存在瀏覽器的 Local Storage
- 當前端程式呼叫需要驗證會員身分的後端 API 時,透過 Authorization Header 傳送 Bearer Token 到後端
- 驗證會員身分的後端程式,接收到前端請求後,可以從 Authorization Header 取得 Token,表示使用者已登入,同時可以取得登入時紀錄的關鍵資訊
-
- 使用 Connection Pool 穩定資料庫連線,避免閒置太久會中斷的問題產生。
- 使用 Git / GitHub 做版本控管,配合 pull request 實踐 GitHub Flow