## 後端 roadmap - API 應用可參考[線稿圖](https://miro.com/app/board/uXjVLbiDml0=/) - API 開發規格請依照 [此 API 文件](https://liberating-turtle-5a2.notion.site/38e4dd6775894e94a8f575f20ca5b867?v=17c6a246851881208205000cacf67220) - db 欄位設計請依照 [此資料庫欄位圖片](https://firebasestorage.googleapis.com/v0/b/hexschool-courses.appspot.com/o/hex-website%2Fnode%2F1739179853094-fitness_5.png?alt=media&token=a65de209-3ae6-4263-bdc0-d4f08638ff20) 定義 - [課程 Repo](https://github.com/hexschool/node-training-postgresql) * [後端 Back-end 路線圖](https://github.com/goodjack/developer-roadmap-chinese#%E5%BE%8C%E7%AB%AF-back-end-%E8%B7%AF%E7%B7%9A%E5%9C%96) ## express 推薦架構 * [node-express-boilerplate](https://github.com/hagopj13/node-express-boilerplate) ## 開發流程 ## API 列表 ([postman 參考](https://drive.google.com/file/d/1feC3cFBRbpYsX5V2oNyYn6l2ORq4UYiZ/view?usp=sharing)) ### 會員功能(users) 1. [POST] 註冊會員:`{url}/api/users/signup` 2. [POST] 登入會員:`{url}/api/users/login` 3. [GET] 取得個人資料:`{url}/api/users/profile` 4. [PUT] 編輯個人資料:`{url}/api/users/profile` 5. [GET] 取得使用者已購買的方案列表:`{url}/api/users/credit-package` 6. [PUT] 使用者更新密碼:`{url}/api/users/password` 7. [GET] 取得已預約的課程列表:`{url}/api/users/courses` --- ### 教練專長 (skills) 1. [POST] 新增技能列表:`{url}/api/coaches/skill` 2. [GET] 取得技能列表:`{url}/api/coaches/skill` 3. [DELETE] 刪除教練專長:`{url}/api/coaches/skill/{id}` --- ### 購買方案 (credit-package) 1. [POST] 新增購買方案:`{url}/api/credit-package` 2. [GET] 取得購買方案:`{url}/api/credit-package` 3. [DELETE] 刪除購買方案:`{url}/api/credit-package` 4. [POST] 使用者購買方案:`{url}/api/credit-package/:creditPackageId` --- ### 教練 (coaches) 1. [GET] 取得教練列表:`{url}/api/coaches?per=10&page=1` 2. [GET] 取得教練詳細資料:`{url}/api/coaches/:coachId` 3. [GET] 取得指定教練課程列表:`{url}/api/coaches/:coachId/courses` --- ### 管理員 (admin) 1. [POST] 變更教練權限:`{url}/api/admin/coaches/:userId` 2. [POST] 新增教練課程:`{url}/api/admin/coaches/courses` 3. [GET] 取得教練自己的課程列表:`{url}/api/admin/coaches/courses` 4. [PUT] 變更教練資料:`{url}/api/admin/coaches` 5. [GET] 取得教練自己的課程詳細資料:`{url}/api/admin/coaches/courses/:courseId` 6. [GET] 取得教練自己的詳細資料:`{url}/api/admin/coaches` 7. [GET] 取得教練自己的月營收資料:`{url}/api/admin/coaches/revenue?month=january` --- ### 課程 (courses) 1. [GET] 取得課程列表:`{url}/api/courses` 2. [POST] 報名課程:`{url}/api/courses/:courseId` 3. [DELETE] 取消課程:`{url}/api/courses/:courseId` --- ### 圖片上傳 (upload) 1. [POST] 上傳圖片:`{url}/api/upload`