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:
84
README_V2.md
Normal file
84
README_V2.md
Normal 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 - 資料庫設計
|
||||
Reference in New Issue
Block a user