MongoDB-UI
MongoDB 視覺化管理工具 — 雙擊即用的 Windows 桌面應用
關於這個專案
MongoDB-UI 是一個以 FastAPI 打造的 MongoDB 視覺化管理工具:透過瀏覽器介面即可連線、瀏覽、查詢與管理本機或遠端的 MongoDB 資料庫,並以 PyInstaller 打包成免安裝的 Windows 桌面應用程式 —— 雙擊即用,不需要 Python 環境、不需要任何設定檔配置。
開發動機來自實際的資料庫管理需求:需要在多台機器之間監控與管理 MongoDB 資料(本機與區網上的遠端資料庫),且希望非技術背景的使用者也能直接操作。因此目標是做出一個「開箱即用的桌面級資料庫管理工具」:所有設定透過 GUI 完成並持久化,程式打包成 .exe,雙擊啟動後自動開啟瀏覽器進入介面。
核心功能
- 連線與設定管理:全螢幕分割面板的設定頁,支援本機 / 遠端雙模式、帳號驗證、內建檔案瀏覽器,歷史連線持久化於 connections.json,零設定啟動並自動開啟瀏覽器。
- 資料瀏覽與查詢:資料庫 / 集合 / 文件三層瀏覽,支援標準 MongoDB filter JSON 查詢(含 dot-notation 巢狀欄位與陣列比對),文件詳情 Modal 可一鍵複製完整 JSON。
- CRUD 操作:文件與集合的新增、編輯、刪除,破壞性操作皆有確認機制;操作留下稽核軌跡並寫入系統日誌。
- 穩定性與維運:偵測斷線後自動重連、heartbeat 防閒置斷線;自訂日誌系統主動過濾雜訊,貫徹「最小但有意義」原則。
工程亮點
- 完整處理「把 Python Web 服務打包成桌面應用」的相容性問題:PyInstaller frozen 環境下 uvicorn、stdout/stderr、Jinja2 模板載入的修正。
- 定位並修復 uvicorn 熱重載導致的日誌重複輸出問題(handler 存在檢查)。
- 連線韌性設計:以獨立靜默的測試連線等待 mongod 就緒,並明確區分「連線被拒」與「逾時」兩種失敗。
- 實戰維運經驗:處理過 mongod 因磁碟空間耗盡而崩潰的真實事故,建立復原流程並據此規劃預防性監控。
專案資訊
- 類型:本地端桌面應用
- 角色:個人專案・獨立開發
- 平台:Windows 桌面環境
技術標籤
Python
FastAPI
MongoDB
PyMongo
JavaScript
Jinja2
PyInstaller
Desktop App
架構
瀏覽器 → FastAPI WebUI(跑在使用者本機)→ MongoDB(本機 mongod 或遠端主機)。WebUI 負責連線目標資料庫並渲染到瀏覽器,因此即使連遠端資料庫,也只需開啟本機位址即可操作。