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

Sự phát triển của nền kinh tế và thị trường lao động tạo ra nhu cầu tìm kiếm việc làm bán thời gian ngày càng lớn, đặc biệt đối với đối tượng sinh viên và những người có nhu cầu gia tăng thu nhập ngoài giờ làm việc chính. Cùng với đó, làn sóng công nghệ 4.0 thúc đẩy các giải pháp kết nối trực tuyến giữa đơn vị tuyển dụng và lực lượng lao động. Tuy nhiên, việc quản lý tuyển dụng bán thời gian, theo dõi tiến độ công việc, kiểm soát giờ làm và quản lý thu chi thực tế vẫn còn phân tán và thiếu công cụ tích hợp tiện lợi.

Xuất phát từ thực tiễn trên, khóa luận tốt nghiệp ngành Công nghệ thông tin của hai sinh viên Mai Văn Mạnh và Vũ Tiến Dũng (Trường Đại học Thăng Long, 2024), dưới sự hướng dẫn của Th.S Trần Quang Duy, thực hiện đề tài "Xây dựng ứng dụng di động quản lý và tìm việc bán thời gian" với sản phẩm phần mềm mang tên JobsFinder trên hệ điều hành Android.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:

  1. Phân tích bài toán, xác định các tác nhân tham gia hệ thống và xây dựng các yêu cầu nghiệp vụ, yêu cầu chức năng cùng yêu cầu phi chức năng cho bài toán tìm việc và quản lý việc bán thời gian.
  2. Nghiên cứu cơ sở lý thuyết, kiến trúc hệ thống MVVM, ngôn ngữ lập trình Kotlin và các dịch vụ nền tảng đám mây Firebase (Authentication, Realtime Database, Cloud Firestore, Cloud Storage, Analytics, Remote Config).
  3. Tìm hiểu và tích hợp giải pháp thanh toán điện tử của bên thứ ba thông qua cổng ZaloPay.
  4. Xây dựng sơ đồ Use Case, mô tả luồng xử lý chi tiết cho từng ca sử dụng và thiết kế cơ sở dữ liệu NoSQL dạng cây JSON gồm 21 bảng cấu trúc dữ liệu.
  5. Cài đặt môi trường phát triển trên Android Studio, lập trình hoàn thiện giao diện và triển khai các chức năng cốt lõi của ứng dụng.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ tuyển dụng, ứng tuyển, chấm công, tính lương việc làm bán thời gian và giải pháp phát triển phần mềm di động trên nền tảng Android.
  • Phạm vi không gian: Ứng dụng di động hoạt động trên hệ điều hành Android, hỗ trợ hiển thị song ngữ Anh - Việt theo ngôn ngữ cài đặt của thiết bị; hệ thống thanh toán kết nối ví ZaloPay và 39 ngân hàng nội địa tại Việt Nam.
  • Phạm vi thời gian: Khóa luận được hoàn thành vào tháng 06/2024 tại Khoa Công nghệ thông tin, Trường Đại học Thăng Long.

Cơ sở lý thuyết và công nghệ áp dụng

Đồ án lựa chọn mô hình kiến trúc phần mềm MVVM (Model-View-ViewModel). Trong mô hình này, tầng Client đảm nhận việc xử lý logic và tương tác trực tiếp với cơ sở dữ liệu đám mây thông qua Firebase SDK bằng giao thức HTTP/HTTPS.

Hệ thống công nghệ và thư viện kỹ thuật được sử dụng trong khóa luận bao gồm:

  • Ngôn ngữ lập trình Kotlin: Ngôn ngữ hướng đối tượng và hàm do JetBrains phát triển, được Google công nhận là ngôn ngữ chính thức cho Android từ năm 2017. Kotlin có tính tương thích hoàn toàn với Java, cú pháp rút gọn, tính năng an toàn với con trỏ rỗng (null safety) và mô hình coroutine phục vụ xử lý các tác vụ bất đồng bộ.
  • Nền tảng đám mây Firebase: Giữ vai trò Backend-as-a-Service (BaaS). Các dịch vụ được khai thác gồm:
    • Firebase Realtime Database: Cơ sở dữ liệu NoSQL lưu trữ và đồng bộ hóa dữ liệu dạng cây JSON theo thời gian thực giữa máy khách và đám mây.
    • Firebase Authentication: Cung cấp giải pháp xác thực người dùng qua email và mật khẩu, cấp phát mã token bảo mật.
    • Firebase Cloud Firestore, Cloud Storage, Analytics, Remote Config: Hỗ trợ mở rộng cấu trúc tài liệu, lưu trữ tệp tin media, phân tích hành vi và cấu hình ứng dụng từ xa.
  • Cổng thanh toán ZaloPay: Giải pháp ví điện tử của Công ty Cổ phần Zion, hỗ trợ thanh toán qua mã QR, ví Zalo và liên kết 39 ngân hàng nội địa. Tích hợp thư viện HTTP client cùng các thuật toán mã hóa dữ liệu gồm Base64, MD5 và SHA-1.
  • Thư viện thành phần và phần mở rộng (Libraries & Extensions):
    • Android Architecture Components: Lifecycle Components, ViewModel Extension, Navigation Extension giúp quản lý vòng đời ứng dụng và điều hướng giao diện.
    • SQLite Room Persistence Library: Hỗ trợ trừu tượng hóa cơ sở dữ liệu cục bộ với cơ chế xác minh truy vấn lúc biên dịch.
    • Biometric Authentication: Thư viện xác thực sinh trắc học (vân tay/khuôn mặt) trên thiết bị di động.
    • Giao diện và đồ họa: Glide (tải và lưu bộ nhớ đệm hình ảnh), LottieFiles (hiển thị hiệu ứng tải dạng JSON), Splash Screen Animation, Swipe Refresh Layout.
    • Trực quan hóa số liệu: Thư viện MPAndroidChart phục vụ kết xuất các dạng biểu đồ thống kê dạng cột, đường và tròn.

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

Kiến trúc phần mềm và cơ chế vận hành

Hệ thống hoạt động theo cơ chế giao tiếp trực tiếp giữa Client và Firebase:

  1. Client gửi yêu cầu: Thiết bị người dùng tạo yêu cầu truy xuất hoặc cập nhật dữ liệu thông qua Firebase SDK bằng giao thức HTTP/HTTPS.
  2. Xử lý logic và xác thực: Firebase Authentication xác thực danh tính người dùng dựa trên token đính kèm; hệ thống kiểm tra quyền hạn thao tác dữ liệu.
  3. Firebase phản hồi: Cơ sở dữ liệu xử lý truy vấn và trả kết quả dưới định dạng JSON về ứng dụng thông qua các điểm cuối API.
  4. Cập nhật giao diện: Tầng ViewModel tiếp nhận dữ liệu phản hồi từ Internet và thông báo cho giao diện (View) hiển thị trạng thái mới cho người dùng.

Thiết kế cơ sở dữ liệu NoSQL

Cơ sở dữ liệu Realtime Database của JobsFinder được tổ chức thành 21 nhánh JSON chính, phục vụ lưu trữ thông tin thực thể và các chỉ số thống kê:

Tên nhánh dữ liệu JSON Mục đích lưu trữ và vai trò trong hệ thống
registered_user Quản lý danh sách tài khoản đã đăng ký trong toàn hệ thống
user_role Thiết lập và phân quyền vai trò cho tài khoản (Admin, Người tuyển dụng, Người tìm việc)
b_user Thông tin hồ sơ chi tiết của người tuyển dụng (Business User)
n_user Thông tin hồ sơ chi tiết của người tìm việc (Normal User)
user_avt Quản lý đường dẫn hình ảnh đại diện của người dùng
job Lưu trữ toàn bộ thông tin bài đăng tuyển dụng (tiêu đề, mô tả, yêu cầu, thời gian, mức lương)
approved_job Danh sách các công việc đã được người tuyển dụng phê duyệt cho ứng viên tham gia
job_history Lưu trữ lịch sử các công việc đã hoàn thành để phục vụ đánh giá
applicant Danh sách thông tin ứng viên tham gia nộp hồ sơ ứng tuyển theo từng công việc
check_in Dữ liệu điểm danh thực tế (thời gian đến, thời gian về) của từng ca làm việc
salary Dữ liệu chi tiết về lương theo ngày và thu nhập tích lũy của người lao động
nuser_worked_hours Thống kê tổng số giờ làm việc thực tế của người tìm việc theo tháng
wallet Thông tin ví điện tử nội bộ của tài khoản người dùng
wallet_amount Dữ liệu biến động số dư ví phục vụ trừ phí đăng tuyển và nhận tiền lương
buser_expense_by_date Dữ liệu tổng hợp chi phí tuyển dụng theo các mốc thời gian
buser_expense_job_type_id Dữ liệu chi phí của người tuyển dụng phân loại theo từng nhóm công việc
nuser_income_by_date Thống kê thu nhập của người tìm việc theo mốc thời gian
nuser_income_job_type_id Thống kê thu nhập của người tìm việc theo từng nhóm ngành nghề
amount_job_posted Thống kê số lượng bài đăng công việc được tạo bởi người tuyển dụng
app_income Dữ liệu ghi nhận doanh thu hoa hồng của ứng dụng dành cho quản trị viên
report Danh sách báo cáo khiếu nại, phản hồi kỹ thuật gửi tới quản trị viên
notification Dữ liệu thông báo hệ thống gửi tới các tài khoản người dùng

Môi trường triển khai và yêu cầu cấu hình

  • Cấu hình phát triển: Đồ án hỗ trợ thiết lập trên các hệ điều hành Windows, macOS và Linux với công cụ lập trình Android Studio; tích hợp môi trường thử nghiệm ứng dụng Zalo và ZaloPay.
  • Yêu cầu phi chức năng đối với ứng dụng:
    • Tương thích ổn định trên các thiết bị chạy hệ điều hành Android với nhiều phiên bản khác nhau.
    • Vận hành mượt mà, không xảy ra hiện tượng dừng đột ngột (crash app) hoặc độ trễ tải dữ liệu kéo dài.
    • Bảo mật thông tin dữ liệu người dùng và các giao dịch tài chính phát sinh.
    • Thiết kế giao diện trực quan, cho phép người dùng làm quen và sử dụng thành thạo trong vòng 20 phút.

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

Chương 1. Tổng quan hệ thống

Chương 1 mô tả bài toán kết nối việc làm bán thời gian và xác định ba tác nhân tham gia vào hệ thống:

  • Quản trị viên (Admin): Theo dõi, quản lý trạng thái tài khoản người dùng (kích hoạt hoặc vô hiệu hóa), xem thông tin chi tiết, tiếp nhận và xử lý khiếu nại, điều phối dòng tiền cho tài khoản tuyển dụng và giám sát doanh thu hoa hồng của ứng dụng.
  • Người tuyển dụng: Tạo lập và đăng tải bài tuyển dụng, duyệt hoặc từ chối hồ sơ ứng viên, theo dõi danh sách công việc đang hoạt động, xác nhận điểm danh đầu ca và kết thúc ca làm, theo dõi chi phí theo tháng/năm và thực hiện đánh giá nhân viên sau khi công việc hoàn thành.
  • Người tìm việc: Tìm kiếm việc làm theo bộ lọc và từ khóa, nộp đơn ứng tuyển, theo dõi danh sách việc đã trúng tuyển, gửi yêu cầu điểm danh cho người tuyển dụng, theo dõi bảng tính lương chi tiết, quản lý số giờ làm và xem đánh giá năng lực từ người sử dụng lao động.

Nội dung chương xây dựng 4 sơ đồ quy trình nghiệp vụ chính bao gồm: Đăng tải công việc, Ứng tuyển công việc, Phê duyệt ứng viên và Điểm danh. Hệ thống yêu cầu nghiệp vụ được chuẩn hóa thành 9 nhóm quy tắc (từ BR1 đến BR9) bao gồm: đăng ký/đăng nhập/quản lý tài khoản (BR1), đăng tải công việc gắn liền với việc kiểm tra trừ số dư ví (BR2), ứng tuyển công việc (BR3), phê duyệt ứng viên (BR4), điểm danh vào/ra ca làm (BR5), thanh toán nạp/rút tiền qua ví và ngân hàng (BR6), thống kê dữ liệu (BR7), gửi/xem báo cáo phản hồi và đánh giá nhân viên sau khi hoàn thành công việc (BR9).

Chương 2. Kiến trúc hệ thống và công nghệ sử dụng

Chương này trình bày chi tiết về kiến trúc phân tầng Client - Firebase. Tác giả phân tích lý do ứng dụng mô hình này nhằm giảm thiểu chi phí phát triển cơ sở hạ tầng máy chủ truyền thống, đưa code query về phía máy khách và khai thác khả năng đồng bộ thời gian thực của Firebase Realtime Database.

Chương 2 làm rõ việc lựa chọn ngôn ngữ Kotlin thay thế cho Java nhờ cú pháp ngắn gọn, giảm lỗi lập trình và tính năng tương thích ngược. Đồng thời, chương trình bày chi tiết chức năng của từng thư viện tích hợp: Jetpack Lifecycle, ViewModel, Navigation, thư viện nạp ảnh Glide, hiển thị hoạt họa LottieFiles, xác thực sinh trắc học Android Biometric, thư viện SQLite Room và công cụ trực quan hóa MPAndroidChart. Phần thanh toán phân tích quy trình kết nối API với ví ZaloPay và áp dụng các thuật toán băm dữ liệu bảo mật Base64, MD5, SHA-1.

Chương 3. Đặc tả các chức năng

Chương 3 xây dựng 3 sơ đồ Use Case tổng quát cho từng tác nhân và đặc tả chi tiết 26 Use Case (UC) của phần mềm. Mỗi UC được chuẩn hóa qua các bảng mô tả gồm: tóm tắt chức năng, tác nhân kích hoạt, các bước trong luồng sự kiện chính, các kịch bản phát sinh khi xảy ra lỗi dữ liệu và danh mục ảnh chụp giao diện minh họa:

  • Nhóm xác thực và tài khoản: UC Đăng ký, UC Đăng nhập (hỗ trợ mật khẩu thông thường và phương thức sinh trắc học vân tay/khuôn mặt), UC Đăng xuất, UC Quên mật khẩu (gửi liên kết khôi phục qua email), UC Quản lý thông tin cá nhân và UC Quản lý thông tin tài khoản (quyền khóa/mở tài khoản của Admin).
  • Nhóm nghiệp vụ tuyển dụng và tìm việc: UC Đăng tải công việc, UC Xem danh sách công việc, UC Xem chi tiết công việc, UC Tìm kiếm công việc (tìm theo từ khóa và áp dụng bộ lọc đa tiêu chí về thời gian, mức lương, địa điểm), UC Xem thông tin người tuyển dụng, UC Tham gia ứng tuyển, UC Quản lý ứng viên và UC Quản lý việc đã ứng tuyển.
  • Nhóm điều hành và chấm công: UC Quản lý thông báo, UC Chấm công (nhân viên gửi yêu cầu điểm danh đến và về), UC Xác nhận điểm danh (nhà tuyển dụng phê duyệt giờ công) và UC Theo dõi lương.
  • Nhóm thanh toán và báo cáo: UC Nạp tiền vào ví qua ZaloPay, UC Rút tiền ra thẻ ngân hàng, UC Thống kê hoạt động, UC Gửi báo cáo, UC Xem báo cáo, UC Đánh giá nhân viên và UC Xem đánh giá.

Chương 4. Thiết kế cơ sở dữ liệu

Chương 4 thiết lập lược đồ tổng thể của cơ sở dữ liệu NoSQL Realtime Database. Tác giả chi tiết hóa 21 bảng cấu trúc JSON. Trong từng cấu trúc, văn bản xác định cụ thể danh sách các trường thuộc tính, kiểu dữ liệu tương ứng (string, number, boolean), các khóa định danh và mối liên kết logic giữa các nhánh (như liên kết giữa mã công việc job_id, mã ứng viên user_id, trạng thái phê duyệt và thông tin ví wallet_amount). Thiết kế này đáp ứng khả năng truy vấn dữ liệu phi quan hệ, phục vụ đồng bộ dữ liệu đa chiều giữa nhà tuyển dụng, người tìm việc và quản trị viên.

Chương 5. Triển khai hệ thống

Chương 5 cung cấp bảng thông số yêu cầu cấu hình cài đặt phát triển trên ba môi trường hệ điều hành Windows, macOS, Linux và thông số thiết bị Android thực tế. Chương mô tả các bước cài đặt Android Studio, thiết lập ứng dụng Zalo và cấu hình liên kết ví ZaloPay.

Phần trọng tâm của chương là trình bày kết quả hiện thực hóa giao diện và quy trình vận hành của các chức năng chính trên thiết bị di động:

  • Giao diện đăng tuyển công việc và bộ kiểm tra trừ tiền tài khoản ví.
  • Giao diện tìm kiếm, bộ lọc nâng cao và chi tiết bài tuyển dụng đối với người tìm việc.
  • Giao diện quản lý hồ sơ ứng viên và luồng phê duyệt ứng viên của nhà tuyển dụng.
  • Giao diện điểm danh 2 chiều: màn hình điểm danh đến/về của nhân viên và màn hình xác nhận ca làm việc của người tuyển dụng.
  • Màn hình bảng lương chi tiết theo từng buổi làm việc và tổng thu nhập tích lũy.
  • Giao diện cổng thanh toán: tạo đơn nạp tiền qua ZaloPay, điều hướng thanh toán và danh mục liên kết thẻ ngân hàng để rút tiền.
  • Hệ thống biểu đồ thống kê: biểu đồ cột theo dõi thu chi và số lượng tài khoản mới mở, biểu đồ tròn thống kê thu nhập theo nhóm loại công việc, biểu đồ đường ghi nhận tổng số giờ làm việc theo từng tháng và số bài đăng tuyển dụng theo năm.

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

Kết quả chính

Khóa luận đã hoàn thành việc xây dựng và triển khai thực tế ứng dụng JobsFinder với các kết quả cụ thể có trong văn bản:

  • Xây dựng hoàn chỉnh ứng dụng di động native trên hệ điều hành Android bằng ngôn ngữ Kotlin theo mô hình MVVM.
  • Triển khai thành công 3 phân hệ giao diện chuyên biệt cho 3 nhóm tác nhân (Admin, Người tuyển dụng, Người tìm việc) với 26 ca sử dụng nghiệp vụ được đặc tả và kiểm thử giao diện.
  • Thiết lập hệ thống cơ sở dữ liệu NoSQL thời gian thực trên Firebase Realtime Database với 21 nhánh cấu trúc JSON được chuẩn hóa.
  • Tích hợp thành công giải pháp xác thực bảo mật đa phương thức gồm tài khoản email và xác thực sinh trắc học vân tay/khuôn mặt thông qua Android Biometric API.
  • Tích hợp thành công cổng thanh toán điện tử ZaloPay API, xử lý quy trình nạp tiền vào ví ứng dụng và hỗ trợ rút tiền về 39 ngân hàng nội địa tại Việt Nam.
  • Thiết lập hệ thống thống kê trực quan bằng thư viện MPAndroidChart thông qua 3 dạng biểu đồ: biểu đồ cột, biểu đồ tròn và biểu đồ đường.

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

  • Ràng buộc tài chính tự động: Ứng dụng triển khai cơ chế kiểm tra số dư ví nội bộ của người tuyển dụng trước khi cho phép đăng tải công việc. Hệ thống tự động tính toán chi phí và trừ tiền trong ví nhằm hạn chế tình trạng đăng tin ảo và bảo đảm khả năng chi trả thù lao cho người lao động.
  • Quy trình chấm công khép kín: Tác giả đề xuất quy trình kiểm soát ca làm việc 2 bước (gửi yêu cầu điểm danh đến và xác nhận thời gian ra về) được xác nhận trực tiếp giữa người lao động và người quản lý trên ứng dụng. Cơ chế này loại bỏ thao tác chấm công thủ công và tự động hóa việc tính toán bảng lương theo ngày.

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

Tác giả đã hiện thực hóa một công cụ phần mềm tích hợp đầy đủ các giai đoạn của quy trình lao động bán thời gian: từ kết nối tìm việc, xét duyệt hồ sơ, theo dõi giờ công thực tế, tính lương tự động đến thanh toán trực tuyến trên cùng một nền tảng di động. Sản phẩm giải quyết tính rời rạc của các phương thức tuyển dụng bán thời gian truyền thống, cung cấp giải pháp quản lý minh bạch cho cả người sử dụng lao động và người lao động.

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

Khóa luận chỉ ra một số điểm giới hạn dựa trên phạm vi nghiên cứu thực tế của đề tài:

  • Hệ thống mới được thiết kế, cài đặt và thử nghiệm đơn lẻ trên nền tảng hệ điều hành Android, chưa phát triển phiên bản dành cho hệ điều hành iOS hoặc giao diện quản trị mở rộng trên nền tảng Web.
  • Kiến trúc hệ thống dựa hoàn toàn vào việc Client gửi truy vấn trực tiếp lên Firebase Realtime Database. Mô hình này phù hợp với ứng dụng quy mô vừa và nhỏ nhưng có thể phát sinh hạn chế về kiểm soát luồng dữ liệu phức tạp và bảo mật nâng cao khi lượng người dùng tăng cao.
  • Giải pháp thanh toán trực tuyến hiện chỉ phụ thuộc vào một cổng tích hợp duy nhất là ZaloPay và mạng lưới ngân hàng liên kết nội địa.

Hướng phát triển tiếp theo của đề tài:

  • Xây dựng phiên bản ứng dụng trên hệ điều hành iOS và xây dựng trang quản trị Web Portal phục vụ công tác điều hành của Admin và các doanh nghiệp tuyển dụng lớn.
  • Bổ sung tầng trung gian Backend (Dedicated Web Server / API Gateway) để quản lý tập trung các quy tắc nghiệp vụ phức tạp và giảm tải xử lý cho thiết bị máy khách.
  • Mở rộng tích hợp thêm các cổng thanh toán điện tử khác nhằm đa dạng hóa kênh giao dịch tài chính cho người dùng.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu học thuật chuyên khảo phù hợp cho sinh viên, giảng viên và lập trình viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin:

  • Tài liệu cung cấp bản hướng dẫn chi tiết về phương pháp xây dựng ứng dụng di động Android bằng ngôn ngữ Kotlin theo kiến trúc chuẩn MVVM.
  • Cung cấp mô hình tham khảo thực tế về việc thiết kế cơ sở dữ liệu NoSQL dạng cây JSON trên Firebase Realtime Database cho bài toán quản lý dịch vụ.
  • Tài liệu có giá trị thực hành cao trong việc tích hợp SDK thanh toán của bên thứ ba (ZaloPay) và triển khai các thư viện tiện ích Android Jetpack, MPAndroidChart và Biometric Authentication vào một sản phẩm phần mềm hoàn chỉnh.

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

1. JobsFinder sử dụng kiến trúc phần mềm nào và quy trình trao đổi dữ liệu giữa ứng dụng với cơ sở dữ liệu diễn ra như thế nào?
Ứng dụng được xây dựng dựa trên kiến trúc MVVM (Model-View-ViewModel). Khác với các mô hình truyền thống có máy chủ trung gian, ứng dụng đặt phần xử lý logic tại Client. Khi có nhu cầu truy xuất hoặc cập nhật, Client gửi truy vấn trực tiếp tới Firebase thông qua SDK bằng giao thức HTTP/HTTPS. Sau khi Firebase Authentication xác thực danh tính qua token và kiểm tra quyền truy cập, Firebase sẽ xử lý dữ liệu và gửi phản hồi định dạng JSON về ứng dụng để cập nhật lên giao diện.

2. Cổng thanh toán ZaloPay được tích hợp vào ứng dụng nhằm mục đích gì và hỗ trợ những phương thức nào?
ZaloPay được tích hợp để giải quyết nghiệp vụ thanh toán trực tuyến (BR6) trong ứng dụng. Hệ thống cho phép người dùng nạp tiền vào ví nội bộ thông qua ứng dụng ZaloPay (sử dụng mã QR, ví Zalo hoặc tài khoản ngân hàng liên kết) và hỗ trợ chức năng liên kết thẻ để rút tiền từ ví ứng dụng về tài khoản của 39 ngân hàng nội địa tại Việt Nam.

3. Điều kiện bắt buộc để người tuyển dụng có thể đăng tải thành công một tin tuyển dụng mới là gì?
Theo quy định nghiệp vụ BR2 (Đăng tải công việc), bên cạnh việc điền đầy đủ các thông tin chi tiết (tiêu đề, mô tả, yêu cầu, thời gian, mức lương), hệ thống sẽ tự động kiểm tra số dư ví nội bộ của người tuyển dụng. Tin tuyển dụng chỉ được phê duyệt đăng tải lên hệ thống tìm kiếm khi số dư trong ví đủ để khấu trừ toàn bộ chi phí theo tính toán định mức của bài đăng.

4. Quy trình chấm công và tính lương giữa người tìm việc và người tuyển dụng được thực hiện ra sao?
Quy trình chấm công (BR5) diễn ra theo cơ chế 2 bước: trước mỗi ca làm việc, người lao động đăng nhập vào ứng dụng và gửi yêu cầu điểm danh đến; người tuyển dụng tiếp nhận và bấm xác nhận. Khi kết thúc ca làm, hai bên tiếp tục xác nhận thời gian ra về một lần nữa. Dữ liệu này được lưu trữ vào các nhánh check_in, salary và nuser_worked_hours để tự động tổng hợp số giờ làm, tính toán lương chi tiết từng ngày và lũy kế tổng thu nhập.

5. Cơ sở dữ liệu của JobsFinder được tổ chức như thế nào?
Hệ thống sử dụng cơ sở dữ liệu NoSQL Firebase Realtime Database được thiết kế theo cấu trúc cây JSON gồm 21 bảng cấu trúc chính. Cấu trúc này phân tách rõ ràng giữa thông tin người dùng (b_user, n_user, user_role), dữ liệu công việc và ứng tuyển (job, applicant, approved_job), dữ liệu chấm công - bảng lương (check_in, salary) cùng các nhánh dữ liệu phục vụ thống kê báo cáo (buser_expense_*, nuser_income_*, app_income).

Kết luận

Khóa luận tốt nghiệp của sinh viên Mai Văn Mạnh và Vũ Tiến Dũng đã giải quyết bài toán thực tế về quản lý và tìm kiếm việc làm bán thời gian thông qua việc xây dựng thành công ứng dụng di động JobsFinder trên hệ điều hành Android. Đề tài áp dụng kiến trúc MVVM với ngôn ngữ lập trình Kotlin, kết hợp nền tảng đám mây Firebase Realtime Database và tích hợp cổng thanh toán trực tuyến ZaloPay. Toàn bộ 26 chức năng nghiệp vụ của ba phân hệ tác nhân (Admin, Người tuyển dụng, Người tìm việc) đã được thiết kế và triển khai đồng bộ, tạo nên giải pháp khép kín từ khâu kết nối tuyển dụng đến quản lý chấm công và tài chính minh bạch. Công trình là tài liệu học thuật có giá trị tham khảo rõ ràng cho các nghiên cứu và dự án phát triển phần mềm di động phục vụ quản lý nhân sự và dịch vụ việc làm.