124 lines
2.8 KiB
Markdown
124 lines
2.8 KiB
Markdown
# 區塊鏈知識庫系統 (Blockchain Knowledge Hub)
|
||
|
||
一個基於 Flask 的區塊鏈知識管理系統,提供結構化的區塊鏈知識內容展示和管理功能。
|
||
|
||
## 功能特點
|
||
|
||
- 四大知識區塊:基本概念、技術原理、日常應用、潛力與挑戰
|
||
- 多層級內容結構:區塊 > 主題 > 子知識點 > 關鍵字
|
||
- 關鍵字懸停解釋功能
|
||
- 完整的後台管理系統
|
||
- 響應式設計,支援各種設備
|
||
|
||
## 技術棧
|
||
|
||
- 後端:Python Flask
|
||
- 前端:Bootstrap 5
|
||
- 資料庫:SQLite
|
||
- ORM:SQLAlchemy
|
||
|
||
## 安裝說明
|
||
|
||
1. 建立虛擬環境
|
||
```bash
|
||
python -m venv venv
|
||
```
|
||
|
||
2. 啟動虛擬環境
|
||
```bash
|
||
# Windows
|
||
venv\Scripts\activate
|
||
# Mac/Linux
|
||
source venv/bin/activate
|
||
```
|
||
|
||
3. 安裝依賴
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
4. 初始化資料庫
|
||
```bash
|
||
python init_db.py
|
||
```
|
||
|
||
5. 運行應用
|
||
```bash
|
||
flask run
|
||
```
|
||
|
||
## 系統結構
|
||
|
||
### 資料模型
|
||
- Section (區塊)
|
||
- Topic (主題)
|
||
- Subtopic (子知識點)
|
||
- Keyword (關鍵字)
|
||
|
||
### 主要功能
|
||
1. 前台功能
|
||
- 瀏覽知識內容
|
||
- 關鍵字解釋
|
||
- 響應式導航
|
||
|
||
2. 後台管理
|
||
- 區塊管理(新增/編輯/刪除)
|
||
- 主題管理(新增/編輯/刪除)
|
||
- 子知識點管理(新增/編輯/刪除)
|
||
- 關鍵字管理(新增/編輯/刪除)
|
||
|
||
## 文件結構
|
||
```
|
||
blockchain_wiki/
|
||
├── app/
|
||
│ ├── __init__.py # Flask 應用程式設定
|
||
│ ├── models.py # 資料庫模型
|
||
│ ├── routes.py # 路由控制
|
||
│ ├── database.db # SQLite 資料庫
|
||
│ ├── templates/ # HTML 模板
|
||
│ │ ├── base.html
|
||
│ │ ├── index.html
|
||
│ │ ├── section.html
|
||
│ │ └── admin/
|
||
│ └── static/ # 靜態資源
|
||
│ └── css/
|
||
│ └── style.css
|
||
├── config.py # 設定檔
|
||
└── run.py # 應用程式入口
|
||
```
|
||
|
||
## 使用說明
|
||
|
||
### 前台瀏覽
|
||
- 訪問首頁查看所有知識區塊
|
||
- 使用左側導航欄切換不同區塊
|
||
- 將滑鼠移到關鍵字上可查看解釋
|
||
|
||
### 後台管理
|
||
- 點擊導航欄的「管理」按鈕進入後台
|
||
- 可以進行內容的新增、編輯、刪除操作
|
||
- 關鍵字管理獨立,不受其他內容刪除影響
|
||
|
||
## 開發說明
|
||
|
||
- 使用 Flask Blueprint 進行路由管理
|
||
- 使用裝飾器處理資料庫操作和錯誤處理
|
||
- 關鍵字為獨立實體,不會因內容刪除而刪除
|
||
- 完整的錯誤處理和用戶提示
|
||
|
||
## 注意事項
|
||
|
||
- 初次使用需要初始化資料庫
|
||
- 建議定期備份資料庫文件
|
||
- 關鍵字在刪除前請確認是否仍在使用中
|
||
- 確保 Python 版本 >= 3.6
|
||
|
||
## 未來規劃
|
||
|
||
- [ ] 使用者認證系統
|
||
- [ ] 搜尋功能
|
||
- [ ] 內容版本控制
|
||
- [ ] API 接口
|
||
- [ ] 內容匯出功能
|
||
- [ ] 多語言支援
|