會員系統

Python 加 Google Sheet?輕量級會員管理系統試做!

不久前,一位朋友得知我具備程式開發能力,便詢問能否協助建置一個簡易的會員系統以簡化內部流程。基於其需求,我以 Python 開發後端、Google Sheet 作為資料庫,並搭配 Streamlit 建構前端介面,打造了一套輕量化且可免費部署的會員管理系統,作為內部工具使用已相當足夠。

目錄


相關連結

專案起因

甫結束轉職培訓班的課程不久,一位經營獨立健身工作室的朋友得知我在學習程式開發,便詢問是否能協助開發一套內部使用的會員管理系統。在評估過對方的需求與我目前的能力後,認為這是一個不錯的實戰機會,於是便開啟了這個輕量化會員管理系統的專案。

需求確認

本專案屬於客製化委託,因此所有的技術選擇與開發方向皆需緊扣客戶(對方)的需求。以下為客戶的背景與具體需求:

  1. 無技術背景:團隊內無技術開發人員,原先僅使用 Excel 或雲端試算表進行紀錄。
  2. 內部使用:系統僅供員工內部紀錄,不對外開放給會員使用。
  3. 核心功能:需包含會員登記、交易行為記錄、金額結算等基本功能。
  4. 低維運成本:屬於試驗性質的專案,維運方面並無多餘預算。

技術選型

基於上述需求,我為專案規劃了以下的基本架構:

  1. 後端:Python

    • 我目前最熟悉的程式語言,擁有豐富的套件支援。
  2. 資料庫:Excel 或 Google Sheet

    • 這是客戶團隊最熟悉的工具。即便系統發生意外,他們仍能直接開啟檔案進行編輯與修正。
    • 操作彈性:即使因操作失誤導致系統報錯,客戶也能手動修正資料,保持營運彈性。
    • 合適優於完美:作為資料工程人員,我深知試算表並非正規的資料庫。但考量客戶缺乏 SQL 操作能力,選擇正規資料庫反而可能因技術門檻造成額外困擾。在此情境下,選擇合適的工具比追求技術上的完美更為恰當。
  3. 前端:Streamlit

    • 目前最輕量、易於開發與部署的 Python 前端框架。作為內部工具,其功能與介面質感已相當足夠。
  4. 部署:地端或低價(免費)雲端平台

    • 考量客戶幾無維運預算,且應用場景多為上班時間的辦公室環境,將系統建置於地端或免費的雲端服務(PaaS)是較合理的選擇。

資料庫

雖然透過 Python 程式能靈活地調整功能,但資料庫作為系統的核心,承載了客戶最重要的資產。因此,資料庫的建置與規劃應在初期就定案,避免後續修改牽一髮而動全身,增加維護成本。

地端資料庫

由於客戶習慣使用 Excel 記錄,開發初期我優先採用地端檔案作為資料庫。針對此專案性質,地端部署有其合理性:

  • 使用時間固定:僅在營業時間使用,無需 24 小時運作。
  • 安全性考量:因無專職人員維護,非使用時間關閉資料庫,反而能物理性地避免未授權的修改。

我採用以下邏輯建立資料庫連線:

  1. 在專案目錄中建立 Excel 檔,並設定檔名。
  2. 將檔名設為全域常數,透過函式在專案目錄中搜尋,進行路徑定位。
  3. 取得絕對路徑後讀取檔案。
Fitness-Studio-Member-System/
├── codes/                 # 集中存放程式碼
│   ├── mod/               # 存放模組化程式
│   └── main.py            # 測試用主程式
├── database.xlsx          # 地端資料庫 (Excel 檔案)
├── streamlit_app.py       # Streamlit 主程式入口
├── requirements.txt       # 專案依賴套件清單
└── README.md              # 專案說明文件

此設計的考量點在於: