iT邦幫忙

2025 iThome 鐵人賽

DAY 3
1

今天正式開始了 Phase 1: Project Foundation(專案基礎建設)。

主要目標是建立後端核心架構、初始化相依套件、設定開發環境,並確保伺服器能成功執行。

依照Day2擬定的計劃表,請Claude先幫我做專案基礎建設

https://ithelp.ithome.com.tw/upload/images/20250916/20178508qJOQ3ysJpP.png

🔧 1. 初始化專案

首先建立了一個新的 Node.js 專案,並透過 package.json 初始化了所需的套件:

  • 核心框架express, mongoose, dotenv
  • 安全性與中介層helmet, cors, compression, express-rate-limit
  • 日誌與工具morgan, socket.io

這些套件能提供未來擴充性與角色導向功能所需的基礎。


🖥️ 2. Express.js 伺服器設定

接著,建立了主要伺服器檔案,完成:

  • 設定 Express.js 中介層(CORS、Helmet、Compression)
  • 加入 流量限制 與日誌工具(Morgan)
  • 整合 Socket.io 以支援即時更新
  • 建立基礎 HTTP server,監聽 PORT=3001

🗄️ 3. 資料庫連線

實作了資料庫連線模組 (connection.js),透過 Mongoose 連線:

mongodb://localhost:27017/rehab_tracker

這樣能確保之後能持久化儲存病人、物理治療師與醫生的資料。


⚠️ 4. 全域錯誤處理

我建立了全域錯誤處理中介層,統一管理錯誤日誌與回應格式。

這將讓日後的除錯與維護更有效率。


🛣️ 5. API 路由骨架

先架好了主要的路由檔案:

  • auth.js → 驗證(註冊、登入、token 管理)
  • patients.js → 病人儀表板、行程、備註
  • physiotherapists.js → 病人管理、行程安排、回饋
  • doctors.js → 手術紀錄、醫療註解、復原追蹤

目前只是骨架,但已經規劃好模組化結構。


🛠️ 6. 開發環境設定

為了保持一致性,設定了:

  • ESLint(Airbnb style guide)
  • Prettier(程式碼格式化)
  • .env.env.example 檔案做環境變數管理

這樣能維持可維護性與最佳實務。


📚 7. 文件撰寫

建立了初步文件:

  • docs/api/README.md → API 總覽與端點
  • docs/dev/SETUP.md → 開發環境安裝指南(前置需求、快速啟動、除錯方式)

✅ 8. 驗證成果

完成初步建設後,Claude會測試並修正,
第一次測試出現錯誤:

https://ithelp.ithome.com.tw/upload/images/20250916/20178508H9Wyc91SUF.png]

後來發現是沒有下載MongoDB

https://ithelp.ithome.com.tw/upload/images/20250916/20178508yym6z3nDN9.png

雖然經過了一些迂迴,不過它還是有幫我安裝好
((可能自己手動裝會快一點XD

https://ithelp.ithome.com.tw/upload/images/20250916/20178508csQFnG3TaV.png

最後請它總結:
https://ithelp.ithome.com.tw/upload/images/20250916/2017850867wbSfSWL5.png

伺服器成功在 port 3001 啟動 🎉 —— 這是一個很大的里程碑,證明基礎架構穩定可用。


💡 心得

Claude使用起來真的很方便,依照架構產出相應的檔案,非常有條理。
初步建立的資料庫使用mongoose還有Express.js使用到的伺服器設定,都是我之前沒碰過的,明天會來研究這些新的知識點,並記錄在文章!

專案Github Repo : https://github.com/CHING-WENLAI1031/Rehab_Tracker


上一篇
Day2 – Claude Code 設定與專案規劃
下一篇
Day 4: 初探 MongoDB Connection
系列文
30 天用 Vibe Coding 打造多角色復健追蹤應用5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言