feat: HR Portal - Complete Multi-Tenant System with Redis Session Storage

Major Features:
-  Multi-tenant architecture (tenant isolation)
-  Employee CRUD with lifecycle management (onboarding/offboarding)
-  Department tree structure with email domain management
-  Company info management (single-record editing)
-  System functions CRUD (permission management)
-  Email account management (multi-account per employee)
-  Keycloak SSO integration (auth.lab.taipei)
-  Redis session storage (10.1.0.254:6379)
  - Solves Cookie 4KB limitation
  - Cross-system session sharing
  - Sliding expiration (8 hours)
  - Automatic token refresh

Technical Stack:
Backend:
- FastAPI + SQLAlchemy
- PostgreSQL 16 (10.1.0.20:5433)
- Keycloak Admin API integration
- Docker Mailserver integration (SSH)
- Alembic migrations

Frontend:
- Next.js 14 (App Router)
- NextAuth 4 with Keycloak Provider
- Redis session storage (ioredis)
- Tailwind CSS

Infrastructure:
- Redis 7 (10.1.0.254:6379) - Session + Cache
- Keycloak 26.1.0 (auth.lab.taipei)
- Docker Mailserver (10.1.0.254)

Architecture Highlights:
- Session管理由 Keycloak + Redis 統一控制
- 支援多系統 (HR/WebMail/Calendar/Drive/Office) 共享 session
- Token 自動刷新,異質服務整合
- 未來可無縫遷移到雲端

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-23 20:12:43 +08:00
commit 360533393f
386 changed files with 70353 additions and 0 deletions

84
README_V2.md Normal file
View File

@@ -0,0 +1,84 @@
# HR Portal v2.0 - 全新重構版本
**開發開始**: 2026-02-10
**設計依據**: [員工多身份設計文件](../../2.專案設計區/4.HR_Portal/員工多身份設計文件.md)
---
## 🎯 重構原因
舊版設計不支援**員工多身份**和**跨事業部管理**,完全重新開發以符合新的業務需求。
---
## ✨ 新架構特性
### 1. 員工多身份支援
- 一個員工可在多個事業部任職
- 同事業部多部門 → 共用 SSO 帳號
- 跨事業部 → 獨立 SSO 帳號
### 2. 三大事業部
| 事業部 | 代碼 | 網域 | 說明 |
|--------|------|------|------|
| 業務發展部 | biz | ease.taipei | 碳權、業務拓展 |
| 智能發展部 | smart | lab.taipei | AI/ML、技術研發 |
| 營運管理部 | ops | porscheworld.tw | 行政、財務、HR |
### 3. 資料庫架構
```
employees (員工基本資料)
├─ employee_identities (員工身份)
│ ├─ business_units (事業部)
│ └─ departments (部門)
├─ email_accounts (郵件帳號)
└─ nas_accounts (NAS 帳號)
```
---
## 📁 專案結構
```
3.Develop/4.HR_Portal/
├── backend/ # FastAPI 後端
├── frontend/ # React + TypeScript 前端
├── database/ # Schema + Migration
├── _archive/ # 舊版代碼
└── README_V2.md # 本文件
```
---
## 🚀 開發計畫
按照 [開發階段規劃.md](../../2.專案設計區/4.HR_Portal/開發階段規劃.md):
### Phase 1: 基礎建設 (2-3 weeks)
- [ ] 資料庫設計與初始化
- [ ] FastAPI 專案架構
- [ ] React 專案架構
- [ ] Keycloak SSO 整合
### Phase 2: 核心功能 (3-4 weeks)
- [ ] 員工 CRUD (多身份)
- [ ] 組織架構管理
- [ ] 審計日誌
### Phase 3: 資源管理 (2-3 weeks)
- [ ] 郵件帳號管理
- [ ] NAS 網路硬碟整合
- [ ] 配額管理
---
## 📖 相關文件
- [員工多身份設計文件](../../2.專案設計區/4.HR_Portal/員工多身份設計文件.md)
- [HR Portal設計文件](../../2.專案設計區/4.HR_Portal/HR Portal設計文件.md)
- [NAS整合設計文件](../../2.專案設計區/4.HR_Portal/NAS整合設計文件.md)
- [開發階段規劃](../../2.專案設計區/4.HR_Portal/開發階段規劃.md)
---
**下一步**: 開始 Phase 1 - 資料庫設計