Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

作業

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

  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