Skip to content

Mattie1391/sportify-backend

Repository files navigation

本專案是 Sportify 的後端服務,專為處理應用程式的伺服器邏輯與 API 端點設計。


Sportify Backend

專案封面圖

Sportify Backend 提供應用程式的資料處理與伺服器邏輯,支援完整的後端功能。


功能

測試帳號密碼 (建議僅提供僅能查看的帳號密碼)

帳號: [email protected]
密碼: Test123
  • 用戶註冊與登入
  • JWT 驗證
  • 資料庫操作
  • API 端點
  • Docker 支援

畫面

範例圖片 1 範例圖片 2 範例圖片 3


安裝

以下是如何將此專案安裝於本地環境的指引:

取得專案

git clone https://github.com/Mattie1391/sportify-backend.git

移動到專案資料夾

cd sportify-backend

安裝相依套件

npm install

環境變數設定

請在終端機輸入以下指令來複製 .env 檔案,並依需求修改內容:

cp .env.example .env

運行專案

npm 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

CI/CD 說明

本專案使用 GitHub Actions,當提交 Pull Request 時會執行以下動作:

  • 建立 Node.js 環境
  • 安裝相依套件
  • 編譯程式碼
  • 執行測試
  • 部署至伺服器

聯絡作者

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages