飯魚 FanYu | 個人網站飯魚 FanYu | 個人網站
小傲驕

小傲驕

臺科大桌遊社專屬的 Line Bot

TypeScriptExpress.jsJavaScriptNode.jsBackendRESTful APILine Bot SDKVercelGit / GitHub
LicenseStarsForksIssuesLast commitCreated atRepo sizeCommit Activity/yLanguages/top

語言

  • TypeScript89.5%
  • CSS9.9%
  • JavaScript0.5%

NTUST-BoardGameClub-Bot 🎲

台科大桌遊社 LINE Bot

📝 專案簡介

這是一個專為台科大桌遊社開發的 LINE Bot,提供社團成員桌遊查詢、借還、推薦等功能。透過 LINE 聊天機器人,社員可以輕鬆管理桌遊相關事務,並參與社團活動。

✨ 主要功能

🔐 社員系統

  • 註冊: 社員透過入社序號完成註冊
  • 手動註冊: 手動輸入個人資料進行註冊
  • 簽到: 社課簽到功能,影響期末抽獎機率

🎯 桌遊功能

  • 找桌遊: 透過多種條件搜尋桌遊(需指定搜尋條件)
  • 借桌遊: 使用桌遊編號借用桌遊(限已註冊社員)
  • 還桌遊: 使用桌遊編號歸還桌遊(限已註冊社員)
  • 推薦: 查看社員推薦的桌遊資訊
  • 熱門桌遊: 瀏覽最受歡迎的桌遊排行

🎮 社團互動

  • 我覺得好好玩: 為玩過的桌遊留下評價(限已註冊社員)
  • 建議桌遊: 向社團推薦新桌遊(限已註冊社員)

🛠️ 管理功能(幹部專用)

  • on: 開啟特定功能
  • off: 關閉特定功能

🔧 系統功能

  • 重置: 清除個人使用狀態,重新開始對話流程

🏗️ 技術架構

後端技術

  • Node.js + TypeScript: 主要開發語言
  • Express.js: Web 框架
  • LINE Bot SDK: LINE 聊天機器人開發套件
  • Google Sheets API: 資料儲存與管理
  • Vercel: 部署平台

專案結構

text

🚀 快速開始

環境需求

  • Node.js 16.x 或更高版本
  • npm 或 yarn 套件管理器

安裝步驟

  1. 複製專案

    bash
  2. 安裝依賴

    bash
  3. 設定環境變數

    建立 .env 檔案並設定以下變數:

    text
  4. 啟動開發伺服器

    bash
  5. 生產環境啟動

    bash

🛠️ 開發指令

bash

📊 API 端點

Webhook

  • POST /webhook - LINE Bot webhook 接收訊息

社產管理

  • GET /assets - 取得所有桌遊清單
  • GET /assets/search - 搜尋桌遊
  • GET /assets/:id - 取得特定桌遊資訊

🔐 權限管理

社員權限

  • 未註冊用戶: 僅能使用註冊功能
  • 已註冊社員: 可使用所有桌遊借還功能
  • 管理員: 擁有系統管理權限

功能權限分級

  • 公開功能: 幫助、註冊、手動註冊、找桌遊、推薦、熱門桌遊
  • 社員功能: 簽到、借桌遊、還桌遊、建議桌遊、我覺得好好玩
  • 管理功能: on/off 系統控制(需特殊權限)

📱 使用方式

  1. 加入 LINE Bot 好友
  2. 註冊社員: 輸入「註冊」開始註冊流程,或使用「手動註冊」
  3. 查詢桌遊: 輸入「找桌遊」後選擇搜尋條件,再輸入關鍵字
  4. 借用桌遊: 輸入「借桌遊」後提供桌遊編號(盒子上的編號)
  5. 歸還桌遊: 輸入「還桌遊」後提供桌遊編號
  6. 社課簽到: 輸入「簽到」參與社課簽到
  7. 查看推薦: 輸入「推薦」查看推薦桌遊或「熱門桌遊」查看排行
  8. 桌遊評價: 玩完桌遊後輸入「我覺得好好玩」留下評價

🚀 部署

本專案使用 Vercel 進行部署:

  1. 連接 GitHub: 將專案推送到 GitHub
  2. 部署到 Vercel: 連接 Vercel 並自動部署
  3. 設定環境變數: 在 Vercel 控制台設定環境變數
  4. 設定 Webhook: 在 LINE Developer Console 設定 Webhook URL

🤝 貢獻指南

歡迎提交 Pull Request 或回報 Issue!

  1. Fork 本專案
  2. 建立功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交變更 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 開啟 Pull Request

📄 授權條款

本專案採用 ISC 授權條款 - 詳見 LICENSE 檔案


⭐ 如果這個專案對你有幫助,歡迎給個星星!

討論區