本專案是 Sportify 的後端服務,專為處理應用程式的伺服器邏輯與 API 端點設計。
Sportify Backend 提供應用程式的資料處理與伺服器邏輯,支援完整的後端功能。
測試帳號密碼 (建議僅提供僅能查看的帳號密碼)
帳號: [email protected]
密碼: Test123- 用戶註冊與登入
- JWT 驗證
- 資料庫操作
- API 端點
- Docker 支援
以下是如何將此專案安裝於本地環境的指引:
git clone https://github.com/Mattie1391/sportify-backend.gitcd sportify-backendnpm install請在終端機輸入以下指令來複製 .env 檔案,並依需求修改內容:
cp .env.example .envnpm run dev在瀏覽器中輸入以下網址:
http://localhost:3000/PORT= # 定義應用程式運行的伺服器端口號
DB_HOST= # 定義資料庫主機的地址,通常是伺服器的 IP 或域名
DB_PORT= # 定義資料庫服務的連接端口號
DB_USERNAME= # 定義資料庫的使用者名稱
DB_PASSWORD= # 定義連接資料庫所需的密碼
DB_NAME= # 定義應用程式使用的資料庫名稱
JWT_EXPIRES_DAY= # 定義 JSON Web Token (JWT) 的有效期限
JWT_TEMPORARY_EXPIRES_DAY= # 定義臨時 JWT 的有效期限
JWT_SECRET= # 用於加密與驗證 JWT 的密鑰
GMAIL_USER_NAME= # Gmail 發信帳號
GMAIL_APP_PASSWORD= # Gmail 應用程式密碼
DB_SYNCHRONIZE= # 是否自動同步資料庫結構(開發建議為 true)
# === 金流設定(綠界) ===
MERCHANT_ID= # 特店編號(Merchant ID)
HASH_KEY= # 串接金鑰 HashKey
HASH_IV= # 串接金鑰 HashIV
RETURN_URL= # 付款完成導回網址
NOTIFY_URL= # 付款狀態通知網址
# === Cloudinary(圖片與影片雲端儲存)===
CLOUDINARY_CLOUD_NAME= # Cloudinary 帳戶名稱
CLOUDINARY_API_KEY= # Cloudinary API 金鑰
CLOUDINARY_API_SECRET= # Cloudinary API 密鑰
# === Mux(影片串流服務)===
MUX_TOKEN_ID= # Mux API 金鑰 ID
MUX_TOKEN_SECRET= # Mux API 金鑰密鑰
MUX_SIGNING_KEY= # Mux 影片簽章金鑰
MUX_SIGNING_KEY_SECRET= # 對應的私密簽章金鑰(Base64)
MUX_SIGNING_KEY_FOR_PUBLIC= # 用於公開影片的簽章金鑰
MUX_SIGNING_KEY_SECRET_FOR_PUBLIC= # 公開影片簽章金鑰的私密部分- bin: 儲存應用程式啟動腳本。
- config: 配置檔案資料夾,例如資料庫設定。
- controllers: 處理業務邏輯與 API 請求的控制器。
- db: 資料庫連接與操作相關檔案。
- entities: 定義資料模型與 ORM 實體。
- middlewares: 中介層邏輯,例如認證與日誌記錄。
- node_modules: 自動生成的依賴套件資料夾。
- public: 靜態資源,如圖片與 CSS 檔案。
- routes: 定義應用程式的路由。
- services: 處理複雜邏輯或外部 API。
- utils: 共用工具函數。
- views: 用於伺服器端渲染的模板檔案。
- Node.js v16.15.0
- Express.js
- PostgreSQL
- JWT 身份驗證
- Docker
本專案使用 GitHub Actions,當提交 Pull Request 時會執行以下動作:
- 建立 Node.js 環境
- 安裝相依套件
- 編譯程式碼
- 執行測試
- 部署至伺服器
- GitHub
- Email: [email protected]



