Bối cảnh và vấn đề nghiên cứu

Trong quản trị doanh nghiệp, việc theo dõi và kiểm soát thời gian làm việc của nhân sự đóng vai trò then chốt nhằm tối ưu hóa năng suất lao động, nâng cao hiệu quả quản lý dự án và hạn chế việc lưu trữ dữ liệu phân tán bằng giấy tờ thủ công. Thực tế tại nhiều đơn vị cho thấy phương thức chấm công và ghi nhận nhật ký công việc truyền thống làm tiêu tốn thời gian tìm kiếm, tổng hợp dữ liệu, đồng thời dễ phát sinh sai sót trong quá trình đánh giá tiến độ và năng lực nhân viên. Nhận thức được nhu cầu số hóa quy trình quản lý thời gian, tác giả Nguyễn Thị Thu Hà (Khoa Công nghệ thông tin, Trường Đại học Giao thông Vận tải) đã thực hiện đồ án tốt nghiệp với đề tài "Quản lý thời gian làm việc – Timesheet system".

Hệ thống được định hướng xây dựng dưới dạng ứng dụng web, tập trung giải quyết bài toán ghi nhận các đầu công việc, kiểm soát thời lượng làm việc theo ngày, hỗ trợ quản lý dự án tổng hợp tiến độ và trực quan hóa năng lực làm việc của nhân sự thông qua số liệu định lượng (point) và biểu đồ thống kê.

Mục tiêu và các nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:

  1. Mục tiêu chính: Phân tích, thiết kế chức năng và cơ sở dữ liệu để xây dựng hoàn chỉnh ứng dụng web "Quản lý việc làm Timesheet system", đáp ứng yêu cầu quản lý thời gian làm việc đa tác nhân.
  2. Nhiệm vụ nghiên cứu:
    • Khảo sát thực tế quy trình quản lý và vận hành chấm công/timesheet tại doanh nghiệp công nghệ thông tin.
    • Nghiên cứu, lựa chọn các công nghệ phù hợp để phát triển ứng dụng phía máy khách (Client-side) và dịch vụ máy chủ đám mây (Cloud Backend).
    • Thiết kế các sơ đồ phân rã chức năng, sơ đồ luồng dữ liệu (DFD), biểu đồ Use Case, biểu đồ tuần tự (Sequence Diagram) và cấu trúc dữ liệu NoSQL.
    • Xây dựng thuật toán kiểm soát tính hợp lệ của dữ liệu thời gian, tránh xung đột khoảng thời gian làm việc khi người dùng nhập liệu.
    • Triển khai lập trình giao diện và hoàn thiện các chức năng cho từng nhóm người dùng.

Đối tượng và phạm vi nghiên cứu của đề tài được xác định rõ:

  • Đối tượng nghiên cứu:
    • Công cụ phát triển: Visual Studio Code, Microsoft Excel.
    • Khung phát triển và thư viện: Angular, Bootstrap 4, CoreUI, Firebase Cloud (Cloud Firestore, Firebase Authentication).
    • Mô hình ứng dụng: Hệ thống quản lý thời gian Timesheet system trên nền tảng web.
  • Phạm vi nghiên cứu: Đề tài giới hạn phạm vi trong việc xây dựng ứng dụng hoạt động trên nền tảng trình duyệt web (Website); dữ liệu khảo sát nghiệp vụ được thực hiện trực tiếp tại Công ty PowerGate Software vào tháng 05/2020.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ sử dụng

Đề tài khai thác các nền tảng và công nghệ phát triển web hiện đại nhằm hiện thực hóa hệ thống theo mô hình Single Page Application (SPA) kết hợp với Backend-as-a-Service (BaaS):

  • Khung giao diện Angular: Khung phát triển dựa trên ngôn ngữ JavaScript/TypeScript do Google phát triển (khởi đầu từ AngularJS năm 2010, chuyển đổi sang Angular 2 năm 2016 và cập nhật đến phiên bản Angular 10 tại thời điểm nghiên cứu). Angular hỗ trợ kiến trúc hướng thành phần (Component-based), hệ thống điều hướng (Routing) và cơ chế liên kết dữ liệu hai chiều (Two-way Data Binding) dựa trên mô hình MVVM (Model - View - ViewModel):
    • View: Giao diện người dùng định nghĩa bằng mã nguồn HTML của từng component.
    • Model: Dữ liệu đại diện dưới dạng các thuộc tính trong lớp component (Component Class).
    • ViewModel/Component: Lớp điều khiển xử lý việc truy xuất, cập nhật dữ liệu và bắt các tương tác của người dùng từ View.
  • Nền tảng Firebase Cloud: Dịch vụ đám mây của Google cung cấp giải pháp phi máy chủ (Serverless), gồm hai dịch vụ chính:
    • Cloud Firestore: Cơ sở dữ liệu NoSQL hướng tài liệu (Document-oriented database), tổ chức dữ liệu thành các tập hợp (Collections) chứa các tài liệu (Documents). Nền tảng này hỗ trợ đồng bộ dữ liệu thời gian thực (Real-time updates) và truy vấn dữ liệu trực tiếp thông qua SDK máy khách.
    • Firebase Authentication: Dịch vụ quản lý định danh người dùng trung gian, xử lý các tác vụ đăng nhập, quản lý phiên làm việc và bảo mật tài khoản người dùng qua email/mật khẩu.
  • Công nghệ mô hình hóa UML - Draw.io: Công cụ trực tuyến hỗ trợ thiết kế các biểu đồ phân tích kỹ thuật phần mềm, quy trình kinh doanh và kiến trúc hệ thống.

Phương pháp nghiên cứu

Tác giả áp dụng kết hợp các phương pháp nghiên cứu thực tiễn và kỹ thuật phần mềm:

  • Phương pháp khảo sát thực tế: Tiến hành phỏng vấn sâu trực tiếp vào ngày 05/05/2020 với bà Nguyễn Thu Trang - Quản lý tại Công ty PowerGate Software (powergatesoftware.com). Nội dung phỏng vấn làm rõ quy trình quản lý 8 giờ làm việc/ngày (chia thành hai khung giờ chính: 9h–12h và 13h–18h), nguyên tắc quy đổi định lượng (1 point tương đương 1 giờ làm việc thực tế), quy trình kiểm soát của quản lý dự án (PM) và kế toán dựa trên file kế hoạch ước lượng, cùng các yêu cầu cải tiến nghiệp vụ như bổ sung biểu đồ thống kê và kiểm tra (validate) dữ liệu đầu vào.
  • Phương pháp phân tích và mô hình hóa hệ thống: Sử dụng các biểu đồ chuẩn hóa của kỹ thuật phần mềm gồm sơ đồ phân rã chức năng, sơ đồ luồng dữ liệu (mức ngữ cảnh và mức đỉnh), biểu đồ Use Case và biểu đồ tuần tự để đặc tả yêu cầu và luồng xử lý.
  • Phương pháp thực nghiệm kiểm thử: Thiết lập các kịch bản kiểm thử cục bộ cho thuật toán xử lý xung đột thời gian (Time Conflict Detection) khi nhân viên khai báo bảng chấm công.

Thiết kế và triển khai hệ thống

Phân cấp tác nhân và ma trận chức năng

Hệ thống xác định 3 nhóm tác nhân tham gia với các phân quyền chức năng cụ thể:

Chức năng hệ thống Nhân viên (Role 1) Quản lý dự án (Role 2) Quản trị viên (Role 0)
Đăng nhập / Đăng xuất x x x
Khôi phục mật khẩu / Đổi mật khẩu x x x
Quản lý nhân viên (Tạo mới, sửa, tìm kiếm, xuất file) x
Quản lý dự án (Tạo mới, tìm kiếm, gán nhân sự/hoạt động) x
Quản lý hoạt động dự án (Tạo mới, tìm kiếm, cập nhật) x
Quản lý thời gian làm việc (Ghi nhận/xem timesheet) x x
Thống kê và xuất tệp Excel số point theo ngày x x
Thống kê số point theo tháng qua biểu đồ đường x x

Thiết kế cấu trúc cơ sở dữ liệu Cloud Firestore

Cơ sở dữ liệu NoSQL của hệ thống được tổ chức thành 4 collections chính, kết hợp với dịch vụ Firebase Authentication để quản trị thông tin đăng nhập:

Tên Collection Khóa (Field Key) Kiểu dữ liệu Mô tả chi tiết
users id
name
fullName
email
phone
dob
gender
position
status
String
String
String
String
String
Date
Boolean
String
Boolean
Mã định danh nhân viên
Tên tài khoản
Họ và tên đầy đủ
Địa chỉ thư điện tử
Số điện thoại liên hệ
Ngày tháng năm sinh
Giới tính
Phân quyền (0: Admin, 1: Nhân viên, 2: Quản lý dự án)
Trạng thái (true: đang làm việc, false: đã nghỉ việc)
projects id
name
actId
userId
status
String
String
Array
Array
Boolean
Mã định danh dự án
Tên gọi dự án
Danh sách ID các hoạt động thuộc dự án
Danh sách ID các nhân viên tham gia dự án
Trạng thái dự án (true: đang hoạt động, false: kết thúc)
activities id
name
status
String
String
Array / Boolean
Mã định danh hoạt động
Tên gọi hoạt động trong dự án
Trạng thái hoạt động (true: chưa xóa, false: đã xóa)
timesheet id
name
start_date
hour_start
hour_end
point
description
proId
actId
userId
String
String
Date
String
String
Number
String
String
String
String
Mã định danh đầu công việc
Tên nội dung công việc
Ngày thực hiện công việc
Giờ bắt đầu làm việc
Giờ kết thúc làm việc
Điểm quy đổi (1 point = 1 giờ làm việc)
Mô tả chi tiết nội dung công việc
Mã dự án tham chiếu
Mã hoạt động tham chiếu
Mã nhân viên thực hiện

Thuật toán kiểm soát xung đột thời gian (Time Conflict Validation)

Để giải quyết triệt để tình trạng nhân viên ghi nhận trùng lặp hoặc khai báo các khoảng thời gian chồng chéo trong một ngày làm việc, tác giả xây dựng thuật toán kiểm tra tính hợp lệ dữ liệu đầu vào gồm 5 bước:

  • Bước 1: Tiếp nhận dữ liệu đầu vào của một đầu công việc gồm ngày làm việc (start_date), giờ bắt đầu (hour_start) và giờ kết thúc (hour_end).
  • Bước 2: Kiểm tra ngày nhập vào. Nếu ngày này chưa tồn tại trong danh sách công việc đã ghi nhận của nhân viên, chuyển thẳng đến Bước 5. Nếu ngày đã tồn tại dữ liệu, chuyển sang Bước 3.
  • Bước 3: Truy xuất tất cả các khoảng thời gian đã lưu trong cùng ngày, tiến hành sắp xếp theo chiều tăng dần. Kiểm tra xem khoảng thời gian mới nhập có nằm trong khoảng hoặc giao thoa (chồng lấn) với bất kỳ khoảng [hour_start, hour_end] nào đã tồn tại hay không. Nếu có giao thoa, chuyển sang Bước 4; nếu hoàn toàn tách biệt, chuyển sang Bước 5.
  • Bước 4: Từ chối lưu dữ liệu, hệ thống xuất thông báo lỗi "Conflict time" và yêu cầu người dùng hiệu chỉnh.
  • Bước 5: Chấp nhận dữ liệu, thực hiện ghi nhận vào Firestore và hiển thị thông báo "Add success".

Bảng kịch bản kiểm thử thuật toán với trường hợp cơ sở: Đã tồn tại bản ghi ngày 08/07/2020 trong khung giờ 09h00 - 12h00:

Dữ liệu kiểm thử nhập vào Kết quả xử lý của hệ thống Trạng thái ghi nhận CSDL
Khung giờ 10h00 - 11h00 Nằm hoàn toàn bên trong khoảng đã có Từ chối (Conflict time)
Khung giờ 08h00 - 10h00 Giao thoa phần đuôi với giờ bắt đầu Từ chối (Conflict time)
Khung giờ 11h00 - 13h00 Giao thoa phần đầu với giờ kết thúc Từ chối (Conflict time)
Khung giờ 08h00 - 13h00 Bao trùm toàn bộ khoảng thời gian đã có Từ chối (Conflict time)
Khung giờ 09h00 - 12h00 Trùng khớp chính xác khoảng thời gian đã có Từ chối (Conflict time)
Khung giờ 08h00 - 09h00 Liền kề trước, không giao thoa Chấp nhận (Add success)
Khung giờ 12h00 - 13h00 Liền kề sau, không giao thoa Chấp nhận (Add success)

Nội dung chính theo từng chương

Chương 1: Tổng quan đề tài

Chương mở đầu tập trung trình bày tính cấp thiết của việc ứng dụng công nghệ thông tin vào quản trị doanh nghiệp trong thời kỳ cách mạng công nghiệp 4.0. Tác giả nêu rõ mục tiêu nghiên cứu nhằm xây dựng website "Timesheet system" phục vụ quản lý đầu công việc và thời gian làm việc. Chương này xác định chi tiết phạm vi nghiên cứu trên nền tảng web, đối tượng công cụ (VS Code, Excel, Angular, Bootstrap 4, CoreUI, Firebase), phân bổ nhiệm vụ và phương pháp tiếp cận đề tài thông qua khảo sát thực tế và tổng hợp lý thuyết.

Chương 2: Tổng quan về công nghệ sử dụng

Chương này đi sâu vào phân tích cơ sở kỹ thuật của các công nghệ được lựa chọn:

  • Angular: Phân tích cấu trúc hoạt động của khung phát triển, ưu điểm về khả năng quản lý component, cơ chế định tuyến (Routing) và mô hình liên kết dữ liệu hai chiều MVVM; đồng thời chỉ ra nhược điểm về độ phức tạp khi tiếp cận các khái niệm module/component.
  • Firebase Cloud: So sánh hai dịch vụ cơ sở dữ liệu của Google là Firebase Realtime Database và Cloud Firestore. Tác giả lựa chọn Cloud Firestore nhờ ưu thế vượt trội về cấu trúc document/collection phân cấp, khả năng mở rộng quy mô tự động, hỗ trợ truy vấn mạnh mẽ qua SDK Javascript mà không cần cấu hình hạ tầng máy chủ phức tạp. Ngoài ra, chương này cũng phân tích dịch vụ Firebase Authentication trong việc quản lý và xác thực tài khoản an toàn.
  • Draw.io: Đánh giá ưu điểm về tính linh hoạt, kho mẫu đa dạng khi vẽ sơ đồ kỹ thuật trực tuyến và một số hạn chế về khả năng hiển thị đáp ứng (responsive) trên thiết bị di động.

Chương 3: Khảo sát mô hình nghiệp vụ và phân tích thiết kế hệ thống

Đây là chương trọng tâm về mặt nghiệp vụ và kỹ thuật của đồ án:

  • Khảo sát nghiệp vụ: Ghi nhận chi tiết biên bản phỏng vấn ngày 05/05/2020 tại Công ty PowerGate Software với người quản lý Nguyễn Thu Trang, làm căn cứ thiết lập các luồng dữ liệu nghiệp vụ và các tính năng cần cải tiến.
  • Mô hình hóa hệ thống: Xây dựng bảng phân cấp thành viên; thiết kế sơ đồ phân rã chức năng cho từng tác nhân (Quản trị viên, Quản lý dự án, Nhân viên); mô hình hóa luồng thông tin qua sơ đồ luồng dữ liệu (DFD) mức ngữ cảnh và mức đỉnh; thiết lập các biểu đồ Use Case tổng quát và chi tiết; biểu diễn các luồng tương tác thời gian thông qua biểu đồ tuần tự cho 5 tác vụ cốt lõi: đăng nhập, tạo nhân viên, tạo dự án, tạo hoạt động dự án và tạo đầu công việc.
  • Thiết kế cơ sở dữ liệu: Định nghĩa chi tiết cấu trúc 4 collections trên Cloud Firestore gồm users, projects, activities, timesheet.
  • Phân tích trường hợp sử dụng: Xây dựng trục xét khoảng thời gian, hoàn thiện giải thuật và bộ kịch bản kiểm thử phát hiện xung đột thời gian nhập liệu.

Chương 4: Xây dựng chương trình

Chương cuối cùng trình bày kết quả thực thi giao diện người dùng của ứng dụng web thông qua 4 phân hệ chính:

  1. Giao diện chung: Giao diện đăng nhập hệ thống và giao diện gửi yêu cầu khôi phục mật khẩu (quên mật khẩu).
  2. Giao diện phân hệ Nhân viên: Màn hình đổi mật khẩu; danh sách đầu công việc; bộ lọc công việc theo dự án và hoạt động; bộ lọc công việc theo giới hạn ngày; biểu mẫu thêm mới đầu công việc (kèm thông báo lỗi khi trùng lặp thời gian); tính năng kết xuất dữ liệu báo cáo ra tập tin Excel và thống kê số point theo ngày; biểu đồ đường theo dõi biến động tổng số point tích lũy trong tháng.
  3. Giao diện phân hệ Quản lý dự án: Danh sách nhân sự trong dự án; bộ lọc tìm kiếm nhân viên theo dự án; giao diện theo dõi số point chi tiết của từng nhân viên theo ngày và dự án; biểu đồ đường thống kê số point theo tháng của nhân viên phục vụ đánh giá năng lực.
  4. Giao diện phân hệ Quản trị hệ thống: Màn hình quản lý danh sách nhân viên (tìm kiếm, tạo mới, kiểm tra lỗi thiếu trường dữ liệu); màn hình quản lý hoạt động dự án (danh sách, tìm kiếm, thêm mới, validate dữ liệu); màn hình quản lý dự án (hiển thị danh mục dự án, tìm kiếm, thêm mới dự án và kiểm tra hợp lệ dữ liệu).

Kết quả và đóng góp

Kết quả chính đạt được

  • Hoàn thành xây dựng ứng dụng web "Quản lý thời gian làm việc – Timesheet system" đáp ứng đầy đủ các chức năng theo mục tiêu đề ra trên nền tảng Angular và Firebase Cloud.
  • Hiện thực hóa thành công cơ chế phân quyền 3 cấp độ (Quản trị hệ thống, Quản lý dự án, Nhân viên) với các vùng giao diện và quyền thao tác dữ liệu độc lập.
  • Thiết lập quy chuẩn tính toán và theo dõi năng suất lao động: Quy đổi 1 giờ làm việc thực tế thành 1 point; hỗ trợ nhân viên và quản lý theo dõi số point theo ngày và theo tháng.
  • Tích hợp công cụ xuất báo cáo dữ liệu định dạng Excel hỗ trợ công tác kế toán/quản lý và công cụ trực quan hóa tiến độ bằng biểu đồ đường.
  • Cài đặt thành công thuật toán kiểm soát xung đột thời gian (Time Conflict Validation) trên giao diện thêm mới đầu công việc, ngăn chặn các lỗi khai báo trùng lặp hoặc chồng chéo khung giờ làm việc.

Giải pháp và kiến nghị của tác giả

  • Ứng dụng giải pháp kiến trúc Serverless (kết hợp Angular Client và Cloud Firestore BaaS) giúp giảm thiểu chi phí vận hành hạ tầng máy chủ, rút ngắn thời gian phát triển và đảm bảo khả năng đồng bộ dữ liệu thời gian thực.
  • Đề xuất thay thế phương thức quản lý bảng tính hoặc giấy tờ rời rạc bằng hệ thống web tập trung, giúp liên kết chặt chẽ dữ liệu giữa nhân viên thực hiện, quản lý dự án và kế toán doanh nghiệp.
  • Kiến nghị bắt buộc thực hiện kiểm tra (validate) dữ liệu cục bộ trên mọi biểu mẫu nhập liệu (nhân viên, dự án, hoạt động, thời gian) trước khi gửi yêu cầu lưu trữ lên cơ sở dữ liệu nhằm duy trì tính toàn vẹn thông tin.

Đóng góp của đề tài

Đồ án đã gắn kết yêu cầu thực tiễn từ môi trường doanh nghiệp phần mềm (PowerGate Software) với việc ứng dụng công nghệ web hiện đại. Việc xây dựng thuật toán kiểm tra giao thoa khoảng thời gian và thiết kế mô hình dữ liệu NoSQL tối ưu hóa cho các thao tác truy vấn nhật ký công việc theo ngày, tháng, dự án là đóng góp kỹ thuật rõ nét của tác giả trong khuôn khổ đồ án tốt nghiệp đại học.


Hạn chế và hướng nghiên cứu tiếp

Dựa trên nội dung và phạm vi nghiên cứu được văn bản công bố, đề tài tồn tại một số điểm giới hạn:

  • Hạn chế:
    • Ứng dụng mới chỉ dừng lại ở phạm vi nền tảng web máy tính, chưa được tối ưu hóa giao diện hoàn chỉnh trên các thiết bị di động (Responsive/Mobile web) và chưa phát triển ứng dụng di động chuyên biệt (Mobile App).
    • Về mặt cơ sở dữ liệu, việc sử dụng Cloud Firestore đòi hỏi phải thiết lập các chỉ mục (indexes) thủ công khi mở rộng các truy vấn phức tạp và việc ghi nhận nhật ký sự kiện hệ thống (event logging) chưa được tự động hóa hoàn toàn.
    • Các kịch bản kiểm thử hệ thống mới dừng lại ở mức độ kiểm tra giao diện và kiểm thử logic thuật toán cục bộ, chưa triển khai các quy trình kiểm thử tự động (Unit Test, Integration Test).
  • Hướng nghiên cứu tiếp:
    • Mở rộng hệ thống trên nền tảng ứng dụng di động (Android, iOS) để nhân viên có thể khai báo thời gian làm việc linh hoạt.
    • Tối ưu hóa các cấu trúc chỉ mục trên cơ sở dữ liệu và xây dựng thêm các phân hệ báo cáo chuyên sâu phục vụ công tác đánh giá hiệu suất nhân sự dài hạn.

Giá trị tham khảo

Đồ án tốt nghiệp "Quản lý thời gian làm việc – Timesheet system" mang lại giá trị tham khảo thiết thực cho các đối tượng:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Tài liệu cung cấp mẫu phân tích thiết kế hệ thống hoàn chỉnh theo quy trình chuẩn từ khảo sát thực tế, vẽ sơ đồ phân rã chức năng, DFD, Use Case, Sequence Diagram đến thiết kế cơ sở dữ liệu NoSQL trên Cloud Firestore.
  • Lập trình viên phát triển ứng dụng web: Cung cấp tài liệu tham khảo hữu ích về việc tích hợp khung Angular với hệ sinh thái Firebase (Firebase Authentication, Cloud Firestore) theo mô hình MVVM và kỹ thuật xử lý liên kết dữ liệu hai chiều.
  • Người nghiên cứu các giải pháp quản trị thời gian/nhân sự: Phần khảo sát nghiệp vụ thực tế tại Công ty PowerGate Software và thuật toán kiểm tra xung đột thời gian (Time Conflict Validation) là nguồn tư liệu có tính ứng dụng cao cho các bài toán phát triển phần mềm quản lý chấm công, bảng chấm công (timesheet) và đánh giá năng suất lao động.

Câu hỏi thường gặp

1. Đơn vị "point" trong hệ thống được quy định và sử dụng như thế nào?

Trong hệ thống, 1 point được quy định tương đương với 1 giờ làm việc thực tế của nhân viên. Khi nhân viên khai báo đầu công việc với khoảng thời gian cụ thể (ví dụ từ 9h đến 11h), hệ thống sẽ tính toán số point tương ứng là 2. Điểm point được dùng để thống kê năng suất theo ngày (xuất file Excel) và tổng hợp theo tháng dưới dạng biểu đồ đường để Quản lý dự án đánh giá tiến độ cũng như năng lực thực tế của nhân viên.

2. Nghiệp vụ thực tế của hệ thống được khảo sát tại đơn vị nào và gồm những thông tin gì?

Nghiệp vụ hệ thống được khảo sát thông qua phỏng vấn trực tiếp bà Nguyễn Thu Trang (Quản lý tại Công ty PowerGate Software) vào ngày 05/05/2020. Nội dung khảo sát cung cấp quy trình làm việc 8 giờ/ngày của công ty (chia thành 2 khung giờ chính: 9h–12h và 13h–18h), cách thức nhân viên khai báo công việc, cơ chế đối chiếu tiến độ của Quản lý dự án và kế toán dựa trên file kế hoạch ước lượng, cùng các yêu cầu cải tiến về biểu đồ trực quan và xác thực dữ liệu biểu mẫu.

3. Cơ sở dữ liệu Cloud Firestore của hệ thống gồm những collection nào?

Cơ sở dữ liệu NoSQL của hệ thống gồm 4 collections:

  • users: Lưu trữ hồ sơ nhân viên, chức vụ/phân quyền (Admin, Nhân viên, Quản lý dự án) và trạng thái làm việc.
  • projects: Lưu trữ mã, tên dự án, danh sách mảng ID hoạt động (actId), mảng ID nhân viên (userId) và trạng thái dự án.
  • activities: Lưu trữ mã, tên hoạt động và trạng thái hoạt động thuộc dự án.
  • timesheet: Lưu trữ chi tiết đầu công việc gồm ngày làm việc, giờ bắt đầu, giờ kết thúc, số point, mô tả, mã dự án, mã hoạt động và mã nhân viên.

4. Thuật toán kiểm tra xung đột thời gian xử lý như thế nào khi nhân viên nhập khoảng thời gian trùng lặp?

Khi nhân viên nhập ngày và khung giờ mới, thuật toán sẽ lọc tất cả các khoảng thời gian đã lưu trong cùng ngày và sắp xếp tăng dần. Nếu khung giờ mới nhập nằm trong khoảng, trùng lặp hoặc giao thoa với khoảng thời gian đã có (ví dụ: đã có khung 9h–12h mà nhập 10h–11h, 8h–10h, 11h–13h, 8h–13h hoặc 9h–12h), hệ thống sẽ từ chối lưu và đưa ra cảnh báo lỗi "Conflict time". Chỉ khi khung giờ hoàn toàn không giao thoa (như 8h–9h hoặc 12h–13h), hệ thống mới xác nhận "Add success" và ghi dữ liệu vào CSDL.

5. Hệ thống phân chia quyền hạn người dùng thành mấy cấp và vai trò của từng cấp là gì?

Hệ thống phân chia người dùng thành 3 cấp độ tương ứng với trường position trong bảng users:

  • Quản trị hệ thống (position: 0): Quản lý toàn diện danh mục dự án, danh mục hoạt động và danh sách tài khoản nhân viên (thêm mới, cập nhật, tìm kiếm, xuất danh sách).
  • Nhân viên (position: 1): Khai báo, chỉnh sửa, xóa đầu công việc cá nhân; theo dõi số giờ làm/point theo ngày (xuất Excel) và xem biểu đồ đường thống kê point theo tháng.
  • Quản lý dự án (position: 2): Theo dõi bảng chấm công timesheet của nhân viên theo dự án/hoạt động; thống kê số giờ và point theo ngày của từng nhân sự (xuất Excel); xem biểu đồ đường biến động số point theo tháng của nhân viên thuộc dự án phụ trách.

Kết luận

Đồ án tốt nghiệp "Quản lý thời gian làm việc – Timesheet system" của sinh viên Nguyễn Thị Thu Hà đã hoàn thành mục tiêu xây dựng một ứng dụng web quản lý thời gian làm việc hoàn chỉnh dựa trên khảo sát thực tế tại doanh nghiệp phần mềm. Việc kết hợp khung giao diện Angular theo mô hình MVVM cùng nền tảng đám mây Cloud Firestore và Firebase Authentication giúp hệ thống vận hành linh hoạt, đảm bảo tính đồng bộ dữ liệu và tối ưu hóa quy trình chấm công. Đồ án giải quyết tốt bài toán kiểm soát xung đột dữ liệu thời gian, cung cấp công cụ trực quan hóa năng suất lao động bằng biểu đồ và xuất báo cáo, mang lại giá trị tham khảo thiết thực cho việc nghiên cứu và phát triển các hệ thống quản trị nhân sự trên nền tảng web.