Files
PROJECT-CONTORL/backend/README.md
beabigegg daca7798e3 feat: implement task management module
Backend (FastAPI):
- Database migration for spaces, projects, task_statuses, tasks tables
- SQLAlchemy models with relationships
- Pydantic schemas for CRUD operations
- Spaces API: CRUD with soft delete
- Projects API: CRUD with auto-created default statuses
- Tasks API: CRUD, status change, assign, subtask support
- Permission middleware with Security Level filtering
- Subtask depth limit (max 2 levels)

Frontend (React + Vite):
- Layout component with navigation
- Spaces list page
- Projects list page
- Tasks list page with status management

Fixes:
- auth_client.py: use 'username' field for external API
- config.py: extend JWT expiry to 7 days
- auth/router.py: sync Redis session with JWT expiry

Tests: 36 passed (unit + integration)
E2E: All APIs verified with real authentication

OpenSpec: add-task-management archived

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 00:31:34 +08:00

93 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PROJECT CONTROL Backend
FastAPI 後端服務
## 系統需求
### 必要服務
| 服務 | 版本 | 說明 |
|-----|------|-----|
| Python | 3.11+ | 執行環境 |
| MySQL | 8.0+ | 主要資料庫 |
| Redis | 6.0+ | Session 存儲 |
### Redis Server 安裝
Redis Python 套件 (`redis==5.0.1`) 僅為客戶端,需另外安裝 Redis Server
**macOS (Homebrew):**
```bash
brew install redis
brew services start redis
```
**Ubuntu/Debian:**
```bash
sudo apt update
sudo apt install redis-server
sudo systemctl start redis-server
sudo systemctl enable redis-server
```
**Docker:**
```bash
docker run -d --name redis -p 6379:6379 redis:alpine
```
**驗證安裝:**
```bash
redis-cli ping
# 應回傳 PONG
```
## 環境建置
```bash
# 使用 Conda
conda env create -f environment.yml
conda activate pjctrl
# 或使用 pip
pip install -r requirements.txt
```
## 設定
複製並編輯環境變數:
```bash
cp .env.example .env
```
主要設定項目:
- `MYSQL_*` - 資料庫連線
- `REDIS_*` - Redis 連線
- `JWT_SECRET_KEY` - JWT 簽名密鑰 (生產環境必須更換)
- `AUTH_API_URL` - 外部認證 API
## 執行
```bash
# 開發模式
uvicorn app.main:app --reload --port 8000
# 生產模式
uvicorn app.main:app --host 0.0.0.0 --port 8000
```
## 資料庫遷移
```bash
# 升級至最新版本
alembic upgrade head
# 回滾一個版本
alembic downgrade -1
```
## 測試
```bash
pytest -v
```