Skip to content

Files

Failed to load latest commit information.

Latest commit

 Cannot retrieve latest commit at this time.

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

作業

這一週的作業繳交時需要附上底下餐廳專案的網址,你可以選擇:

  1. 部署到免費空間 heroku
  2. 部署到自己買的主機(推薦)

hw1:移植餐廳網站

請把第六七八週寫的那個餐廳網站移植到 Express 上面(就像第十週 show time 那樣,把整個變成一個網站),因為這週的其他兩個作業都會需要先把餐廳網站移植過來。

另外,上一週寫的抽獎後台也請放進這個專案當中。

簡單來說呢,你要做的就是用 Express 打造一個餐廳網站還有餐廳後台,但應該會有大部分的資源都可以沿用之前的作業。

hw2:餐廳網站 menu 頁面

設計稿:https://app.zeplin.io/project/5eab7fd61be0341bdeed0db0/screen/5ef4ac17650383802281e906

(可以忽略購物車相關的部分,那是挑戰題)

這是之前的餐廳網站其中一個沒有做的頁面,也就是 menu 頁面。

有看到底下那些品項嗎?包含了:

  1. 名稱
  2. 價格
  3. 圖片

而你的任務就是要在後台加上一個頁面,讓管理員能夠輕鬆管理這些品項,必須要能夠:

  1. 新增品項
  2. 刪除品項
  3. 編輯品項

而前台的頁面也必須顯示出這些品項。

有關於上傳圖片的部分請參考 week17 的延伸挑戰題,如果上傳圖片不好做的話,也可以改成填入圖片網址就好。

hw3:餐廳網站常見問題後台

還記得我們在第七週做的常見問題頁面嗎?那時候是直接把內容寫在 HTML 裡面寫死,這種行為我們稱做 hard code,缺點就是沒有辦法動態修改。

那要怎樣才能動態修改呢?就是把這些問題的標題跟內容放在資料庫裡面,然後在程式中載入進來。這樣做的話,也能在後台新增一個頁面來管理這些常見問題的標題跟內容,就能夠動態修改了!

因此呢,這個作業的需求如下:

  1. 身為一個管理員,我希望常見問題的內容可以儲存在資料庫,這樣我才能方便修改
  2. 身為一個管理員,我希望管理後台可以管理常見問題,這樣我才能方便修改
  3. 身為一個管理員,我希望在後台可以新增常見問題,會有標題跟內容以及順序
  4. 身為一個管理員,我希望在後台可以編輯常見問題,包括標題跟內容以及順序
  5. 身為一個管理員,我希望在後台可以刪除常見問題
  6. 身為一個管理員,我希望前端頁面的資料是從後端拿的,這樣才能跟後台連動

簡單來說就是要做個後台可以管理常見問題列表,然後在前台的部分動態載入這些資料。

hw4:簡答題

  1. 什麼是反向代理(Reverse proxy)?
  2. 什麼是 ORM?
  3. 什麼是 N+1 problem?

請將答案寫在 hw4.md

挑戰題

學習系統的後端就是用 Express + Sequlize 寫的,有興趣的話可以研究一下程式碼:Lidemy/lidemy-learning-backend

挑戰題

其實原本的課綱規劃裡面是有個購物車以及訂單的功能,但是礙於時間因素以及其他考量,暫時把它拿掉了。

設計稿都在 zeplin 上面:https://app.zeplin.io/project/5eab7fd61be0341bdeed0db0/screen/5ef4ac0c2409f97a972078f2

如果你有餘裕的話,也可以試著自己把購物車以及訂單功能給實作出來。

超級挑戰題

請試著加上「email 通知」的功能,在訂單成立以後會寄一封信給使用者,信裡面提供訂單資訊以及一個連結,點了連結之後可以查看訂單資訊。

有關於寄信,你可以試著研究以下的服務:

  1. https://sendgrid.com/
  2. https://www.mailgun.com/

超級挑戰題

請試著串接金流服務,讓結帳頁面真的有結帳的功能(可以用測試帳號來串接,就不會真的收錢)。

關於金流服務,可以參考以下幾間:

  1. https://www.newebpay.com/
  2. https://www.ecpay.com.tw/
  3. https://www.opay.tw/Landing