Bối cảnh và vấn đề nghiên cứu
Trong môi trường quản trị doanh nghiệp hiện đại, sự gia tăng về quy mô tổ chức cùng tính cạnh tranh trên thị trường đặt ra yêu cầu cấp thiết về việc tối ưu hóa quy trình làm việc và quản lý nhân sự. Thực tiễn vận hành tại nhiều đơn vị cho thấy các quy trình hành chính nội bộ, tiêu biểu như tiếp nhận và phê duyệt yêu cầu nghỉ phép, theo dõi tiến độ công việc và lưu chuyển hồ sơ giấy tờ truyền thống, bộc lộ nhiều điểm hạn chế. Những hạn chế này bao gồm thời gian xử lý kéo dài, nguy cơ thất lạc thông tin, thiếu tính minh bạch trong kiểm soát trạng thái xử lý và tiềm ẩn rủi ro về an toàn dữ liệu. Xuất phát từ bối cảnh đó, đồ án tốt nghiệp tập trung giải quyết bài toán tự động hóa luồng làm việc và số hóa tài liệu thông qua việc xây dựng "Ứng dụng Quản lý Luồng công việc - Timesheet" tích hợp giải pháp chữ ký số.
Tác giả xác định 6 mục tiêu nghiên cứu cụ thể nhằm hoàn thiện công cụ hỗ trợ doanh nghiệp:
- Tối ưu hóa quy trình làm việc: Tự động hóa toàn bộ chu trình từ khâu khởi tạo yêu cầu nghỉ phép đến chu trình phê duyệt và ký tài liệu điện tử, cắt giảm tối đa các thủ tục giấy tờ thủ công.
- Quản lý thông tin cá nhân và yêu cầu nghỉ phép hiệu quả: Cung cấp phân hệ cập nhật dữ liệu nhân sự và tiếp nhận, xử lý đơn xin nghỉ phép nhanh chóng, chính xác.
- Cung cấp công cụ Todolist: Hỗ trợ người dùng lập kế hoạch, theo dõi, đặt mục tiêu và phân loại thứ tự ưu tiên cho công việc hàng ngày.
- Tích hợp chữ ký số: Ứng dụng công nghệ ký số nhằm bảo vệ tính toàn vẹn của hồ sơ, nâng cao tính pháp lý và ngăn ngừa giả mạo tài liệu.
- Xây dựng giao diện thân thiện và dễ sử dụng: Đảm bảo trải nghiệm người dùng trực quan, giúp các đối tượng nhân sự dễ dàng tiếp cận hệ thống.
- Nâng cao trải nghiệm làm việc tổng thể: Tạo môi trường cộng tác số linh hoạt và thuận tiện cho mọi thành viên trong cơ quan, tổ chức.
Hệ thống được thiết kế nhằm đáp ứng 4 nhóm yêu cầu chức năng cốt lõi:
- Quản lý thông tin cá nhân của nhân viên (họ tên, ngày sinh, địa chỉ, số điện thoại, thư điện tử, căn cước công dân, chức danh, bộ phận/tổ chức).
- Quản lý và xử lý yêu cầu nghỉ phép theo các quy định nội bộ.
- Quản lý luồng công việc (phân công nhiệm vụ, gắn thẻ công việc, thiết lập thời hạn và theo dõi tiến độ thực hiện).
- Quản lý chữ ký số và tài liệu (tạo mẫu chữ ký, cấp phát chứng thư số, tổ chức thư mục lưu trữ và thực hiện ký số trên tệp PDF).
Đối tượng và phạm vi nghiên cứu:
- Đối tượng sử dụng: Nhân viên, cán bộ quản lý trực tiếp và quản lý cấp cao trong các cơ quan, tổ chức, doanh nghiệp.
- Phạm vi ứng dụng: Hệ thống hướng tới việc áp dụng cho các doanh nghiệp thuộc nhiều quy mô và lĩnh vực ngành nghề khác nhau có nhu cầu số hóa quy trình quản lý nhân sự và hồ sơ công việc.
Cơ sở lý thuyết và phương pháp
Đồ án áp dụng phương pháp nghiên cứu phân tích - thiết kế hệ thống hướng đối tượng (OOAD) kết hợp khảo sát thực nghiệm các nền tảng thương mại và giải pháp công nghệ hiện hữu để đúc kết yêu cầu kỹ thuật:
| Nền tảng khảo sát |
Nhóm chức năng chính |
Ưu điểm ghi nhận |
Nhược điểm / Hạn chế |
| Asana |
Quản lý dự án, công việc, thời gian, tài liệu, tiến độ; tích hợp Slack, Dropbox, Google Drive. |
Giao diện trực quan, giàu tính năng lập kế hoạch và nhắc nhở công việc. |
Tính năng phức tạp với người dùng mới; chi phí bản quyền cao; gói miễn phí giới hạn tính năng. |
| Timesheet NCC |
Quản lý thời gian làm việc trực tuyến, ghi nhận giờ làm, giải lao, lập báo cáo thời gian. |
Giao diện đơn giản, dễ thao tác và theo dõi lịch sử làm việc. |
Một số chức năng chưa tối ưu; chỉ hỗ trợ phiên bản web trên máy tính, chưa có bản di động. |
| MISA eSign |
Giải pháp ký số từ xa qua nền tảng đám mây, không sử dụng thiết bị phần cứng USB Token. |
Thao tác ký mọi lúc mọi nơi; mã hóa bảo mật cao; chi phí phù hợp. |
Bắt buộc duy trì kết nối Internet ổn định; yêu cầu đăng ký chứng thư số và khóa bí mật. |
| MySign Viettel |
Dịch vụ chữ ký số từ xa trên thiết bị di động và máy tính, hỗ trợ đa dạng định dạng tệp tin. |
Tính bảo mật cao, mã hóa tiên tiến, ký duyệt văn bản chính xác. |
Chi phí dịch vụ còn cao; đôi khi phát sinh lỗi kỹ thuật ảnh hưởng đến trải nghiệm. |
Về mặt lý thuyết kỹ thuật, tác giả tiếp cận các chuẩn kiến trúc và công nghệ sau:
- Khái niệm API và chuẩn REST: Sử dụng giao diện lập trình ứng dụng (Application Programming Interface) để kết nối, truyền tải dữ liệu có cấu trúc JSON qua giao thức HTTP giữa tầng hiển thị và tầng dịch vụ nghiệp vụ.
- Mô hình lập trình hướng đối tượng: Vận dụng ngôn ngữ Java trên nền Spring Framework với các cơ chế cốt lõi như Dependency Injection (DI), Inversion of Control (IoC), Aspect-Oriented Programming (AOP) và mô hình MVC (Model - View - Controller).
- Ngôn ngữ TypeScript và kiến trúc Single Page Application: Sử dụng Angular Framework dựa trên kiến trúc hướng thành phần (component-based), cơ chế liên kết dữ liệu (data binding) và điều hướng (routing).
- Hệ thống xác thực tập trung và quản lý tài liệu: Áp dụng máy chủ định danh Keycloak (Red Hat) hỗ trợ xác thực OAuth 2.0 / Token và hệ thống quản lý tài liệu mã nguồn mở OpenKM (Document Management System).
- Cơ sở dữ liệu quan hệ: Sử dụng PostgreSQL để lưu trữ dữ liệu có cấu trúc, đảm bảo các ràng buộc toàn vẹn, ràng buộc khóa chính - ngoại và bảo mật truy cập.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình kiến trúc phân tầng tách biệt giữa Frontend và Backend, tích hợp các dịch vụ trung gian chuyên trách về bảo mật và lưu trữ:
[ Giao diện người dùng: Angular / TypeScript ]
|
(REST API / JSON)
|
[ Tầng xử lý nghiệp vụ: Spring Framework / Java ] <---> [ Máy chủ xác thực: Keycloak ]
| |
v v
[ CSDL: PostgreSQL ] [ Quản lý tài liệu: OpenKM ]
Ngăn xếp công nghệ và vai trò của từng thành phần kỹ thuật được xác định chi tiết trong văn bản:
- Tầng Client (Frontend): Xây dựng bằng Angular Framework kết hợp ngôn ngữ TypeScript. Tầng này chịu trách nhiệm hiển thị giao diện lịch công việc (Calendar), bảng công việc (Todolist), giao diện kéo thả tọa độ chữ ký số trên tệp PDF và biểu mẫu tiếp nhận thông tin.
- Tầng Server (Backend): Phát triển bằng ngôn ngữ Java sử dụng Spring Framework. Tầng này xử lý toàn bộ logic nghiệp vụ về phân quyền, luân chuyển trạng thái phê duyệt, quản lý vòng đời tài liệu và cung cấp hệ thống REST API phục vụ Frontend.
- Phân hệ Định danh & Xác thực (Keycloak): Đóng vai trò làm máy chủ cấp phát mã thông báo (token), xác thực tài khoản qua username/password và ủy quyền truy cập dựa trên vai trò (Role-Based Access Control) cho 4 nhóm tác nhân.
- Phân hệ Quản lý Tài liệu (OpenKM): Chịu trách nhiệm lưu trữ tập trung các tệp tin đính kèm, đơn xin nghỉ phép, bản mô tả công việc dưới định dạng PDF; đồng thời cung cấp API quản lý thư mục và hỗ trợ chèn dữ liệu chữ ký số.
- Hệ quản trị Cơ sở dữ liệu (PostgreSQL): Lưu trữ các bảng dữ liệu nghiệp vụ bao gồm: bảng người dùng/nhân sự, bảng sự kiện lịch (
Sheet), bảng yêu cầu nghỉ phép (VacationRequest), bảng đăng ký công việc tháng (MonthlyWorkRegistration), bảng thẻ phân loại (Tag), bảng hồ sơ tài liệu (Document) và bảng thông tin vị trí tọa độ chữ ký (PositionSignature).
Quy trình đóng gói và triển khai thực tế:
- Mã nguồn được biên dịch và tự động hóa các bước cài đặt thông qua tập lệnh Bash script.
- Ứng dụng Backend được đóng gói thành tệp nén tiêu chuẩn dạng tệp WAR (
.war).
- Triển khai chạy trên máy chủ ứng dụng web Apache Tomcat Server.
Nội dung chính theo từng chương
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI VÀ LỰA CHỌN CÔNG NGHỆ
Chương 1 thiết lập cơ sở ban đầu cho toàn bộ đồ án, làm rõ lý do lựa chọn đề tài xuất phát từ nhu cầu tối ưu hóa công tác quản trị nhân sự và số hóa hồ sơ doanh nghiệp. Tác giả trình bày chi tiết 6 mục tiêu phát triển, 4 nhóm yêu cầu bài toán cùng đối tượng và phạm vi ứng dụng. Phần tiếp theo của chương tập trung khảo sát 4 hệ thống tiêu biểu gồm Asana, Timesheet NCC, MISA eSign và MySign Viettel để chỉ ra các ưu điểm cần kế thừa cũng như nhược điểm cần khắc phục. Chương này cũng phân tích tổng quan các công nghệ được lựa chọn cho dự án, bao gồm khái niệm REST API, ngôn ngữ lập trình Java, TypeScript, các bộ khung phát triển Spring Framework, Angular Framework, hệ thống xác thực Keycloak, nền tảng tài liệu OpenKM và hệ quản trị cơ sở dữ liệu PostgreSQL.
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG QUẢN LÝ LUỒNG CÔNG VIỆC
Chương 2 là nội dung trọng tâm của đồ án, trình bày chi tiết kết quả phân tích thiết kế hệ thống thông qua các mô hình hóa chuẩn:
- Xác định 4 tác nhân hệ thống:
- Người dùng: Thực hiện các tương tác cơ bản như đăng nhập và tự cập nhật thông tin cá nhân.
- Nhân viên: Sử dụng các chức năng nghiệp vụ gồm quản lý công việc cá nhân, tạo yêu cầu nghỉ phép, khởi tạo quy trình ký tài liệu mô tả công việc và đơn xin nghỉ phép.
- Quản lý: Thực hiện quản trị nhân viên trong tổ chức, kiểm tra nội dung và phê duyệt công việc tháng, phê duyệt lịch nghỉ phép và ký số trên tài liệu.
- Quản lý cấp cao: Quản trị toàn bộ hệ thống, quản lý cơ cấu tổ chức, cấp phát hoặc thu hồi chứng thư số cho nhân sự và theo dõi nhật ký hoạt động.
- Hệ thống hóa 12 use case chính: Đăng nhập, Nhân viên cập nhật thông tin, Quản lý nhân viên, Quản lý tổ chức, Quản lý chứng thư số, Quản lý lịch nghỉ phép, Quản lý công việc, Quản lý phê duyệt, Quản lý tài liệu, Quản lý thư mục, Cấu hình hệ thống (tạo chữ ký, cài đặt thông báo), Xem nhật ký hoạt động.
- Đặc tả kịch bản và biểu đồ tuần tự chi tiết:
- Kịch bản Quản lý thêm người dùng: Quản lý điền các trường thông tin (tên tài khoản, email, họ, tên, số điện thoại, ngày sinh, giới tính, tổ chức, CCCD, địa chỉ) để tạo tài khoản mới.
- Kịch bản Người dùng cập nhật thông tin lần đầu: Người dùng chỉnh sửa các trường thông tin cá nhân (ngoại trừ tên tài khoản và email ở trạng thái vô hiệu hóa/disable).
- Kịch bản Cấp chứng thư số và Tạo mẫu chữ ký: Quản lý cấp cao chọn nhân viên từ danh sách để khởi tạo chứng thư số; nhân viên truy cập mục Cấu hình chữ ký, lựa chọn nhà cung cấp, tùy chỉnh phông chữ hoặc vẽ chữ ký trực tiếp trên khung vẽ.
- Kịch bản Luồng đăng ký và phê duyệt công việc tháng: Nhân viên tạo tác vụ trên danh sách công việc (tiêu đề, hạn hoàn thành, thẻ tag, mô tả), sau đó tải tệp PDF mô tả công việc lên mục Quản lý tài liệu, thiết lập mức độ quan trọng (Bình thường, Quan trọng, Rất quan trọng), chọn danh sách người ký (Quản lý, Chánh văn phòng), kéo thả ô "Ký từ xa" vào vị trí tương ứng trên tệp PDF và gửi đi. Quản lý nhận tài liệu, mở xem tệp PDF, chọn "Ký ngay", nhập mật khẩu chứng thư số để xác thực ký duyệt.
- Kịch bản Luồng tạo yêu cầu và phê duyệt nghỉ phép: Nhân viên thêm sự kiện trên giao diện Lịch công việc (Calendar), chọn loại nghỉ phép, ngày bắt đầu, ngày kết thúc; sau đó tạo quy trình ký gửi đơn xin nghỉ phép định dạng PDF qua OpenKM. Quản lý thực hiện ký số xác nhận trên đơn PDF bằng mật khẩu chứng thư số, tiếp đó vào mục Phê duyệt để xác nhận "Đồng ý" chuyển trạng thái đơn trên lịch công tác.
- Thiết kế dữ liệu: Xây dựng biểu đồ lớp thực thể (Entity Class Diagram) và thiết kế chi tiết các bảng dữ liệu quan hệ trong PostgreSQL (
Sheet, VacationRequest, MonthlyWorkRegistration, Tag, Document, PositionSignature...).
CHƯƠNG 3: CÀI ĐẶT ỨNG DỤNG QUẢN LÝ LUỒNG CÔNG VIỆC
Chương 3 trình bày các bước triển khai thực tế và kết quả cài đặt phần mềm:
- Quy trình triển khai: Trình bày các câu lệnh Bash script phục vụ quá trình build mã nguồn, đóng gói ứng dụng thành tệp WAR và triển khai hoạt động trên máy chủ Tomcat Server.
- Giao diện chức năng thực tế: Văn bản minh họa hệ thống giao diện hoàn chỉnh đã được cài đặt, bao gồm:
- Giao diện Lịch công việc hiển thị trực quan theo dạng tháng, tuần, ngày.
- Giao diện tạo sự kiện nghỉ phép và danh sách yêu cầu đã gửi.
- Giao diện quản lý tài liệu, danh sách tệp đã tải lên và danh sách người tham gia ký duyệt.
- Giao diện tích hợp tệp PDF cho phép kéo thả khung hiển thị chữ ký số.
- Cửa sổ popup bảo mật yêu cầu nhập mật khẩu chứng thư số trước khi thực hiện ký tài liệu.
- Phân hệ Phê duyệt dành cho cấp quản lý để theo dõi chi tiết yêu cầu, chấp thuận hoặc từ chối đơn từ kèm lịch sử ký duyệt.
Kết quả và đóng góp
Đồ án đã xây dựng thành công một giải pháp phần mềm hoàn chỉnh nhằm tự động hóa luồng làm việc nội bộ với các kết quả cụ thể:
- Tự động hóa chu trình công việc và nghỉ phép: Xây dựng cơ chế tích hợp giữa lịch làm việc (Calendar), quản lý tác vụ cá nhân (Todolist) và quy trình gửi/duyệt đơn nghỉ phép, loại bỏ các bước chuyển giao văn bản giấy tờ truyền thống.
- Tích hợp giải pháp ký số trực quan: Triển khai thành công tính năng số hóa văn bản PDF, cho phép gán vai trò người ký (người ký, người điều phối, người phê duyệt), thiết lập ký theo thứ tự và kéo thả vị trí chữ ký điện tử trực tiếp trên giao diện web có xác thực mật khẩu chứng thư số.
- Kết hợp các nền tảng mã nguồn mở chuyên dụng: Tích hợp máy chủ Keycloak vào kiến trúc để đảm bảo an toàn xác thực và phân quyền 4 cấp độ người dùng, đồng thời ứng dụng hệ thống OpenKM để quản lý tập trung tài liệu điện tử.
So với các ứng dụng thương mại được khảo sát, đồ án mang lại đóng góp thực tiễn khi kết hợp được cả hai phân hệ: quản lý thời gian/công việc (tương tự Asana, Timesheet NCC) và quy trình ký duyệt tài liệu từ xa bằng chứng thư số (tương tự MISA eSign, MySign Viettel) trong cùng một hệ thống thống nhất, giúp tối ưu hóa chi phí và đơn giản hóa thao tác cho doanh nghiệp.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên phạm vi và nội dung triển khai được ghi nhận trong văn bản đồ án:
- Hạn chế:
- Ứng dụng hiện tại mới chỉ được thiết kế, đóng gói và triển khai trên giao diện nền tảng web dành cho máy tính (thông qua trình duyệt), chưa xây dựng ứng dụng di động độc lập (native app trên iOS và Android).
- Thao tác ký số và xử lý văn bản yêu cầu hệ thống phải duy trì kết nối Internet liên tục để giao tiếp với máy chủ xác thực Keycloak và dịch vụ tài liệu OpenKM.
- Hướng nghiên cứu tiếp:
- Nghiên cứu phát triển phiên bản ứng dụng di động dành cho các thiết bị cầm tay nhằm nâng cao tính tiện lợi cho người dùng khi di chuyển.
- Tiếp tục tối ưu hóa hiệu năng xử lý khi thao tác với các tệp tài liệu PDF dung lượng lớn và mở rộng các giao thức kết nối với các hệ thống quản trị nhân sự/kế toán doanh nghiệp chuyên sâu.
Giá trị tham khảo
Đồ án là tài liệu tham khảo hữu ích cho:
- Sinh viên, học viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin: Cung cấp cấu trúc tham khảo chuẩn cho một đồ án tốt nghiệp đại học định hướng xây dựng ứng dụng web phân tầng, từ khâu khảo sát, phân tích yêu cầu, thiết kế UML (use case, sequence diagram, class diagram) đến khâu cài đặt thực tế.
- Kỹ sư phát triển phần mềm doanh nghiệp: Tham khảo tài liệu thiết kế chi tiết về kịch bản nghiệp vụ quản lý luồng công việc (Workflow Management), phương pháp tích hợp máy chủ định danh Keycloak (OAuth 2.0/RBAC) và giải pháp nhúng chữ ký số trên tệp tài liệu PDF thông qua hệ thống OpenKM.
Câu hỏi thường gặp
1. Hệ thống phân chia quyền hạn cho những tác nhân nào và vai trò của từng tác nhân là gì?
Hệ thống xác định 4 tác nhân chính:
- Người dùng: Đăng nhập và cập nhật thông tin cá nhân.
- Nhân viên: Quản lý công việc cá nhân (todolist), tạo yêu cầu nghỉ phép, tải lên tài liệu PDF, thiết lập quy trình ký và thực hiện ký số.
- Quản lý: Quản lý thông tin nhân viên, phê duyệt công việc tháng, phê duyệt lịch nghỉ phép và ký duyệt tài liệu bằng chứng thư số.
- Quản lý cấp cao: Quản lý tổ chức, cấp phát và quản lý chứng thư số cho toàn bộ nhân sự, theo dõi nhật ký hoạt động hệ thống.
2. Quy trình nhân viên đăng ký công việc tháng và tạo tài liệu ký duyệt diễn ra như thế nào?
Quy trình gồm hai giai đoạn chính:
- Nhân viên vào mục "Công việc" để tạo nhiệm vụ (tiêu đề, hạn hoàn thành, thẻ tag, mô tả).
- Nhân viên vào "Quản lý tài liệu", tải tệp PDF mô tả công việc lên, chọn mức độ quan trọng, thêm danh sách người ký (Quản lý, Chánh văn phòng), kéo thả ô "Ký từ xa" vào vị trí mong muốn trên tệp PDF, thiết lập thời hạn ký và gửi đi để hệ thống chuyển tiếp đến người phê duyệt.
3. Vai trò của Keycloak và OpenKM trong đồ án là gì?
- Keycloak đóng vai trò là máy chủ xác thực tập trung mã nguồn mở, chịu trách nhiệm quản lý phiên đăng nhập, xác thực danh tính qua token và phân quyền truy cập theo vai trò.
- OpenKM đóng vai trò là hệ thống quản lý tài liệu (DMS), cung cấp các dịch vụ lưu trữ, quản lý cây thư mục, bảo mật và cung cấp giao diện API để xử lý tệp tin gắn chữ ký số.
4. Quản lý thực hiện thao tác ký số trên tài liệu như thế nào?
Khi nhận được tài liệu cần ký, Quản lý truy cập mục "Quản lý tài liệu", chọn văn bản cần duyệt và nhấn "Ký ngay". Giao diện sẽ hiển thị tệp PDF kèm vị trí chữ ký đã được thiết lập. Quản lý nhấn xác nhận ký, hệ thống hiển thị một cửa sổ popup yêu cầu nhập đúng mật khẩu của chứng thư số. Sau khi nhập chính xác và bấm "Xác nhận", hệ thống sẽ hoàn tất việc gắn chữ ký số lên tài liệu và hiển thị thông báo thành công.
5. Ứng dụng được đóng gói và vận hành trên nền tảng máy chủ nào?
Toàn bộ mã nguồn ứng dụng Backend được biên dịch và đóng gói thành tệp nén tiêu chuẩn dạng WAR (.war) thông qua các tập lệnh Bash script, sau đó được triển khai vận hành trực tiếp trên máy chủ ứng dụng Apache Tomcat Server kết nối với cơ sở dữ liệu PostgreSQL.
Kết luận
Đồ án tốt nghiệp "Ứng dụng Quản lý Luồng công việc - Timesheet" của sinh viên Phạm Anh Tuấn đã hoàn thành đầy đủ các mục tiêu đề ra về mặt phân tích, thiết kế và cài đặt thực nghiệm một hệ thống quản lý công việc và nghỉ phép nội bộ. Bằng việc kết hợp ngăn xếp công nghệ Spring Framework, Angular, PostgreSQL cùng các giải pháp mã nguồn mở Keycloak và OpenKM, tác giả đã giải quyết thành công bài toán số hóa quy trình phê duyệt và tích hợp chữ ký số trên tài liệu PDF. Công trình mang tính ứng dụng thực tiễn rõ nét, cung cấp tài liệu tham khảo chi tiết cho các nghiên cứu và dự án phát triển phần mềm quản trị doanh nghiệp.