# MOMO Pro System - 專案結構 > 最後更新:2026-01-29 --- ## 📁 目錄結構總覽 ``` momo-pro-system/ │ ├── 📂 核心應用 │ ├── app.py # Flask 主應用 (路由 + 視圖) │ ├── auth.py # 認證與授權模組 │ ├── config.py # 環境配置 │ └── scheduler.py # 爬蟲排程器 │ ├── 📂 routes/ # API 路由模組 (Blueprint) │ ├── dashboard_routes.py # 商品看板 API │ ├── daily_sales_routes.py # 每日業績 API │ ├── monthly_routes.py # 月份總表 API │ ├── sales_routes.py # 銷售分析 API │ ├── ai_routes.py # AI 文案生成 API │ ├── user_routes.py # 用戶管理 API │ ├── system_routes.py # 系統設定 API │ ├── export_routes.py # 報表匯出 API │ ├── import_routes.py # 資料匯入 API │ ├── edm_routes.py # EDM 活動 API │ ├── alert_routes.py # 告警通知 API │ ├── bot_api_routes.py # Bot API (Telegram/LINE) │ ├── trend_routes.py # 趨勢爬蟲 API │ ├── pchome_routes.py # PChome 爬蟲 API │ └── price_comparison_routes.py # 價格比較 API │ ├── 📂 services/ # 業務邏輯層 │ ├── 🤖 AI 服務 │ │ ├── ai_provider.py # AI 提供者抽象層 │ │ ├── ollama_service.py # Ollama LLM 服務 │ │ ├── gemini_service.py # Google Gemini 服務 │ │ └── ai_history_service.py # AI 歷史記錄服務 │ │ │ ├── 🕷️ 爬蟲服務 │ │ ├── momo_crawler.py # MOMO 商品爬蟲 │ │ ├── pchome_crawler.py # PChome 爬蟲 │ │ ├── trend_crawler.py # 趨勢爬蟲 (mybest, cosme) │ │ ├── mybest_crawler.py # mybest 爬蟲 │ │ └── cosme_crawler.py # @cosme 爬蟲 │ │ │ ├── 📧 通知服務 │ │ ├── notification_manager.py # 通知管理器 │ │ ├── notification_service.py # 通知發送服務 │ │ ├── telegram_bot_service.py # Telegram Bot │ │ └── vendor_email_service.py # 廠商郵件服務 │ │ │ ├── 📥 匯入服務 │ │ ├── import_service.py # 資料匯入服務 │ │ └── google_drive_service.py # Google Drive 整合 │ │ │ ├── 👤 用戶服務 │ │ ├── user_service.py # 用戶管理服務 │ │ ├── password_service.py # 密碼服務 │ │ └── permission_service.py # 權限服務 │ │ │ └── 🔧 其他服務 │ ├── cache_service.py # 快取服務 │ ├── price_comparison.py # 價格比較服務 │ ├── pg_sync_service.py # PostgreSQL 同步 │ └── exporter.py # 報表匯出服務 │ ├── 📂 database/ # 資料庫模型 │ ├── manager.py # 資料庫連線管理 │ ├── models.py # 核心模型 (Product, PriceRecord) │ ├── user_models.py # 用戶模型 (User, LoginHistory) │ ├── vendor_models.py # 廠商模型 (VendorStockout, etc.) │ ├── ai_models.py # AI 模型 (AIGenerationHistory, etc.) │ ├── import_models.py # 匯入模型 (ImportJob, ImportConfig) │ ├── permission_models.py # 權限模型 │ ├── notification_models.py # 通知模型 │ ├── trend_models.py # 趨勢模型 │ ├── edm_models.py # EDM 模型 │ └── vendor_manager.py # 廠商資料管理器 │ ├── 📂 templates/ # Jinja2 模板 │ ├── base.html # 基礎模板 │ ├── components/ # 可重用元件 │ │ ├── _navbar.html # 導航列 │ │ └── _loading.html # 載入動畫 │ ├── ai_recommend.html # AI 推薦頁面 │ ├── ai_history.html # AI 歷史頁面 │ ├── user_management.html # 用戶管理頁面 │ ├── price_comparison.html # 價格比較頁面 │ └── pchome_crawler.html # PChome 爬蟲頁面 │ ├── 📂 根目錄 HTML (主要頁面) │ ├── dashboard.html # 商品看板 │ ├── daily_sales.html # 每日業績 │ ├── sales_analysis.html # 銷售分析 │ ├── monthly_summary_analysis.html # 月份總表 │ ├── vendor_stockout_*.html # 廠商缺貨系列頁面 │ ├── edm_dashboard.html # EDM 活動看板 │ ├── settings.html # 系統設定 │ ├── system_settings.html # 系統參數 │ ├── logs.html # 系統日誌 │ └── login.html # 登入頁面 │ ├── 📂 static/ # 靜態資源 │ ├── images/ # 圖片資源 │ └── css/ # 樣式表 │ ├── 📂 k8s/ # Kubernetes 配置 │ ├── 00-namespace.yaml # Namespace │ ├── 01-secrets.yaml # Secrets │ ├── 02-configmap.yaml # ConfigMap │ ├── 03-postgres.yaml # PostgreSQL StatefulSet │ ├── 04-momo-app.yaml # Flask 應用 Deployment │ ├── 05-scheduler.yaml # 排程器 Deployment │ ├── 08-google-drive-secret.yaml # Google Drive 認證 │ ├── monitoring/ # 監控配置 │ │ ├── alerting-rules.yaml # 告警規則 │ │ └── values-prometheus.yaml # Prometheus Helm 配置 │ └── nginx/ # Nginx 配置 │ ├── monitor.conf # 監控反向代理 │ └── setup-ssl.sh # SSL 設定腳本 │ ├── 📂 docker/ # Docker 容器配置 │ ├── prometheus/ # Prometheus 監控 │ ├── grafana/ # Grafana 儀表板 │ ├── alertmanager/ # 告警管理 │ ├── loki/ # 日誌收集 │ ├── promtail/ # 日誌採集 │ ├── postgres/ # PostgreSQL │ ├── nginx/ # Nginx │ └── nginx-monitor/ # 監控入口 │ ├── 📂 n8n-workflows/ # n8n 自動化工作流 │ ├── 01-disk-space-monitor.json │ ├── 02-ssl-certificate-monitor.json │ ├── 03-cicd-pipeline-notify.json │ ├── 04-backup-monitor.json │ ├── 05-crawler-monitor.json │ ├── 06-k8s-pod-monitor.json │ └── ... (共 16 個工作流) │ ├── 📂 deploy/ # 部署腳本 │ ├── deploy.sh # 主部署腳本 │ ├── lib/ # 部署函式庫 │ └── scripts/ # 輔助腳本 │ ├── 📂 scripts/ # 維運腳本 │ ├── cicd_auto_repair.sh # CI/CD 自動修復 │ └── ... │ ├── 📂 docs/ # 專案文件 │ ├── PRD.md # 產品需求書 │ ├── TECH_STACK.md # 技術架構 │ ├── DATABASE_SCHEMA.md # 資料庫結構 │ └── ... │ ├── 📂 config/ # 配置檔案 │ ├── google_credentials.json # Google OAuth 認證 │ ├── google_token.pickle # Google Token │ └── nginx/ # Nginx 站點配置 │ ├── 📂 data/ # 資料目錄 │ ├── momo_database.db # SQLite 主資料庫 │ └── scheduler_stats.json # 排程統計 │ ├── 📂 logs/ # 日誌目錄 │ ├── 📄 配置檔案 │ ├── docker-compose.yml # Docker Compose │ ├── docker-compose.devops.yml # DevOps 容器 │ ├── Dockerfile # Docker 映像配置 │ ├── requirements.txt # Python 依賴 │ ├── .gitlab-ci.yml # GitLab CI/CD │ ├── .gitignore # Git 忽略 │ └── .env.example # 環境變數範例 │ └── 📄 文件 ├── AGENTS.md # Codex 專案入口與工作規則 ├── CLAUDE.md # 舊工作流相容轉址頁 ├── PROJECT_CONSTITUTION.md # 專案憲法 ├── DEPLOY_README.md # 部署說明 └── SECURITY_FIX_SUMMARY.md # 安全修復紀錄 ``` --- ## 📊 專案統計 | 項目 | 數量 | |------|------| | Python 檔案 | ~100+ | | HTML 模板 | ~35 | | API 路由模組 | 17 | | 服務模組 | 27 | | 資料庫模型 | 16 | | K8s 配置 | 10 | | n8n 工作流 | 16 | | 總程式碼行數 | ~28,000+ | --- ## 🔗 模組依賴關係 ```mermaid graph TB subgraph "前端層" HTML[HTML 模板] JS[JavaScript] end subgraph "路由層 (routes/)" Routes[API Routes] end subgraph "服務層 (services/)" AI[AI 服務] Crawler[爬蟲服務] Notify[通知服務] Import[匯入服務] User[用戶服務] end subgraph "資料層 (database/)" Models[資料模型] Manager[連線管理] end subgraph "資料庫" PG[(PostgreSQL)] SQLite[(SQLite)] end HTML --> Routes JS --> Routes Routes --> AI Routes --> Crawler Routes --> Notify Routes --> Import Routes --> User AI --> Models Crawler --> Models Notify --> Models Import --> Models User --> Models Models --> Manager Manager --> PG Manager --> SQLite ``` --- ## 📁 主要目錄說明 ### `/routes` - API 路由層 所有 REST API 端點定義,採用 Flask Blueprint 架構。 ### `/services` - 業務邏輯層 核心業務邏輯,包含 AI、爬蟲、通知、匯入等服務。 ### `/database` - 資料存取層 SQLAlchemy ORM 模型與資料庫管理。 ### `/templates` - 視圖模板 Jinja2 HTML 模板,用於 Server-Side Rendering。 ### `/k8s` - Kubernetes 配置 K3s 部署配置,包含 Deployment、Service、ConfigMap 等。 ### `/n8n-workflows` - 自動化工作流 n8n 低代碼自動化工作流 JSON 定義。