ĐẶT VẤN ĐỀ Vấn đề xuất hiện trong bối cảnh dịch bệnh covid hoạt động khi mọi người cần hạn chế tiếp xúc những vật có nhiều người tiếp xúc như nút bấm thang máy, máy quét vân tay,. Yêu cầu đặt ra là làm thế nào để thực hiện việc chấm công một cách nhanh chóng và dễ dàng nhưng đồng thời đảm hạn chế tiếp xúc thiết bị chấm công, giúp các đơn vị thực hiện công việc quản lý của mình thuận tiện và dễ hơn. Từ những yêu cầu cần thiết của việc công việc chấm công trong tình hình hiện tại, em đề xuất việc xây dựng website hỗ trợ chấm công bằng camera Ai phục vụ tại nhiều cơ sở với các chức năng như sau: - Đối với chủ cơ sở/quản lý: - Phân quyền truy cập, phân quyền hành cho quyền hạn. - Quản lý thông tin các địa điểm đặt camera, cấu hình kết nối đến camera cài đặt thông tin khác liên quan đến camera, thêm mới camera, và quản lý thông tin nhân sự, thông tin phòng ban, ca làm việc hoặc thông tin khách hàng.
- Sau khi cấu hình kết nối đến camera, chủ cơ sở/quản lý có thể tải hình ảnh của nhân viên lên hệ thống để nhận dạng dữ liệu khuôn mặt, hoặc nhận diện khuôn mặt trực tiếp từ website. - Thêm/Sửa/Xóa dữ liệu nhân viên. - Báo cáo nhân viên đi trễ. - Báo cáo người lạ.
- Đối với nhân viên: - Xem số ngày đã làm. - Xem số ngày đã nghĩ. - Xem số lần đã đi trễ.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ Vấn đề đã từng được một số công ty phần mềm xử lý như công ty Leopard, công ty Happy Care. Kết quả đã cơ bản giải quyết được vấn đề nhân diện được người / nhân viên.
Vấn đề tồn động là hệ thống là phần mềm chỉ chạy được trên các máy tính windows, khó có khả năng phát triển cho các thiết bị khác cũng như nền tảng khác.3 PHẠM VI CỦA ĐỀ TÀI Tên dự án Hệ thống hỗ trợ chấm công bằng camera AI Người thiết kế và Võ Thành Thuận - DPM185194 xây dựng dự án Phạm vi dự án - Hỗ trợ công tác chấm công của công ty, doanh nghiệp hoặc địa điểm kinh doanh. - Hỗ trợ báo cáo thông tin hoạt động đi làm của nhân viên. - Hỗ trợ tính lương dựa theo số giờ/ngày làm. - Hỗ trợ nhân viên kiểm tra được tình trạng đi làm của bản thân.
- Hỗ trợ API phục vụ cho tương lai nếu có kế hoạch viết ứng dụng riêng dành cho PC hoặc điện thoại.4 PHƯƠNG PHÁP NGHIÊN CỨU - Tìm hiểu .NET WEB API. - Hệ quản trị CSDL SQLserver. - Tìm hiểu về camera Hanet. - Tìm hiểu API Hanet cung cấp.
- Thử nghiệm API trên console APP. - Một số ngôn ngữ hỗ khác: Javascript, html, css,.1 Khái niệm về web API API là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác. Nó là viết tắt của Application Programming Interface – giao diện lập trình ứng dụng. API cung cấp khả năng cung cấp khả năng truy xuất đến một tập các hàm hay dùng.
Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng. 3 Hình 1 Các làm việc của API 2.2 Ứng dụng API Web API: là hệ thống API được sử dụng trong các hệ thống website. Hầu hết các website đều ứng dụng đến Web API cho phép bạn kết nối, lấy dữ liệu hoặc cập nhật cơ sở dữ liệu. Ví dụ: Bạn thiết kế chức năng login bằng Google, Facebook, Twitter, Github… Điều này có nghĩa là bạn đang gọi đến API của.
Hoặc như các ứng dụng di động đều lấy dữ liệu thông qua API. API trên hệ điều hành: Windows hay Linux có rất nhiều API, họ cung cấp các tài liệu API là đặc tả các hàm, phương thức cũng như các giao thức kết nối. Nó giúp lập trình viên có thể tạo ra các phần mềm ứng dụng có thể tương tác trực tiếp với hệ điều hành. API của thư viện phần mềm hay framework: API mô tả và quy định các hành động mong muốn mà các thư viện cung cấp.
Một API có thể có nhiều cách triển khai khác nhau và nó cũng giúp cho một chương trình viết bằng ngôn ngữ này có thể sử dụng thư viện được viết bằng ngôn ngữ khác. Ví dụ bạn có thể dùng Php để yêu cầu một thư viện tạo file PDF được viết bằng C++.3 Web API là gì ? Web API là một phương thức dùng để cho phép các ứng dụng khác nhau có thể giao tiếp, trao đổi dữ liệu qua lại. Dữ liệu được Web API trả lại thường ở dạng JSON hoặc XML thông qua giao thức HTTP hoặc HTTPS.4 Cách hoạt động của web API Đầu tiên là xây dựng URL API để bên thứ ba có thể gửi request dữ liệu đến máy chủ cung cấp nội dung, dịch vụ thông qua giao thức HTTP hoặc HTTPS. Tại web server cung cấp nội dung, các ứng dụng nguồn sẽ thực hiện kiểm tra xác thực nếu có và tìm đến tài nguyên thích hợp để tạo nội dung trả về kết quả.
Server trả về kết quả theo định dạng JSON hoặc XML thông qua giao thức HTTP/HTTPS. 4 Tại nơi yêu cầu ban đầu là ứng dụng web hoặc ứng dụng di động , dữ liệu JSON/XML sẽ được parse để lấy data. Sau khi có được data thì thực hiện tiếp các hoạt động như lưu dữ liệu xuống Cơ sở dữ liệu, hiển thị dữ liệu… 2.5 Ưu và nhược điểm của web API - Ưu điểm: - Web API được sử dụng hầu hết trên các ứng dụng desktop, ứng dụng mobile và ứng dụng website. - Linh hoạt với các định dạng dữ liệu khi trả về client: Json, XML hay định dạng khác.
- Nhanh chóng xây dựng HTTP service: URI, request/response headers, caching, versioning, content formats và có thể host trong ứng dụng hoặc trên IIS. - Mã nguồn mở, hỗ trợ chức năng RESTful đầy đủ, sử dụng bởi bất kì client nào hỗ trợ XML, Json. - Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model binder, IoC container, dependency injection, unit test. - Giao tiếp hai chiều được xác nhận trong các giao dịch, đảm bảo độ tin cậy cao.
- Nhược điểm: - Để sử dụng hiệu quả cần có kiến thức chuyên sâu, có kinh nghiệm backend tốt - Tốn thời gian và chi phí cho việc phát triển, nâng cấp và vận hành - Có thể gặp vấn đề về bảo mật khi hệ thống bị tấn công nếu không giới hạn điều kiện kỹ.Net Core ASP.NET là một nền tảng web được sử dụng để tạo các trang web, ứng dụng và dịch vụ web. Đây là sản phẩm tích hợp của các ngôn ngữ HTML, CSS và JavaScript.NET được ra đời vào năm 2002 và đến nay đã được nâng cấp thành nhiều phiên bản khác nhau.NET hoạt động trên HTTP, sử dụng các lệnh và chính sách của HTTP để trình duyệt có thể trở thành giao tiếp song phương của máy chủ. Các thành phần chính của nền tảng ASP.NET cơ bản gồm: • Ngôn ngữ: ASP.NET sử dụng nhiều ngôn ngữ lập trình khác nhau như VB. 5 • Thư viện: ASP.NET có bộ thư viện chuẩn bao gồm các giao diện, các lớp và kiểu giá trị.
Bộ thư viện này có thể sử dụng lại cho quá trình phát triển ASP.NET và xây dựng các chức năng của hệ thống. • Thời gian chạy ngôn ngữ chung (CLR): CLR - Common Language Runtime được sử dụng để thực hiện các hoạt động mã. Các hoạt động này sẽ thực hiện xử lý các ngoại lệ và thu gom rác.NET Core là một phiên bản mới của ASP.NET, được phát hành bởi Microsoft và là một nền tảng mã nguồn mở tại Github.NET Core được sử dụng để phát triển khuôn khổ website và có thể thích ứng với nhiều trình duyệt khác nhau như Windows, Mac hoặc Linux kể cả trên nền tảng MVC.NET Core được thiết kế để tối ưu development framework cho những ứng dụng được chạy on-promise hay được triển khai trên đám mây.NET Core bao gồm các thành phần theo hướng module với mục đích tối thiểu tài nguyên và tiết kiệm chi phí khi phát triển. Đồng thời, ASP.NET Core cũng là một mã nguồn mở, một xu thế mà các ngôn ngữ lập trình hiện nay hướng đến.
Ưu điểm • Là khung mẫu và gọn gàng hơn kiến trúc nhiều tầng. • Là một khung công tác với mã nguồn mở. • Dễ dàng tạo ứng dụng ASP.NET đa nền tảng trên Windows, Mac và Linux. • Cấu hình là môi trường sẵn sàng cho đám mây.
• Khả năng lưu trữ trên: IIS, HTTP.sys, Kestrel, Nginx, Apache và Docker.0 là phiên bản tiếp theo của nền tảng .NET Core của Microsoft và là một nỗ lực để thống nhất hệ sinh thái cho các nhà phát triển của nó. Microsoft đã phát hành .0, bản phát hành mới lớn nhất trong nền tảng phát triển .NET, cùng với các cập nhật khác, giới thiệu ngôn ngữ lập trình mới C# 9.0 là bản cập nhật đầu tiên cho nền tảng này kể từ khi Microsoft thông báo sẽ thống nhất bộ công cụ dành cho nhà phát triển của mình trên các nền tảng và các hệ điều hành. Điều này có nghĩa là, với .0, các nhà phát triển có quyền truy cập vào một bộ duy nhất của các API, các ngôn ngữ và các công cụ để sử dụng bất kể họ đang xây dựng ứng dụng cho máy tính để bàn, cho thiết bị di động, đám mây hay Internet of Things (IoT).NET 6 đánh dấu một bước phát triển rất ngoạn mục cho nền tảng này. Cụ thể là lần đầu tiên có một bản cập nhật lớn LTS (Long Term Support) tức là hỗ trợ lâu dài (trong ít nhất 3 năm) hợp nhất giữa .NET Core và.
Trước đây có .NET 5 đã là phiên bản tiền đề để hợp nhất 2 nền tảng .NET của Microsoft nhưng chưa phải là LTS mà đến 6.0 mới là LTS. Điều này có nghĩa là các ứng dụng doanh nghiệp có thể tự tin nâng cấp lên 6.8 mà không lo về độ ổn định cũng như thời gian cam kết của Microsoft.9 Blazor WebAssembly WebAssembly (gọi tắt là Wasm) là một dạng mã máy nhị phân (bytecode). Các đoạn mã code viết bằng các ngôn ngữ như (C/C++, Rust, C#.) sẽ biên dịch thành dạng mã nhị phân nhờ vào Wasm mà trình duyệt (browser) có thể hiểu được. Hầu hết các trình duyệt hiện đại đều hỗ trợ Wasm Blazor WebAssembly hay còn gọi là Client Side Blazor.
Nó chạy toàn bộ ứng dụng ở phía client trên trình duyệt dựa trên WebAssembly. Blazor WebAssembly sẽ download tất cả mọi thứ về trình duyệt(Browse) bao gồm: • HTML, CSS, Javascript • Các .NET Runtime Ưu điểm: Tốc độ ứng dụng web rất nhanh bởi code c# được biên dịch thành các đoạn mã nhị phân nhờ WebAssembly, rất gần với ngôn ngữ máy mà trình duyệt hiểu được.