- MiniCRM Pro 是個 開源、輕量型高效率 CRM 系統,專為中小企業、創業者與小型電商 打造,無需設定、免授權費,只保留最實用的核心功能
- RAG-based AI 客服,結合 RAG + LLaMA3 + LINE Messaging API,檢索系統內部資訊(如知識庫、客服紀錄、SOP、FAQ),以自然語言隨時隨地即時與系統互動
- AI 助理將能根據系統資料回答精準且具上下文的業務與客戶問題
- 查詢客戶資料、訂單狀態、交易記錄、客服工單、FAQs、知識庫
- 整合聯絡資訊、互動紀錄、購買歷史、服務請求、資產紀錄與報價/促銷紀錄,建立完整可追溯的客戶輪廓,掌握每位客戶的偏好、行為、問題、需求、價值
- 同時管理多個品牌與供應商,不同品牌或供應商可進行獨立的客戶資料管理(訂單、交易記錄..等)
- 訂單、交易、產品資料、追蹤交易紀錄
- 管理客戶關係、追蹤銷售業績及分析業務表現,並進行後續的精準再行銷及提升顧客忠誠度及回流率。
- 瞭解公司是否朝正確方向邁進,或是否有不足之處。
- 獲得更多潛在客戶、提升生產力,以及提升客戶滿意度
- 透過互動式儀表板瀏覽銷售業績、當季客戶偏好、客戶族群、營收表現..等資訊
- 營收趨勢、今日、本月(新增客戶量、新增訂單、完成交易數)、客戶指標(平均客戶價值、待處理訂單、轉換率)...等
- 客戶增長趨勢、客戶來源分佈、客戶價值分析、客戶行為分析...
- 客戶生命週期價值 (CLV) 計算及分析: 客戶價值分布、各客戶來源價值、頂級客戶排行、月度 CLV 趨勢...
- 查詢客戶資料、訂單狀態、交易記錄、客服工單、FAQs、知識庫
-
Example Usage:
- AI 助理根據系統資料回答精準且具上下文的業務與客戶問題
- 例:「告訴我 VIP 客戶常見的售後問題,以及該如何處理」
- 例:「幫我找出上個月購買最多的 25-35 歲女性客戶」
-
(開發中):成交率、追加銷售率、新淨收入、銷售週期長短、客戶獲取成本 (CAC)、 AI 智慧摘要
RAG = Retrieval(檢索)+ Augmented(增強)+ Generation(生成)
- Retrieval: search_similar_examples() 找相似範例
- Augmented: 將範例+schema 作為上下文
- Generation: LLM 根據上下文生成 SQL
- 知識收集: 將 CRM 系統的資料庫 schema 和查詢範例向量化儲存
- 查詢理解: 當用戶輸入自然語言查詢時,搜尋相關的範例和 schema
- 上下文增強: 提供相關背景資訊給 LLM,提升 SQL 生成準確度
- Ex:
- "幫我找出上個月購買最多的 25-35 歲女性客戶"
- 系統會搜尋相關的客戶表 schema 和類似查詢範例
- 協助 LLM 生成正確的 SQL 查詢
-
知識庫儲存階段(預先建立)
- 資料表 Schema → 格式化文本 → 向量化 → 存入 ChromaDB
- 查詢範例 → 格式化文本 → SentenceTransformer 向量化 → ChromaDB (examples_collection)
-
查詢處理並回覆階段(用戶互動)
- 用戶輸入 → 意圖分類(同時向量搜尋相似範例作為上下文)→ SQL 生成(同時向量搜尋相關 Schema + 相似範例作為上下文)→ 執行 SQL → SQL 結果 → 格式化限制(限制結果筆數、避免傳給 LLM 的資料過長,影響回應品質)→ LLM 生成自然語言 → 返回用戶
| 步驟 | 函數 | 檔案 | 說明 | Ollama LLM |
|---|---|---|---|---|
| 1 | add_sample_data() |
query_engine.py:319 | 主控初始化函數 | |
| 2 | _add_customer_service_schemas() |
query_engine.py:412 | 準備 3 個資料表的 schema | |
| 3.1 | add_schema_info() |
knowledge_base.py:32 | 添加 FAQ 表 schema | |
| 3.1.1 | _format_schema_text() |
knowledge_base.py:151 | 格式化 schema 為文本 | |
| 3.1.2 | SentenceTransformer | knowledge_base.py:38 | 向量化並存入 ChromaDB | |
| 3.2 | add_schema_info() |
knowledge_base.py:32 | 添加知識庫表 schema | |
| 3.3 | add_schema_info() |
knowledge_base.py:32 | 添加工單表 schema | |
| 4 | add_query_example() × N 次 |
knowledge_base.py:53 | 添加查詢範例並向量化 |
| 順序 | 函數 | 檔案:行號 | 說明 | Ollama LLM |
|---|---|---|---|---|
| 1 | process_query() |
query_engine.py:28 | 主查詢處理入口 | |
| 2 | classify_intent() |
llm_service.py:25 | 開始意圖分類 | |
| 2.1 | search_similar_examples() |
knowledge_base.py:75 | 第 1 次搜尋:為意圖分類提供上下文 | |
| 2.2 | Ollama LLM 調用 | llm_service.py:63 | 意圖分類 | ✅ 第 1 次 |
| 3 | _handle_sql_query() |
query_engine.py:82 | SQL 查詢處理流程 | |
| 4 | generate_sql() |
llm_service.py:84 | 開始 SQL 生成 | |
| 4.1 | search_relevant_schemas() |
knowledge_base.py:121 | 搜尋相關資料表結構 | |
| 4.2 | search_similar_examples() |
knowledge_base.py:75 | 第 2 次搜尋:為 SQL 生成提供範例 | |
| 4.3 | Ollama LLM 調用 | llm_service.py:127 | 結合 RAG 檢索結果生成 SQL | ✅ 第 2 次 |
| 5 | _execute_sql() |
query_engine.py:167 | 安全執行 SQL | |
| 6 | generate_response() |
llm_service.py:147 | 轉為自然語言回應 | ✅ 第 3 次 |
-
可依區間、來源、標籤等條件切換統計維度
-
清晰呈現營運概況與銷售表現
-
營收趨勢圖表:顯示營收增長曲線與趨勢分析
-
客戶成長趨勢:顯示客戶數量增長曲線與趨勢分析
-
訂單成長分析:訂單數量與金額成長統計
-
交易分析:付款方式分布、交易狀態統計、營收來源
-
關鍵指標卡片:
- 今日數據:新增客戶數、新增訂單數、完成交易數
- 月度統計:客戶指標、平均客戶價值
- 營運指標:待處理訂單、轉換率計算
-
可跨欄位比對,快速定位目標客戶或交易紀錄
-
客戶管理,可依 客戶名稱、聯絡方式(Email、電話)、公司、來源 進行搜尋
-
多條件篩選與即時模糊搜尋功能
-
客戶總覽:客戶基本統計與導航中心、6 大關鍵指標、導航卡片、統一篩選器
- 客戶基本資料 (姓名、聯絡方式、公司)
- 客戶分類 (來源、標籤、備註)
- 人口統計資料 (年齡、性別、購買偏好)
- 客戶資料匯入功能
- 客戶搜尋和排序
-
客戶人口分析:年齡/性別分布、消費行為深度分析
-
客戶行為分析:產品偏好、季節性購買模式分析、策略建議
-
客戶分群分析:客戶來源效果、等級分布、細分矩陣
-
客戶終身價值(CLV)分析:每個客戶在整個生命週期內預期能為公司帶來的總價值
- CLV 概覽統計:平均 CLV、平均客單價、平均消費頻率、總客戶價值、平均顧客壽命
- 客戶價值分布:低/中/高/頂級客戶分群分析
- 來源 CLV 分析:各獲客渠道的客戶價值
- 頂級客戶排行:CLV 前 20 名客戶詳細列表
- 月度 CLV 趨勢:時間序列價值變化分析
- 可以:
- 關注最有價值的客戶群體
- 追蹤不同獲客渠道的客戶價值
- 制定基於 CLV 的精準行銷策略,比如針對高 CLV 值的客戶提供專屬優惠或服務
- 監控客戶價值趨勢變化
-
批次資料匯入:
- 支援 CSV / Excel 檔案格式
- 彈性欄位對應,可選擇忽略不必要欄位
- 不完整資料亦可導入,具備容錯機制
所有分析頁面皆支援篩選功能:日期範圍、客戶來源、年齡、性別
-
可依訂單編號、客戶名稱、聯絡方式、訂單狀態 搜尋特定訂單 Ï
-
下拉選單可依 訂單狀態(待處理、處理中、已出貨、已送達、已取消、已退款)篩選
-
快速搜尋:依訂單編號、客戶名稱、聯絡方式進行搜尋
-
狀態篩選:待處理、處理中、已出貨、已送達、已取消、已退款
-
訂單詳情:訂單資訊與項目管理(OrderItem)、金額計算 (小計、稅金、運費、折扣)
-
批次操作:支援多筆訂單狀態更新
-
訂單建立、編輯、檢視、刪除
- 產品基本資料:
- 產品分類、品牌管理、供應商資料
- SKU 編碼、SKU、價格少設定、成本、重量、尺寸、圖片
- 庫存追蹤:
- 現有/預留/可用庫存計算、異動記錄追蹤
- 低庫存警示、缺貨提醒系統
- 入庫、出庫、調整、盤點完整記錄
- 多倉庫位置管理
- 完整價格變動記錄與趨勢分析
- 價格管理:歷史價格追蹤、變動記錄
- 變體支援:產品規格管理(顏色、尺寸等)
-
交易記錄,可依 交易編號、客戶名稱搜尋
-
下拉選單可依
- 交易狀態(待處理、已完成、失敗、已取消、已退款)篩選
- 類型(銷售、退款、付款、退單)篩選
-
快速搜尋:依交易編號、客戶名稱進行查找
-
多重篩選:
- 交易狀態:待處理、已完成、失敗、已取消、已退款
- 交易類型:銷售、退款、付款、退單
-
付款方式:多種付款方式統計(信用卡、PayPal、Stripe、銀行轉帳、現金、支票..等)
-
交易報表:財務流水與分析
-
客服工單管理:
- 可從客戶列表內選擇客戶或新增新客戶
- 客服工單號碼自動生成邏輯:CS + 年月日 + 4 位序號
- 工單狀態:開啟中、處理中、等待回應、已解決、已關閉
- 優先級分類:低、中、高、緊急
- 問題分類:一般諮詢、技術問題、計費問題、產品問題、物流問題、退換貨、客訴、功能建議
- 工單內容:標題、問題描述、標籤
- 負責人:專員 A、專員 B、專員 C...主管
-
搜尋和篩選功能:
- 搜尋:工單號碼、標題、問題描述、客戶姓名、客戶 email
- 下拉篩選:
- 工單狀態:開啟中、處理中、等待回應、已解決、已關閉
- 優先級:低、中、高、緊急
- 問題分類:一般諮詢、技術問題、計費問題、產品問題、物流問題、退換貨、客訴、功能建議
- 負責人員:依系統用戶篩選
- 客戶:依客戶篩選
- 排序功能:建立時間、更新時間、優先級、狀態
-
客服記錄管理:
- 記錄篩選:
- 工單:依特定工單篩選記錄
- 記錄類型:內部備註、客戶回應、系統記錄、解決方案
- 客戶可見性:是否對客戶可見
- 時間排序:依記錄建立時間排序
- 記錄篩選:
-
客服記錄追蹤:
可直接在工單詳情頁面查看工單基本資訊、狀態資訊、客服紀錄、時間軸
- 客服互動歷史記錄
- 內部備註、客戶回應、系統記錄、解決方案分類
- 回應時間統計:首次回應時間、解決時間計算
- 滿意度評分:1-5 分客戶滿意度評價
- 知識文章管理:FAQ、操作指南、政策說明、故障排除、SOP
- 多層次分類結構:支援階層式分類管理
- 搜尋和篩選功能:
- 文字搜尋:標題、內容、摘要、標籤全文檢索
- 下拉篩選:
- 分類:依知識庫分類篩選
- 內容類型:FAQ、操作指南、政策說明、故障排除、SOP
- 公開狀態:公開可見、內部限制
- 精選文章:是否為置頂精選
- 排序功能:建立時間、更新時間、瀏覽次數
- 內容統計:瀏覽次數、有用評價、無用評價追蹤
- 精選文章:重要內容置頂顯示
- 問答管理:問題與答案配對維護
- 搜尋和篩選功能:
- 文字搜尋:問題、答案內容全文檢索
- 下拉篩選:
- 分類:依知識庫分類篩選
- 狀態:啟用、停用狀態篩選
- 置頂狀態:是否為精選置頂
- 排序功能:置頂優先、自訂排序、查看次數、建立時間
- 分類整理:依業務類型分門別類
- 置頂功能:重要問題優先顯示
- 使用統計:追蹤查看次數分析
- 可手動新增、編輯客戶資料,可編輯 姓名、Email、電話、地址、公司、年齡、性別、購買季節偏好、購買產品類別偏好、備註...等欄位
- 也可直接在該客戶詳情頁面直接查詢:該客戶的歷史訂單與交易記錄、總消費金額、活躍度..等
- 支援手動新增或批次匯入(CSV / Excel)
- 多欄位對應設計,可選擇忽略不必要欄位
- 匯入具容錯能力,即使缺少總消費額、年齡、地址..等欄位也可成功導入,可後續補齊資料,預設顯示「未提供」
可手動新增訂單,也可直接在該訂單內連結到擁有此訂單的客戶,也可新增多項產品,並即時計算稅額、運費、折扣、總金額
- 可依照 交易狀態、交易類型 下拉選單快速篩選交易記錄,並可直接在該交易記錄內連結到該筆訂單
- 可手動新增交易記錄,編輯 交易類型、付款方式、付款狀態、金流串接資訊、金流回應、處理時間
- 客戶管理系統
- 訂單管理系統:搜尋 Joseph 開頭,訂單狀態為處理中的搜尋結果
- 框架: Django 4.2.7 + Django REST Framework
- 身份驗證: JWT (Simple JWT)
- 資料庫: MySQL (可配置)
- API 文件: DRF 自動產生
- 安全性: CORS 標頭、環境變數配置
- 框架: React 19 with TypeScript
- 樣式設計: TailwindCSS 4
- 路由管理: React Router 6
- HTTP 客戶端: Axios with interceptors
- 建置工具: Vite
- 狀態管理: React Hooks
- 環境管理: Python venv
- 套件管理: pip (Python), npm (Node.js)
- 程式碼品質: ESLint, TypeScript
- 版本控制: Git 與 .gitignore
- Python 3.8+
- Node.js 16+
- MySQL 5.7+ (或 SQLite 作為替代)
- Git
# 複製儲存庫
git clone https://github.com/yourusername/react-ts-crm.git
cd react-ts-crm
# 設定環境變數
cp .env.example .env
# 編輯 .env 檔案,填入您的資料庫設定# 建立並啟動虛擬環境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安裝相依套件
pip install -r requirements.txt
# 執行資料庫遷移
python manage.py migrate
# 建立超級使用者
python manage.py createsuperuser
# 建立範例資料 (選用)
python simple_dummy_data.py
# 啟動 Django 伺服器
python manage.py runserver# 進入前端目錄
cd frontend
# 安裝相依套件
npm install
# 啟動開發伺服器
npm run dev- 前端介面: http://localhost:5173
- 後端 API: http://localhost:8000
- Django 後台: http://localhost:8000/admin
- 示範登入:
test_young/young0921
POST /api/auth/login/ # 使用帳號密碼登入
POST /api/auth/refresh/ # 刷新 JWT 令牌
GET /api/customers/ # 列出客戶 (含分頁)
POST /api/customers/ # 建立新客戶
GET /api/customers/{id}/ # 取得客戶詳情
PUT /api/customers/{id}/ # 更新客戶資料
DELETE /api/customers/{id}/ # 刪除客戶
GET /api/customers/{id}/orders/ # 取得客戶訂單
GET /api/customers/{id}/transactions/ # 取得客戶交易記錄
GET /api/orders/ # 列出訂單 (含分頁)
POST /api/orders/ # 建立新訂單
GET /api/orders/{id}/ # 取得訂單詳情
PUT /api/orders/{id}/ # 更新訂單
DELETE /api/orders/{id}/ # 刪除訂單
GET /api/transactions/ # 列出交易記錄 (含分頁)
POST /api/transactions/ # 建立新交易記錄
GET /api/transactions/{id}/ # 取得交易詳情
PUT /api/transactions/{id}/ # 更新交易記錄
DELETE /api/transactions/{id}/ # 刪除交易記錄
GET /api/products/categories/ # 列出產品分類
POST /api/products/categories/ # 建立新分類
GET /api/products/categories/{id}/ # 取得分類詳情
PUT /api/products/categories/{id}/ # 更新分類
DELETE /api/products/categories/{id}/ # 刪除分類
GET /api/products/brands/ # 列出品牌
POST /api/products/brands/ # 建立新品牌
GET /api/products/brands/{id}/ # 取得品牌詳情
PUT /api/products/brands/{id}/ # 更新品牌
DELETE /api/products/brands/{id}/ # 刪除品牌
GET /api/products/suppliers/ # 列出供應商
POST /api/products/suppliers/ # 建立新供應商
GET /api/products/suppliers/{id}/ # 取得供應商詳情
PUT /api/products/suppliers/{id}/ # 更新供應商
DELETE /api/products/suppliers/{id}/ # 刪除供應商
GET /api/products/ # 列出產品 (含分頁)
POST /api/products/ # 建立新產品
GET /api/products/{id}/ # 取得產品詳情
PUT /api/products/{id}/ # 更新產品
DELETE /api/products/{id}/ # 刪除產品
GET /api/products/variants/ # 列出產品款式變體
POST /api/products/variants/ # 建立產品款式變體
GET /api/products/variants/{id}/ # 取得變體詳情
PUT /api/products/variants/{id}/ # 更新變體
DELETE /api/products/variants/{id}/ # 刪除變體
GET /api/products/inventory/ # 列出庫存資訊
POST /api/products/inventory/ # 建立庫存記錄
GET /api/products/inventory/{id}/ # 取得庫存詳情
PUT /api/products/inventory/{id}/ # 更新庫存
DELETE /api/products/inventory/{id}/ # 刪除庫存記錄
GET /api/products/stock-movements/ # 列出庫存異動記錄
POST /api/products/stock-movements/ # 建立庫存異動記錄
GET /api/products/stock-movements/{id}/ # 取得異動記錄詳情
GET /api/products/price-history/ # 列出價格變動歷史
POST /api/products/price-history/ # 建立價格歷史記錄
GET /api/products/price-history/{id}/ # 取得價格歷史詳情
GET /api/reports/dashboard/ # 營銷分析儀表板數據
GET /api/reports/trends/ # 趨勢分析數據
GET /api/reports/customers/ # 客戶分析數據
GET /api/reports/customer-demographics/ # 客戶人口統計分析
GET /api/reports/customer-clv/ # 客戶生命週期價值 (CLV) 分析
GET /api/reports/revenue/ # 營收分析數據
GET /api/reports/customer-clv/
支援的查詢參數:
date_from: 開始日期 (YYYY-MM-DD)date_to: 結束日期 (YYYY-MM-DD)source: 客戶來源篩選
回傳數據結構範例:
{
"clv_overview": {
"total_customers": 150,
"customers_with_orders": 120,
"avg_clv": 25000.5,
"total_clv": 3000060.0,
"avg_purchase_frequency": 2.5
},
"clv_segments": [
{
"segment": "頂級客戶",
"count": 15,
"total_value": 750000.0,
"avg_clv": 50000.0,
"percentage": 12.5
}
],
"clv_by_source": [
{
"source": "website",
"count": 80,
"avg_clv": 28000.0,
"total_clv": 2240000.0,
"avg_orders": 3.2
}
],
"top_customers": [
{
"id": 1,
"full_name": "王小明",
"email": "wang@example.com",
"total_spent": 85000.0,
"total_orders": 12,
"avg_order_value": 7083.33
}
],
"monthly_clv_trend": [
{
"month": "2024-12",
"new_customers": 25,
"avg_clv": 22000.0,
"total_clv": 550000.0
}
]
}GET /api/customer-service/tickets/ # 列出客服工單 (含分頁)
POST /api/customer-service/tickets/ # 建立新工單
GET /api/customer-service/tickets/{id}/ # 取得工單詳情
PUT /api/customer-service/tickets/{id}/ # 更新工單
DELETE /api/customer-service/tickets/{id}/ # 刪除工單
POST /api/customer-service/tickets/{id}/add_note/ # 新增客服記錄
GET /api/customer-service/notes/ # 列出客服記錄 (含分頁)
POST /api/customer-service/notes/ # 建立新記錄
GET /api/customer-service/notes/{id}/ # 取得記錄詳情
PUT /api/customer-service/notes/{id}/ # 更新記錄
DELETE /api/customer-service/notes/{id}/ # 刪除記錄
GET /api/customer-service/knowledge-base/ # 列出知識庫文章 (含分頁)
POST /api/customer-service/knowledge-base/ # 建立新文章
GET /api/customer-service/knowledge-base/{id}/ # 取得文章詳情
PUT /api/customer-service/knowledge-base/{id}/ # 更新文章
DELETE /api/customer-service/knowledge-base/{id}/ # 刪除文章
GET /api/customer-service/knowledge-categories/ # 列出知識庫分類
POST /api/customer-service/knowledge-categories/ # 建立新分類
GET /api/customer-service/knowledge-categories/{id}/ # 取得分類詳情
PUT /api/customer-service/knowledge-categories/{id}/ # 更新分類
DELETE /api/customer-service/knowledge-categories/{id}/ # 刪除分類
GET /api/customer-service/faq/ # 列出常見問題 (含分頁)
POST /api/customer-service/faq/ # 建立新問題
GET /api/customer-service/faq/{id}/ # 取得問題詳情
PUT /api/customer-service/faq/{id}/ # 更新問題
DELETE /api/customer-service/faq/{id}/ # 刪除問題
客服工單查詢參數:
status: 工單狀態篩選 (open, in_progress, waiting_response, resolved, closed)priority: 優先級篩選 (low, medium, high, urgent)category: 問題分類篩選customer: 客戶篩選assigned_to: 負責人篩選date_from: 開始日期date_to: 結束日期
所有列表端點都支援:
- search:
?search=關鍵字- 跨相關欄位搜尋 - filtering:
?status=active&source=website- 依欄位值篩選 - ordering:
?ordering=-created_at- 排序結果 - pagination:
?page=2&page_size=20- 分頁處理
在根目錄建立 .env 檔案:
# Django 設定
DEBUG=True
SECRET_KEY=your-secret-key-here
# 資料庫設定 (MySQL)
DB_ENGINE=django.db.backends.mysql
DB_NAME=crm_dashboard
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_HOST=your_db_host
DB_PORT=3306
# SQLite 替代方案
# DB_ENGINE=django.db.backends.sqlite3
# DB_NAME=db.sqlite3前端會自動連接到 Django API。如需更改 API 基礎網址,請更新 src/services/api.ts。
- 環境變數: 在正式環境中設定
DEBUG=False - 資料庫: 正式環境建議使用 PostgreSQL 或 MySQL
- 靜態檔案: 設定適當的靜態檔案服務
- 安全性: 更新
ALLOWED_HOSTS及其他安全設定 - HTTPS: 啟用 SSL/TLS 安全通訊
# 使用 Docker Compose 建置並執行
docker compose up --build
# 初始化資料庫(首次執行)
docker compose exec backend python manage.py migrate
# 創建超級用戶
docker compose exec backend python manage.py createsuperuser
# 生成測試資料(客戶、訂單、產品等)
docker compose exec backend python create_enhanced_dummy_data.py
# 生成客服系統測試資料(工單、知識庫、FAQ)
docker compose exec backend python create_customer_service_data.py系統提供兩個資料生成腳本,幫助快速建立測試環境:
- 📦 產品資料: 50+ 個測試產品,包含分類、品牌、供應商
- 👥 客戶資料: 500+ 個虛擬客戶,含完整個人資料和偏好
- 🛒 訂單資料: 1000+ 筆訂單,涵蓋各種狀態和金額
- 💳 交易記錄: 對應的付款交易,支援多種付款方式
- 📊 庫存管理: 產品庫存和變體管理
- 🎫 客服工單: 50 筆測試工單,包含各種狀態和優先級
- 📝 服務記錄: 95+ 筆客服互動記錄,含內部備註和客戶回應
- 📚 知識庫文章: 50 篇技術文檔,涵蓋常見問題解決方案
- ❓ FAQ 常見問題: 50 個問答對,依分類整理
- 🏷️ 知識分類: 8 個主要分類(產品使用、技術支援、政策條款等)
# 執行順序建議
docker compose up --build # 啟動服務
docker compose exec backend python manage.py migrate # 初始化資料庫
docker compose exec backend python create_enhanced_dummy_data.py # 生成基礎商務資料
docker compose exec backend python create_customer_service_data.py # 生成客服資料
# 訪問應用
# 前端: http://localhost:5173
# 後端 API: http://localhost:8000
# 管理後台: http://localhost:8000/admin# 執行 Django 測試
python manage.py test
# 執行覆蓋率測試
coverage run manage.py test
coverage report# 執行 React 測試
cd frontend
npm test
# 執行覆蓋率測試
npm run test:coverage- Customer: 個人資訊、聯絡詳情、來源追蹤、個人化偏好
- Order: 訂單管理,包含項目與財務計算
- OrderItem: 訂單內的個別商品,關聯產品與變體
- Transaction: 付款追蹤與財務記錄
- Product: 產品主體資訊、價格、成本、庫存
- ProductVariant: 產品款式變體(顏色、尺寸等規格)
- Category: 產品分類管理
- Brand: 品牌資訊管理
- Supplier: 供應商資訊與關係管理
- Inventory: 庫存管理與警示
- StockMovement: 庫存異動記錄
- PriceHistory: 價格變動歷史
- Customer → Order (1:M) - 客戶可以有多個訂單
- Order → OrderItem (1:M) - 訂單可以包含多個商品項目
- Customer → Transaction (1:M) - 客戶可以有多筆交易記錄
- Order → Transaction (1:M, Optional) - 訂單可以關聯多筆交易
- Category → Product (1:M) - 分類包含多個產品
- Brand → Product (1:M) - 品牌擁有多個產品
- Supplier → Product (1:M) - 供應商供應多個產品
- Product → ProductVariant (1:M) - 產品可有多個變體
- Product → Inventory (1:1) - 產品對應庫存記錄
- ProductVariant → Inventory (1:1) - 變體對應庫存記錄
- Product → StockMovement (1:M) - 產品的庫存異動記錄
- Product → PriceHistory (1:M) - 產品的價格變動歷史
- OrderItem → Product (M:1) - 訂單項目關聯產品
- OrderItem → ProductVariant (M:1, Optional) - 訂單項目可關聯產品款式變體
⭐ Star this repository if you find it helpful!
Made with ❤️ by Young







