PHẦN MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Trong thời buổi công nghệ hiện nay, việc nhân viên phải đến trực tiếp bộ phận nhân sự để chấm công hoặc đến trạm có máy chấm công là việc rất mất thời gian. Đối với những công ty có lượng nhân viên lớn hoặc có nhân viên làm việc ở những nơi khác nhau thì việc chấm công thực sự khó khăn và độ chính xác cũng thực sự không cao. Chính vì vậy một hệ thống chấm công trên thiết bị điện thoại cá nhân hỗ trợ việc nhận diện khuôn mặt và cho phép người quản lý có thể theo dõi trên web là một điều thực sự cần thiết và quan trọng.
Các công ty hoàn toàn có thể cài ứng dụng trên 1 máy tính bảng để nhân viên đến chấm công hoặc cài trên điện thoại cá nhân cho những nhân viên làm việc ở những nơi khác nhau. Việc này giúp người quản lý theo dõi được sự chính xác về mặt con người bằng nhận diện khuôn mặt và theo dõi vị trí của họ so với văn phòng thông qua việc định vị tọa độ. Nhân viên chỉ cần cài ứng dụng lên máy và có thể sử dụng ở bất kì đâu. Theo dõi được lịch sử chấm công của họ.
Việc này nâng cao sự chính xác và sự tin tưởng giữa người quản lí và nhân viên. Nhận thấy những điều này, đề tài được thực hiện nhằm mục đích giúp cho các công ty giảm thiểu thời gian chấm công, cũng như tăng độ chính xác và thuận tiện hơi cho việc chấm công ở những nơi xa. MỤC TIÊU CỦA ĐỀ TÀI Xây dựng service nhận diện khuôn mặt. Xây dựng chức năng định vị tọa độ và tính toán khoảng cách.
Cho phép quản lý có thể theo dõi tình hình chấm công. Triển khai ứng dụng theo mô hình Microservice với nền tảng Docker và Kong API Gateway. Cân bằng tải với Nginx, PM2, Kong API Gateway. Triển khai ứng dụng mobile lên Google Play.
ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU a. Đối tượng nghiên cứu Ứng dụng chấm công dành cho các công ty vừa và nhỏ có nhu cầu quản lý chặt chẽ thao tác chấm công và muốn thuận tiện trong việc chấm công. Phạm vi nghiên cứu Tìm hiểu nghiệp vụ chấm công Tìm hiểu công nghệ nhận diện khuôn mặt Tìm hiểu mô hình Microservice. Tìm hiểu framework NestJS (NodeJS) để làm backend api.
Tìm hiểu framework Flutter (Dart) để viết ứng dụng đa nền tảng trên mobile. Tìm hiểu thư viện ReactJS để viết web ứng dụng. Tìm hiểu framework Flask (Python) để viết backend api cho service nhận diện khuôn mặt. Tìm hiểu thư viện Face Recognition để làm chức năng nhận diện khuôn mặt.
Tìm hiểu Docker để triển khai trong container hóa trong quá trình develop và mở rộng, đồng thời rút ngắn thời gian triển khai trong môi trường production. Tìm hiểu Kong API Gateway để làm API Gateway, điều hướng các request và cần bằng tải, đồng thời gom chung tất cả các api về cùng một endpoint. Tìm hiểu Nginx để làm reverse prox. Tìm hiể PM2 để quản lý tiến trình trong NodeJS.
2 Luan van Tìm hiểu Redis caching database để chạy xử lý queue cho chức năng chấm công, nhằm giảm số request cần xử lý trong cùng một thời điểm. PHƯƠNG PHÁP NGHIÊN CỨU Phương pháp tổng hợp lý thuyết: Nghiên cứu và tìm hiểu các tài liệu, ứng dụng liên quan đến các công nghệ đang tìm hiểu. Phương pháp chuyên gia: Tham khảo ý kiến của Thầy hướng dẫn cùng các anh, chị và bạn bè có kinh nghiệm liên quan đến các vấn đề của tiểu luận để tạo tính chính xác và khoa học của đề tài. Phương pháp mô hình hóa: Mô phỏng ứng dụng từ bước thiết kế cài đặt cho đến kết quả thành phẩm của ứng dụng.
PHÂN TÍCH CÁC CÔNG TRÌNH CÓ LIÊN QUAN Hầu hết các ứng dụng chấm công trên thị trường hiện tại chủ yếu là chỉ tập trung vào các thiết bị điện tử, tập trung ở một vị trí và các nhân viên sẽ lần lượt thực hiện việc chấm công. Các thiết bị chấm công trên thị trường có mở ra các gói SDK, các API để tương tác lấy dữ liệu nhưng còn thô sơ và khó sử dụng. Việc các nhân viên thường xuyên đi làm ở những vị trí khác nhau làm cản trở quá trình chấm công, việc xác thực địa điểm cũng như thời gian là khó khăn và không mang lại độ tin cậy cao. KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC Xây dựng được Web quản lý và theo dõi nhật ký chấm công.
Xây dựng được ứng dụng Mobile để nhân viên thực hiện chấm công ở bất cứ đâu, bất cứ thời điểm nào. Xây dựng giao diện đơn giản, dễ sử dụng Triển khai thành công ứng dụng theo hướng Microservice, tích hợp Docker lên server Ubuntu. Triển khai ứng dụng Mobile trên CH Play 3 Luan van PHẦN NỘI DUNG CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG I. Khảo sát hiện trạng 1.
Tanca (https://tanca. Chức năng ⮚ Ưu điểm - Phân chia ca làm việc rõ ràng về thời gian, vị trí. - Phân chia quyền quản lý và nhân viên hợp lý. - Có các tính năng như xin nghỉ, xem ai đang trong ca giúp người dùng quản lý rõ kỹ hơn.
- Ràng buộc chấm công thông qua wifi. - Ràng buộc chấm công khoanh vùng bán kính quanh 1 khu vực. - Xử dụng API google map giúp tìm kiếm thuận tiện, chi tiết hơn. - Danh sách vị trí các chi nhánh, trụ sở, giúp việc chấm công rõ ràng hơn.
4 Luan van ⮚ Nhược điểm - Các điều kiện kiểm tra còn hạn chế b. Giao diện ⮚ Ưu điểm - Giao diện rõ ràng ⮚ Nhược điểm - Giao diện chính vẫn còn đơn giản 2. XwokerBee (https://xworkerbee. Chức năng ⮚ Ưu điểm - Đơn giản dễ sử dụng - Chuyên biệt chỉ dùng để chấm công cho nhân viên - Sử dụng định vị GPS để kiểm tra vị trí - Sử dụng hình ảnh khuôn mặt để kiểm tra ⮚ Nhược điểm 5 Luan van - Chỉ dùng hình ảnh chứ không nhận diện khuôn mặt - Không khoanh vùng bán kính quanh khu vực hợp lệ - Chỉ có trên Android b.
Giao diện ⮚ Ưu điểm - Đơn giản dễ sử dụng 3. Mobiwork DMS (https://mobiwork. Chức năng ⮚ Ưu điểm - Điều kiện kiêm tra dựa trên GPS - Hỗ trợ xem báo cáo hàng tháng - Rõ ràng thời gian bắt đầu, kết thúc ⮚ Nhược điểm - Điều kiện kiểm tra đơn giản - Thời gian tan ca chưa rõ ràng 6 Luan van - Chỉ có trên Android - Chưa có khoanh cùng check-in b. Giao diện ⮚ Ưu điểm - Giao diện bắt mắt 4.
PtrackerERP (https://www.com/watch?v=d4kN06UbvwA) Hình 1. Chức năng ⮚ Ưu điểm - Có danh sách các ca làm việc của nhân viên - Có danh sách hệ thống đại lý, chi nhánh - Kiểm tra dựa trên hình ảnh ở nơi làm việc - Kiểm tra vị trí thông qua GPS ⮚ Nhược điểm - Chưa có chức năng nhận diện khuôn mặt - Không có khoanh vùng hợp lệ - Chỉ có trên android b. Giao diện Hình 1. 7 Luan van ⮚ Ưu điểm - Giao diện đơn giản 5.
Time Punch Hanbiro (https://appadvice.com/app/hanbiro-time-punch/687208432) Hình Hình 1. Chức năng ⮚ Ưu điểm - Phân quyền giữa quản lý và nhân viên - Có danh sách vị trí hợp lý - Tích hợp API Google Map, giúp tìm kiếm vị trí dễ dàng - Ca làm việc được phân chia tự động ⮚ Nhược điểm - Điều kiện kiểm tra đơn giản - Chỉ có trên IOS b. Giao diện ⮚ Ưu điểm 8 Luan van - Giao diện đơn giản II. Đánh giá chung - Hầu hết các ứng dụng có giao diện khá đơn giản - Phần lớn các ứng dụng chưa ứng dụng công nghệ nhận diện khuôn mặt - Các điều kiện đi kèm khi check-in còn khá đơn giản - Tích hợp định vị GPS để xác nhận vị trí rất hợp lý III.
Rút ra chức năng chính cho nhóm - Nhận diện khuôn mặt khi check in bằng camera - Xác định tọa độ dựa trên GPS - Có thể kết hợp IP wifi của nơi làm để kiểm tra - Theo dõi tình hình chấm công đối với người quản lý - Định vị lại tọa độ văn phòng bằng điện thoại 9 Luan van CHƯƠNG 2: TIẾP NHẬN YÊU CẦU I. Use case diagram Hình 2. 1 10 Luan van II. Chi tiết các actor 1.
Các nghiệp vụ STT Tên nghiệp Loại Quy định Biểu mẫu Ghi vụ nghiệp chú vụ 1 Đăng Truy QD_Dang BM_DangNh nhập xuất Nhap ap 2 Quản lý Truy QD_Quan BM_ThongTi thông tin xuất LiThongT nCaNhan_Vie cá nhân Lưu trữ in w BM_ThongTi nCaNhan_Up date BM_ThongTi nCaNhan_Co nfirm 3 Xem Truy QD_Xem BM_NhatKi nhật ký xuất NhatKi chấm công cá nhân 4 Chấm Truy QD_Cha BM_ChamCo công xuất, mCong ng_Send lưu trữ BM_ChamCo ng_Wait 11 Luan van BM_ChamCo ng_View Bảng 2. Các quy định STT Mã QĐ Tên QĐ Mô tả Ghi chú 1 QD_DangNhap Đăng nhập Nhân viên nhập thông tin tài khoản được cung cấp Tên đăng nhập chỉ được nhập kí tự thường và số, Mật khẩu chỉ được nhập kí tự thường và số Không được bỏ trống 2 QD_QuanLiTho Quản lí Phải kết nối internet ngTin thông tin 3 QD_XemNhatK Xem nhật kí Không có i 4 QD_ChamCong Chấm công Phải kết nối internet và bật định vị Bảng 2. Danh sách biểu mẫu Hình 2. 2 BM_DangNhap Hình 2.
3 BM_QuanLiThongTin_View 13 Luan van Hình 2. 4 BM_QuanLiThongTin_Update Hình 2. 5 BM_QuanLiThongTin_Confirm 14 Luan van Hình 2. 6 BM_XemNhatKi Hình 2.
7 BM_ChamCong_Send 15 Luan van Hình 2. 8 BM_ChamCong_Wait Hình 2. 9 BM_ChamCong_View 16 Luan van 2.