一個使用Django開發的LINE Bot,提供天氣查詢、股票追蹤與財經新聞整合功能。
使用者可以透過LINE查詢天氣資訊、取得財經新聞及追蹤個股。系統整合多個外部API與資料來源,並使用LINE Flex Message呈現資訊。
本專案使用Docker Compose整合Django、PostgreSQL與ngrok,並透過啟動腳本自動取得ngrok URL、更新LINE Webhook。因此開發時不需要另外建立Python虛擬環境、手動啟動 ngrok或在每次重新啟動後手動設定Webhook
使用者可以輸入臺灣城市名稱,系統會透過中央氣象署 Open Data API取得對應的天氣資訊。
目前提供當日天氣資訊查詢。
支援的城市:
- 宜蘭縣
- 花蓮縣
- 臺東縣
- 澎湖縣
- 金門縣
- 連江縣
- 臺北市
- 新北市
- 桃園市
- 臺中市
- 臺南市
- 高雄市
- 基隆市
- 新竹縣
- 新竹市
- 苗栗縣
- 彰化縣
- 南投縣
- 雲林縣
- 嘉義縣
- 嘉義市
- 屏東縣
使用者在LINE聊天室輸入:
新聞
或:
news
系統會爬取財經新聞網站,取得最新的5筆財經新聞,並透過LINE Flex Message呈現。
使用者可以透過LINE Flex Message:
- 追蹤股票
- 取消追蹤股票
- 查詢目前追蹤的股票清單
- 查看追蹤股票的相關資訊
系統使用PostgreSQL儲存使用者與股票的追蹤關係。
- Django
- LINE Bot SDK
- PostgreSQL
- Selenium
- Docker
- ngrok
Webhook Auto-Configuration Flow

將主要功能拆分為獨立Service:
- Weather
- Stock
- Crawler
透過模組化設計降低元件之間的耦合,使各功能可以獨立開發、測試與擴充。
使用PostgreSQL設計資料模型,支援使用者與股票之間的多對多關係。
一個使用者可以追蹤多支股票,而同一支股票也可以被多個使用者追蹤。
本專案使用Docker Compose管理開發環境。以下說明專案的啟動、關閉、Database Migration及測試方式。
第一次建立Docker containers或修改以下檔案時,需要重新build:
docker-compose.ymlDockerfilerequirements.txt
執行:
docker compose up --build如果沒有修改Docker設定,可以直接執行:
docker compose updocker compose down此指令會停止並移除目前由Docker Compose建立的containers。
當Django Model有修改時,需要重新建立並套用migration。
docker compose exec django python3 manage.py makemigrationsdocker compose exec django python3 manage.py migrate也可以依序執行:
docker compose exec django python3 manage.py makemigrations
docker compose exec django python3 manage.py migrate執行Django Test:
docker compose exec django python3 manage.py test其中django是docker-compose.yml中Django service的名稱:
services:
django: ...如果未來將Django service名稱修改為web:
services:
web: ...則Test指令需要改成:
docker compose exec web python3 manage.py test| 用途 | 指令 |
|---|---|
| 第一次啟動 / Docker設定有修改 | docker compose up --build |
| 一般啟動 | docker compose up |
| 關閉 | docker compose down |
| 建立migration | docker compose exec django python3 manage.py makemigrations |
| 執行migration | docker compose exec django python3 manage.py migrate |
| 執行Test | docker compose exec django python3 manage.py test |






