Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh cuộc Cách mạng Công nghiệp 4.0 và sự phổ biến của các thiết bị máy tính, điện thoại thông minh, công tác quản lý thông tin trong các cơ quan, tổ chức đã có những chuyển biến rõ nét. Hoạt động quản lý nhân sự theo phương thức truyền thống bộc lộ nhiều điểm hạn chế như tốn kém giấy mực, mất nhiều thời gian và công sức ghi chép thủ công. Việc chuyển dịch sang ứng dụng phần mềm quản lý trên nền tảng máy tính giúp tiết kiệm chi phí, rút ngắn thời gian xử lý và tối ưu hóa việc lưu trữ dữ liệu cán bộ.
Đề tài "Xây dựng trang web quản lý nhân sự bằng ReactJS" được thực hiện trong khuôn khổ Đồ án môn học Công nghệ phần mềm tại Khoa Hệ thống Thông tin và Viễn thám, Trường Đại học Tài nguyên và Môi trường TP.HCM, do sinh viên Trần Trí Trung thực hiện dưới sự hướng dẫn của ThS. Nguyễn Văn Kiên. Mục đích chính của đề tài là vận dụng các kiến thức chuyên ngành để xây dựng một hệ thống website hoàn chỉnh, phục vụ công tác quản trị hồ sơ và theo dõi toàn bộ quá trình công tác của cán bộ.
Mục tiêu và các yêu cầu cụ thể cần giải quyết trong đồ án được xác định như sau:
- Sử dụng công cụ Visual Studio Code để xây dựng và phát triển mã nguồn cho trang web.
- Tìm hiểu, nắm vững và áp dụng các kiến thức cơ bản về hệ quản trị cơ sở dữ liệu Microsoft SQL Server.
- Xây dựng trang web quản lý nhân sự tích hợp cơ sở dữ liệu SQL Server với đầy đủ các phân hệ chức năng:
- Chức năng đăng nhập hệ thống;
- Chức năng quản lý thông tin cá nhân cán bộ;
- Chức năng quản lý quá trình đào tạo;
- Chức năng quản lý quá trình bồi dưỡng;
- Chức năng quản lý quá trình công tác;
- Chức năng quản lý quá trình khen thưởng và kỷ luật.
Phạm vi nghiên cứu của đề tài bao gồm:
- Phạm vi nội dung và công nghệ: Tìm hiểu về thư viện ReactJS, nền tảng NodeJS, môi trường lập trình ReactJS, các kỹ thuật lập trình trang web hiện đại (quản lý trạng thái với Redux, định tuyến với React-Router, xử lý bất đồng bộ với Redux-Thunk, giao tiếp API qua Axios), công cụ kiểm thử API Advanced REST Client và thiết kế cơ sở dữ liệu trên Microsoft SQL Server.
- Phạm vi nghiệp vụ: Tập trung vào các tác vụ quản lý hồ sơ nhân sự nội bộ (xem danh sách, thêm mới, chỉnh sửa, xóa dữ liệu) và theo dõi các quá trình biến động nhân sự của cán bộ trong một đơn vị.
Cơ sở lý thuyết và phương pháp
Đồ án xây dựng dựa trên nền tảng kiến trúc web hiện đại kết hợp giữa giao diện người dùng Single Page Application (SPA), máy chủ ứng dụng NodeJS và hệ quản trị cơ sở dữ liệu quan hệ Microsoft SQL Server.
Khung lý thuyết và công nghệ sử dụng
Hệ thống tích hợp nhiều công nghệ, thư viện và công cụ lập trình chuyên dụng:
| Thành phần |
Công nghệ / Công cụ |
Đặc điểm và vai trò trong hệ thống |
| Ngôn ngữ lập trình |
JavaScript (kết hợp HTML & CSS) |
Ngôn ngữ thực thi phía client và server, hỗ trợ tương tác giao diện người dùng, kiểm tra tính hợp lệ của dữ liệu đầu vào (input) nhằm giảm thiểu việc truy vấn thủ công về cơ sở dữ liệu. |
| Thư viện giao diện |
ReactJS |
Thư viện JavaScript mã nguồn mở chuyên xây dựng giao diện người dùng (UI) với cơ chế Hot Reload hỗ trợ phát triển nhanh. |
| Quản lý trạng thái |
Redux & Redux-Thunk |
Redux đóng vai trò quản trị trạng thái ứng dụng dự đoán được (predictable state management) lấy cảm hứng từ ngôn ngữ Elm và kiến trúc Flux. Redux-Thunk hoạt động như một middleware cho phép action trả về một hàm xử lý các logic bất đồng bộ và gọi AJAX/API request trước khi đưa dữ liệu đến Reducer. |
| Điều hướng & Định tuyến |
React-Router |
Thư viện định tuyến chuẩn cho ReactJS gồm các thành phần chính: BrowserRouter (sử dụng HTML5 History API để đồng bộ UI với URL), Route (hiển thị UI theo đường dẫn khớp), Link (liên kết điều hướng) và Switch (chọn route đầu tiên khớp với vị trí truy cập). |
| Giao tiếp dữ liệu |
Axios |
HTTP client hoạt động dựa trên Promises, hỗ trợ gửi và nhận các HTTP request (GET, POST, PUT, DELETE) giữa trình duyệt/NodeJS và máy chủ API. |
| Thiết kế giao diện |
Bootstrap |
Bộ khung giao diện mã nguồn mở cung cấp hệ thống lưới (grid system), typography, form, table, font và các biểu tượng glyphicons giúp tối ưu hóa thời gian xây dựng giao diện. |
| Nền tảng máy chủ |
NodeJS |
Nền tảng thực thi JavaScript độc lập xây dựng trên V8 JavaScript Engine của Chrome, phần core viết bằng C++ cho hiệu năng cao, hỗ trợ xử lý tác vụ mạng và ứng dụng thời gian thực. |
| Cơ sở dữ liệu |
Microsoft SQL Server (MS SQL Server) |
Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) sử dụng ngôn ngữ Transact-SQL (T-SQL), hỗ trợ mô hình Client-Server gồm Workstation và Server (tích hợp các thành phần quản lý SSIS, SSAS, SSRS). |
| Môi trường phát triển |
Visual Studio Code |
Trình soạn thảo mã nguồn đa nền tảng (Windows, Linux, macOS), tích hợp công cụ Debug, Git, Syntax Highlighting và IntelliSense. |
| Công cụ kiểm thử |
Advanced REST Client (ARC) |
Công cụ mã nguồn mở kiểm tra API qua các HTTP request tùy chỉnh, hỗ trợ cấu hình header, socket trực tiếp và lưu trữ kịch bản trên Google Drive. |
Phương pháp nghiên cứu
Tác giả áp dụng các phương pháp nghiên cứu thực tiễn trong ngành công nghệ phần mềm:
- Phương pháp thu thập và tổng hợp tài liệu: Khai thác các tài liệu kỹ thuật, video hướng dẫn chuyên đề trên nền tảng YouTube, nghiên cứu các ví dụ mẫu trên công cụ tìm kiếm và phân tích các giao diện mẫu.
- Phương pháp phân tích và thiết kế hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa UML để xây dựng lược đồ ca sử dụng (Use Case Diagram), viết đặc tả chi tiết cho từng ca sử dụng và thiết kế các lược đồ tuần tự (Sequence Diagram) để mô tả luồng thông điệp giữa người dùng, giao diện, bộ xử lý và cơ sở dữ liệu.
- Phương pháp thực nghiệm phát triển phần mềm: Cài đặt môi trường, viết mã nguồn giao diện (Frontend), kết nối API và thao tác dữ liệu trên hệ quản trị SQL Server.
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, quản lý tập trung luồng dữ liệu thông qua Redux Store và phân chia rõ ràng trách nhiệm giữa phía Client (ReactJS) và cơ sở dữ liệu (SQL Server).
Kiến trúc phân tích Use Case và Luồng xử lý (Sequence)
Hệ thống xác định các Use Case trọng tâm tương ứng với các nghiệp vụ quản trị nhân sự tại đơn vị:
| Ca sử dụng (Use Case) |
Mô tả nghiệp vụ |
Luồng xử lý chính & Kiểm tra điều kiện |
| Đăng nhập |
Xác thực danh tính người dùng vào hệ thống. |
- Yêu cầu nhập tài khoản và mật khẩu. - Nếu để trống: hiển thị thông báo "Chưa nhập tài khoản hoặc mật khẩu". - Nếu nhập sai: hiển thị thông báo "Tài khoản hoặc mật khẩu sai". - Nếu nhập đúng: hệ thống tạo Token và lưu vào localStorage của trình duyệt, sau đó chuyển hướng vào trang chủ. |
| Quản lý thông tin cán bộ |
Cập nhật hồ sơ cá nhân của nhân sự. |
- Hỗ trợ các thao tác Thêm, Sửa, Xóa. - Khi thêm/sửa: bắt buộc nhập đầy đủ thông tin, nếu thiếu sẽ báo "Chưa nhập đầy đủ thông tin". - Khi xóa: hệ thống hiển thị hộp thoại xác nhận trước khi xóa bản ghi khỏi bảng dữ liệu. |
| Quản lý quá trình công tác |
Theo dõi lịch sử điều chuyển, công tác tại đơn vị. |
- Người quản lý chọn chức năng thêm/sửa/xóa quá trình công tác. - Kiểm tra tính toàn vẹn của dữ liệu đầu vào. - Cập nhật dữ liệu vào bảng quá trình công tác của cán bộ. |
| Quản lý quá trình đào tạo |
Quản lý bằng cấp, trình độ học vấn của cán bộ. |
- Hỗ trợ tạo mới, cập nhật hoặc xóa bỏ thông tin các khóa đào tạo. - Dữ liệu cập nhật trực tiếp vào danh sách đào tạo của nhân sự tương ứng. |
| Quản lý quá trình bồi dưỡng |
Quản lý các chứng chỉ, khóa bồi dưỡng ngắn hạn. |
- Thực hiện thao tác CRUD (Thêm, Đọc, Sửa, Xóa) thông tin bồi dưỡng nghiệp vụ. - Báo lỗi nếu thiếu trường dữ liệu bắt buộc. |
| Quản lý khen thưởng |
Ghi nhận thành tích, khen thưởng của nhân sự. |
- Nhập thông tin khen thưởng, lưu trữ dữ liệu vào hệ thống. - Cung cấp giao diện xem chi tiết và chỉnh sửa lịch sử khen thưởng. |
| Quản lý kỷ luật |
Ghi nhận các hình thức xử lý kỷ luật. |
- Cập nhật thông tin kỷ luật vào hồ sơ cán bộ. - Xác nhận trước khi thực hiện thao tác xóa dữ liệu kỷ luật. |
Triển khai ứng dụng và Giao diện
Quá trình triển khai ứng dụng thực tế trên môi trường web diễn ra theo các bước vận hành:
- Khởi tạo và Xác thực: Người dùng truy cập trang đăng nhập (
/login), nhập thông tin tài khoản và mật khẩu. Khi xác thực hợp lệ, mã Token được lưu vào localStorage để duy trì phiên làm việc cho các yêu cầu kế tiếp.
- Bảng điều khiển và Quản lý cán bộ: Sau khi đăng nhập thành công, hệ thống điều hướng về trang chủ hiển thị danh sách cán bộ dưới dạng bảng (
Table), cho phép tra cứu nhanh các thông tin định danh.
- Các Modal chức năng: Thao tác thêm mới, chỉnh sửa thông tin cá nhân và các quá trình (đào tạo, bồi dưỡng, công tác, khen thưởng, kỷ luật) được thực hiện thông qua các cửa sổ Modal giao diện, giúp người dùng thao tác trực tiếp mà không cần tải lại toàn bộ trang web.
Nội dung chính theo từng chương
Báo cáo đồ án được kết cấu thành 4 chương chính với nội dung triển khai cụ thể:
Chương 1: Tổng quan
Chương 1 trình bày lý do chọn đề tài dựa trên tính cấp thiết của việc số hóa dữ liệu quản lý nhân sự trong thời đại công nghệ 4.0. Tác giả chỉ ra lợi ích của việc thay thế ghi chép thủ công bằng phần mềm để tiết kiệm thời gian, giấy tờ và chi phí. Chương này xác định rõ phạm vi tìm hiểu công nghệ (ReactJS, NodeJS, SQL Server), nêu bật các yêu cầu chức năng cần giải quyết (đăng nhập, quản lý cán bộ và 5 quá trình liên quan) và xác định phương pháp nghiên cứu thông qua tài liệu trực tuyến, video YouTube và mã nguồn mẫu.
Chương 2: Cơ sở lý thuyết
Chương 2 cung cấp nền tảng kiến thức chuyên sâu về các công nghệ được lựa chọn:
- Phân tích ngôn ngữ JavaScript và vị trí của nó trong bộ ba công nghệ web (HTML, CSS, JavaScript); liệt kê các ưu điểm nổi bật như không cần trình biên dịch riêng, dễ phát hiện lỗi, hỗ trợ đa nền tảng và tối ưu hóa xử lý input.
- Giới thiệu hệ quản trị cơ sở dữ liệu Microsoft SQL Server, cấu trúc Client-Server (Workstation và Server), ngôn ngữ T-SQL cùng các dịch vụ tích hợp SSAS, SSIS, SSRS.
- Trình bày công cụ lập trình Visual Studio Code và công cụ kiểm thử API Advanced REST Client.
- Đi sâu vào các thư viện thuộc hệ sinh thái React: thư viện ReactJS xây dựng UI, nền tảng NodeJS xây dựng trên Chrome V8, công cụ quản lý state Redux (theo kiến trúc Elm/Flux), middleware Redux-Thunk, bộ định tuyến React-Router (với các thành phần
BrowserRouter, Route, Link, Switch), thư viện HTTP client Axios và framework giao diện Bootstrap.
Chương 3: Xây dựng và triển khai trang web
Chương 3 là phần trọng tâm kỹ thuật của đồ án, tập trung vào:
- Phân tích thiết kế hệ thống: Xây dựng lược đồ tổng thể Use Case và viết đặc tả chi tiết cho từng ca sử dụng (Đăng nhập, Quản lý thông tin cá nhân, Quản lý quá trình công tác, Quản lý quá trình đào tạo, Quản lý quá trình khen thưởng, Quản lý quá trình kỷ luật, Quản lý quá trình bồi dưỡng) kèm luồng sự kiện chính và các luồng sự kiện lỗi khi thiếu dữ liệu.
- Mô hình hóa tương tác: Trình bày 7 lược đồ tuần tự (Sequence Diagram) tương ứng với các ca sử dụng nhằm làm rõ thứ tự truyền nhận thông điệp giữa Actor, View, Controller/Action, Redux Store và Database.
- Thiết kế cơ sở dữ liệu: Thể hiện sơ đồ quan hệ dữ liệu (Diagram) giữa các bảng thực thể.
- Triển khai ứng dụng: Minh họa chi tiết các giao diện thực tế bao gồm giao diện đăng nhập, lưu trữ Token vào
localStorage, giao diện danh sách cán bộ, thông tin chi tiết và các giao diện/modal Thêm, Sửa, Xóa của từng quá trình đào tạo, bồi dưỡng, công tác, khen thưởng và kỷ luật.
Chương 4: Kết luận
Chương 4 tổng kết lại toàn bộ kết quả thực hiện của đồ án, đánh giá mức độ hoàn thành so với các mục tiêu ban đầu đặt ra, nêu lên những khó khăn, hạn chế gặp phải trong quá trình nghiên cứu công nghệ mới và đề xuất các hướng phát triển nâng cấp hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả đạt được
Đồ án đã xây dựng thành công một trang web quản lý nhân sự hoàn chỉnh trên môi trường máy tính với các kết quả cụ thể:
- Hoàn thiện module xác thực đăng nhập an toàn, xử lý logic kiểm tra tài khoản/mật khẩu và tự động cấp phát, lưu trữ Token vào
localStorage của trình duyệt.
- Xây dựng đầy đủ 6 phân hệ quản lý dữ liệu nhân sự với các chức năng CRUD hoàn chỉnh:
- Quản lý thông tin cá nhân cán bộ;
- Quản lý quá trình đào tạo (trình độ, bằng cấp);
- Quản lý quá trình bồi dưỡng (chứng chỉ, chuyên môn);
- Quản lý quá trình công tác tại các đơn vị;
- Quản lý quá trình khen thưởng;
- Quản lý quá trình kỷ luật.
- Tích hợp thành công Redux và Redux-Thunk để quản lý trạng thái tập trung, kết hợp cùng Axios để giao tiếp dữ liệu mượt mà, không cần tải lại trang.
Đóng góp của đồ án
- Về mặt ứng dụng thực tiễn: Cung cấp giải pháp số hóa quy trình quản trị hồ sơ cán bộ, giúp thay thế phương pháp ghi chép sổ sách thủ công, tiết kiệm thời gian tra cứu và chi phí in ấn văn phòng phẩm.
- Về mặt kỹ thuật: Đồ án là tài liệu thực hành vận dụng thành công mô hình kết hợp giữa ReactJS, Redux, NodeJS và Microsoft SQL Server vào bài toán quản trị nhân sự thực tế, chứng minh tính khả thi của việc xây dựng ứng dụng Single Page Application phục vụ công tác quản lý nội bộ.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
- Hệ thống tập trung chủ yếu vào các chức năng quản lý cơ bản (Thêm, Sửa, Xóa, Xem danh sách), chưa phát triển các module nâng cao như phân quyền đa cấp bậc (Admin, Quản lý, Cán bộ tự tra cứu).
- Chưa tích hợp chức năng xuất báo cáo, thống kê dữ liệu động ra các định dạng văn bản (Excel, PDF) thông qua SQL Server Reporting Services (SSRS).
- Quá trình kiểm thử chủ yếu thực hiện trên công cụ Advanced REST Client ở quy mô cục bộ, chưa có dữ liệu kiểm thử tải trong môi trường cơ sở dữ liệu quy mô lớn (Very Large Database).
Hướng phát triển
- Mở rộng phân quyền người dùng chi tiết và tăng cường cơ chế bảo mật hệ thống.
- Bổ sung các phân hệ thống kê, báo cáo chuyên sâu và trực quan hóa dữ liệu nhân sự.
- Tối ưu hóa cấu trúc cơ sở dữ liệu trên Microsoft SQL Server để đáp ứng khả năng mở rộng lưu trữ và truy xuất đồng thời cho nhiều người dùng.
Giá trị tham khảo
Báo cáo đồ án này là tài liệu tham khảo phù hợp cho:
- Đối tượng: Sinh viên các ngành Công nghệ thông tin, Hệ thống thông tin, Kỹ thuật phần mềm đang thực hiện đồ án môn học, đồ án công nghệ phần mềm hoặc khóa luận tốt nghiệp có liên quan đến lập trình web.
- Nội dung tham khảo giá trị:
- Phần đặc tả Use Case chi tiết với các kịch bản kiểm tra điều kiện dữ liệu (validation) rõ ràng.
- Hệ thống 7 lược đồ tuần tự (Sequence Diagram) chuẩn hóa quy trình tương tác trong ứng dụng ReactJS có tích hợp Redux và cơ sở dữ liệu.
- Phương pháp tích hợp và cấu hình bộ công cụ: ReactJS, Redux-Thunk, React-Router, Axios và Bootstrap.
Câu hỏi thường gặp
1. Đồ án sử dụng cơ chế nào để duy trì trạng thái đăng nhập của người dùng?
Hệ thống sử dụng cơ chế xác thực dựa trên Token. Sau khi người dùng nhập chính xác tên đăng nhập và mật khẩu, hệ thống sẽ trả về mã Token và lưu trữ trực tiếp vào localStorage của trình duyệt để duy trì phiên làm việc cho các thao tác tiếp theo.
2. Hệ thống hỗ trợ quản lý những quá trình biến động nào của cán bộ?
Hệ thống hỗ trợ quản lý chi tiết 5 quá trình biến động trong suốt thời gian công tác của cán bộ, bao gồm: Quá trình đào tạo, Quá trình bồi dưỡng, Quá trình công tác tại đơn vị, Quá trình khen thưởng và Quá trình kỷ luật.
3. Vai trò của middleware Redux-Thunk trong ứng dụng là gì?
Redux-Thunk đóng vai trò là một middleware trung gian, cho phép viết các Action trả về một hàm (function) thay vì một plain JavaScript object thông thường. Cơ chế này giúp trì hoãn việc gửi action đến Reducer nhằm xử lý các tác vụ bất đồng bộ phức tạp như gửi yêu cầu lấy dữ liệu từ máy chủ (Ajax/API request) qua thư viện Axios.
4. Tác giả sử dụng công cụ nào để kiểm thử các API trong đồ án?
Tác giả sử dụng phần mềm mã nguồn mở Advanced REST Client (ARC) để tạo, cấu hình tiêu đề (header) và gửi các yêu cầu HTTP tùy chỉnh nhằm kiểm tra tính chính xác của các điểm cuối API trước khi tích hợp vào giao diện ReactJS.
5. Các thành phần chính của React-Router được ứng dụng trong đồ án gồm những gì?
Đồ án sử dụng 4 thành phần cốt lõi của React-Router gồm: BrowserRouter (sử dụng HTML5 History API để đồng bộ giao diện với URL), Route (hiển thị thành phần giao diện khi khớp đường dẫn URL), Link (thực hiện điều hướng liên kết trong ứng dụng) và Switch (chỉ định hiển thị Route đầu tiên khớp với vị trí truy cập).
Kết luận
Đồ án môn học Công nghệ phần mềm "Xây dựng trang web quản lý nhân sự bằng ReactJS" của sinh viên Trần Trí Trung đã hoàn thành đầy đủ các mục tiêu thiết kế và xây dựng một hệ thống quản trị nhân sự hoàn chỉnh. Bằng việc kết hợp hiệu quả giữa thư viện ReactJS, nền tảng NodeJS, công cụ quản lý trạng thái Redux và hệ quản trị cơ sở dữ liệu Microsoft SQL Server, đồ án đã giải quyết tốt bài toán số hóa hồ sơ cán bộ và theo dõi lịch sử công tác. Toàn bộ quy trình phân tích ca sử dụng, thiết kế biểu đồ tuần tự và triển khai giao diện được trình bày mạch lạc, mang lại giá trị tham khảo thực tiễn cao cho sinh viên ngành công nghệ thông tin.