Đặc tả Tính năng: Quản lý Hồ sơ Nhân viên
1. Tổng quan & Tầm nhìn
Hồ sơ Nhân viên là nguồn sự thật tập trung cho tất cả các dữ liệu liên quan đến việc làm. Nó cung cấp khả năng hiển thị về vai trò, tuyến báo cáo và trạng thái làm việc của một cá nhân, đóng vai trò là khối xây dựng cơ bản cho tất cả các tính năng HRM khác như Nghỉ phép và Sơ đồ tổ chức.
2. Các Vai trò & Bên liên quan
| Vai trò | Mục tiêu |
|---|---|
| Nhân viên | Xem dữ liệu của chính mình, cập nhật thông tin liên lạc cá nhân và theo dõi lịch sử làm việc. |
| Quản lý | Xem kỹ năng của nhóm, chức danh công việc và các tuyến báo cáo trực tiếp. |
| Quản trị viên HR | Quản lý toàn bộ vòng đời của dữ liệu nhân viên (từ khi tuyển dụng đến khi nghỉ việc). |
3. Câu chuyện Người dùng (User Stories)
- Với tư cách là nhân viên, tôi muốn cập nhật liên hệ khẩn cấp để bộ phận HR biết nên gọi cho ai khi có sự cố.
- Với tư cách là Quản trị viên HR, tôi muốn thay đổi bộ phận của một nhân viên khi họ được thăng chức.
- Với tư cách là quản lý, tôi muốn xem ngày bắt đầu làm việc của các nhân viên báo cáo trực tiếp để lập kế hoạch kỷ niệm ngày làm việc.
4. Yêu cầu Chức năng (FR)
- REQ-EP-001: Hồ sơ phải bao gồm: Tên, Chức danh, Bộ phận, Quản lý, Ngày bắt đầu, Trạng thái.
- REQ-EP-002: Danh bạ nhân viên có thể tìm kiếm trên toàn tổ chức.
- REQ-EP-003: Tự chỉnh sửa các trường thông tin liên lạc cá nhân (Điện thoại, Liên hệ khẩn cấp).
- REQ-EP-004: Vòng đời trạng thái làm việc (Mới, Hoạt động, Đang nghỉ, Nghỉ việc).
5. Yêu cầu Phi chức năng (NFR)
- Hiệu năng: Thời gian tải hồ sơ < 300ms.
- Quyền riêng tư: Các trường thông tin cá nhân PHẢI được ẩn đối với những người không phải quản lý/HR.
6. Logic & Quy tắc Nghiệp vụ
- Tuyến báo cáo: Mỗi nhân viên (ngoại trừ CEO) PHẢI có chính xác một
managerId. - Chuyển đổi Trạng thái: Trạng thái
newđược đặt tự động trong quá trình onboarding;activeđược đặt vào ngày bắt đầu làm việc. - Toàn vẹn Dữ liệu: ID nhân viên trong HRM phải khớp với một
user_idhợp lệ trong Shell.
7. Giao diện Người dùng (UI/UX)
- Header: Avatar, Tên, Chức danh, và badge Bộ phận.
- Các Tab: Thông tin cá nhân, Công việc, Số dư nghỉ phép, Trạng thái Onboarding.
- Danh bạ: Chuyển đổi Lưới/Danh sách với lọc theo nhiều thuộc tính.
8. Kiến trúc Thông tin
- Trang đích chính của module.
- Liên kết trực tiếp từ "Hồ sơ của tôi" trên thanh công cụ Shell.
9. Mô hình Dữ liệu & Lưu trữ
- Bảng:
employees(Hồ sơ chính). - Bảng:
departments(Siêu dữ liệu). - Lưu trữ: Ảnh hồ sơ được lưu trong MinIO/S3 thông qua driver
Drive.
10. Lớp API & Dịch vụ
GET /employees/:idPUT /employees/:idEmployeeServicexử lý điều phối giữa các bảng.
11. Các Mẫu Tích hợp
- Đồng bộ Shell: Ingest người dùng mới từ Shell khi họ đăng nhập lần đầu.
- Drive: Sử dụng engine lưu trữ của Drive cho các tệp đính kèm (CV, Hợp đồng).
12. Bảo mật & Quyền hạn
- RBAC:
employees:readcho danh bạ;employees:writecho Quản trị viên HR. - Cô lập: Người dùng chỉ có thể xem hồ sơ trong tổ chức của mình.
13. Xử lý Lỗi & Khả năng Phục hồi
- Xử lý mượt mà các lỗi "Thiếu quản lý".
- Xác thực cho các tuyến báo cáo vòng lặp (A báo cáo cho B, B báo cáo cho A).
14. Hiệu năng & Khả năng Mở rộng
- Dữ liệu hồ sơ được cache ở cấp độ API.
- Tìm kiếm sử dụng đánh chỉ mục
ILIKEcủa PostgreSQL để tra cứu danh bạ nhanh chóng.
15. Toàn cầu hóa & Bản địa hóa
- Hỗ trợ định dạng tên tiếng Việt và Quốc tế.
- Chức danh và tên bộ phận được bản địa hóa.
16. Khả năng Tiếp cận (a11y)
- Các bảng danh bạ có thể tiếp cận với các phạm vi ARIA phù hợp.
- Badge trạng thái có độ tương phản cao (Hoạt động = Xanh lá, Đang nghỉ = Xanh dương).
17. Khả năng Quan sát & Phân tích
- Theo dõi "Tỷ lệ nghỉ việc" dựa trên các chuyển đổi trạng thái.
- Nhật ký kiểm toán cho tất cả các sửa đổi hồ sơ.
18. Kiểm thử & Chất lượng
- Kiểm thử tích hợp cho logic chuyển đổi trạng thái.
- Kiểm thử UI cho việc dựng cây sơ đồ tổ chức.
19. Các Ràng buộc & Giả định
- Giả định mọi nhân viên đều có tài khoản người dùng Shell hợp lệ.
20. Các Cải tiến Tương lai
- Tích hợp Ma trận Kỹ năng (Skill Matrix).
- Thông báo tự động ngày sinh nhật và kỷ niệm ngày làm việc.