Skip to content

huang041/account_application_system

Repository files navigation

帳戶申請系統

一個基於Django的帳戶申請管理系統,使用Docker進行容器化部署。

功能特點

  • 用戶註冊和登入
  • 帳戶申請狀態管理
  • 管理員審核功能
  • 批量操作功能
  • 響應式設計界面

技術棧

  • 後端: Django 5.2.1
  • 資料庫: PostgreSQL 14
  • 容器化: Docker & Docker Compose
  • 包管理: uv
  • Web服務器: Gunicorn
  • 靜態文件: WhiteNoise

快速開始

先決條件

  • Docker
  • Docker Compose

使用管理腳本

項目提供了便捷的管理腳本 manage-service.sh,包含所有常用的Docker操作。

查看所有可用指令

./manage-service.sh help

常用指令

# 啟動開發環境
./manage-service.sh dev

# 啟動生產環境
./manage-service.sh prod

# 停止所有服務
./manage-service.sh stop

# 查看服務狀態
./manage-service.sh status

# 查看日誌
./manage-service.sh logs

# 進入應用容器
./manage-service.sh shell

# 執行資料庫遷移
./manage-service.sh migrate

# 創建超級用戶
./manage-service.sh createsuperuser

# 運行測試
./manage-service.sh test

開發工作流程

  1. 首次啟動

    # 啟動開發環境
    ./manage-service.sh dev
    
    # 執行資料庫遷移
    ./manage-service.sh migrate-dev
    
    # 創建超級用戶
    ./manage-service.sh createsuperuser-dev
  2. 日常開發

    # 查看日誌
    ./manage-service.sh logs
    
    # 進入容器進行調試
    ./manage-service.sh shell
    
    # 創建新的遷移文件
    ./manage-service.sh makemigrations
    
    # 執行遷移
    ./manage-service.sh migrate
  3. 生產部署

    # 構建並啟動生產環境
    ./manage-service.sh build
    ./manage-service.sh prod
    
    # 收集靜態文件
    ./manage-service.sh collectstatic

傳統Docker Compose指令

如果你更喜歡直接使用Docker Compose:

# 開發環境
docker-compose -f docker-compose.dev.yml up -d

# 生產環境
docker-compose up -d

# 停止服務
docker-compose down

環境配置

開發環境

  • 使用 docker-compose.dev.yml
  • 啟用DEBUG模式
  • 代碼熱重載
  • 暴露資料庫端口

生產環境

  • 使用 docker-compose.yml
  • 關閉DEBUG模式
  • 使用Gunicorn作為WSGI服務器
  • 靜態文件優化

環境變量

  • DEBUG: 是否啟用調試模式 (True/False)
  • POSTGRES_LOCAL_PORT: 本地資料庫端口映射

資料庫

系統使用PostgreSQL作為主資料庫:

  • 容器名: db
  • 資料庫名: postgres
  • 用戶名: postgres
  • 密碼: postgres
  • 端口: 5432

靜態文件

靜態文件通過WhiteNoise中間件提供服務:

  • 開發環境: Django自動提供
  • 生產環境: WhiteNoise + collectstatic

測試

運行測試套件:

./manage-service.sh test

或者:

docker-compose exec app uv run python manage.py test

故障排除

常見問題

  1. 容器啟動失敗

    # 查看詳細日誌
    ./manage-service.sh logs
    
    # 重新構建鏡像
    ./manage-service.sh rebuild
  2. 資料庫連接問題

    # 檢查資料庫容器狀態
    ./manage-service.sh status
    
    # 進入資料庫shell檢查
    ./manage-service.sh db-shell
  3. 權限問題

    # 清理並重新啟動
    ./manage-service.sh clean
    ./manage-service.sh prod
  4. 完全重置環境

    # 危險操作:刪除所有數據
    ./manage-service.sh reset

項目結構

account_application_system/
├── accounts/                 # Django應用
│   ├── static/              # 靜態文件
│   ├── templates/           # 模板文件
│   ├── migrations/          # 資料庫遷移
│   └── ...
├── Dockerfile               # 生產環境Dockerfile
├── Dockerfile.dev           # 開發環境Dockerfile
├── docker-compose.yml       # 生產環境配置
├── docker-compose.dev.yml   # 開發環境配置
├── manage-service.sh         # Docker管理腳本
├── pyproject.toml           # Python依賴配置
└── README.md               # 項目說明

貢獻

  1. Fork本項目
  2. 創建功能分支 (git checkout -b feature/新功能)
  3. 提交變更 (git commit -am '添加新功能')
  4. 推送到分支 (git push origin feature/新功能)
  5. 創建Pull Request

許可證

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published