đặt vấn đề, mục tiêu đề tài, phạm vi nghiên cứu và bố cục báo cáo Chương 2: Nền tảng công nghệ Giới thiệu một số công nghệ và ý tưởng sử dụng trong đề tài. Các công nghệ bao gồm: Angular, Nodejs, và các service liên quan Chương 3: Cơ sở lý thuyết Dựa trên lý thuyết một số thuật toán về xử lý dữ liệu dé giới thiệu về cách thức xử lý kết nối mà nhóm đã sử dụng Chương 4: Phân tích và thiết kế hệ thống Trình bày về sơ đồ tổ chứ của website, phân tích thiết kế hệ thống, thiết kế cơ sở dữ liệu, thiết kế giao diện website. Chương 5: Cai đặt và kiếm thử Trình bày cài đặt hàm tính toán độ tương thích, tóm tắt quá trình triển khai kiểm thử. Chương 6: Tổng kết Tổng kết khóa luận, nêu ưu, khuyết điểm và hướng phát triển của đề tài 4 CHƯƠNG 2.
NÈN TẢNG CÔNG NGHỆ Chương này chủ yếu giới thiệu về các công nghệ mà nhóm đã sử dụng đã xây dựng website. Dong thời triển khai một số dịch vụ miễn phí dé lưu trữ dữ liệu hình anh. Hai công nghệ sử dụng chính là Angular, Nodejs.1 Tìm hiếu về Angular 2.1 Tổng quan về Angular Angular là một Javascript Framework do Google phát triển dé xây dựng các Single Page Application (SPA) bằng JavaScript, HTML và TypeScript. Angular 10 cung cấp các tính năng tích hợp cho Animation, HTTP Service và có các tính năng như Auto - complete, Navigation, Toolbar, Menu,.
Code được viết bằng TypeScript, biên dịch thành JavaScript và hiển thị tương tự trong trình duyệt [1].2 Cac đặc điểm của Angular - Được sử dung để có thé phát triển dựa trên J avaScript. - Angular có kha nang tao các ứng dung client-side dựa trên mô hình MVC. - Angular sở hữu khả năng tương thích cao có thé tự động xử lý dé dàng các mã Javascript sao cho phù hợp với các trình duyệt nhất. - Khi có ma nguồn mở và miễn phí thì nó sẽ được sử dụng rộng rãi hơn.
Các cải tiến mới trong Angular 10: - TSlib: thư viện thời gian chạy cho TypeScript chứa các ham trợ giúp đã được cap nhập. - Compiler interface: Giao diện trình biên dich đươck thêm vào dé bao bọc trình biên dịch ngược thực tế. - Loai bỏ gói ESM5 hoặc FESM5 dé tiết kiệm thời gian tải xuống và cài đặt các gói và thư viện Angular [2].3 Ưu điểm của Angular - Nâng cao năng suat của lập trình viên: Ung dụng các tính năng mới giúp code với Angular rõ ràng và dễ học. - Typescript: một ban nâng cấp của JavaScript, kết hop với Angular giúp xử ly các vấn đề hạn chế của JS như kiểm tra kiểu dữ liệu, refactor code an toàn hơn,.
từ đó cũng hỗ trợ tốt hơn trong việc debug, giúp dev hiểu rõ mã nguồn của họ hơn. - Cấu trúc phát triển rõ ràng: Mô hình MVVM (model — view — view/model) bao gồm cả class, dependency phân biệt rõ ràng giao diện người dùng, mã nguồn điều khiển giao diện và mô hình dữ liệu cho giao diện giúp Angular tạo lợi thế trong xây dựng ứng dụng client — side. - Extensive binding: giúp quá trình hiển thị dữ liệu, điều khiển Dom, thực thi các event một các trơn tru và dễ dang [3]. Tìm hiểu về Nodejs 2.1 Tổng quan Nodejs Nodejs là một nền tảng phát triển độc lập được xây dựng ở trên Javascript Runtime của Chrome mà chúng ta có thé xây dựng được các ứng dụng mang một cách nhanh chóng va dé dang mở rộng [4].2 Các đặc điểm của Nodejs Tốc độ xử lý và hiệu năng cao nhờ phần Core bên dưới được viết hầu hết bằng C++.
Có thé áp dụng cho sản phâm có lượng truy cập lớn, cần mở rong nhanh, cần đôi mới công nghệ [5]. Ưu điểm của Nodejs - Chạy đa nền tang phía Server, sử dung kiến trúc hướng sự kiện Event — Driven, co chế non — blocking I/O làm cho nó nhẹ và hiệu quả [6]. - Đáp ứng tốt thời gian thực và chạy đa nền tang, da thiết bị. - Nhận và xử lý nhiều kết nối chi với một single - thread.
Điều này giúp hệ thống tốn ít RAM nhất và chạy nhanh nhất khi không phải tao thread mới cho mỗi truy van.3 Các Service được sử dụng 2.1 Heroku - Là một nền tang đám mây cho phép lập trình viên xây dung, triển khai, quan lý va mở rộng ứng dụng (PaaS — Platform as a service) [7]. - Linh hoạt và dé sử dung, cung cấp con đường don giản dé đưa sản phẩm tiếp cận người dùng. - Hỗ trợ nhiều ngôn ngữ lập trình: NodeJS, Kotlin, PHP, Java, Python,. - H6 tro nhiéu tinh nang (Runtimes, Teams, Scales, Code/Data Rollback, .) dé mo rộng quy mô, khôi phục code và tích hợp với Git giúp chạy ứng dụng dé dàng.
- Chi phù hợp với website nhỏ và có giới hạn thời gian sử dụng miễn phi mỗi tháng.2 Cloudinary - Cloudinary cung cấp dịch vụ quản ly anh dựa trên cloud một cách toàn diện - Có thé upload, lưu trữ, sửa ảnh va đưa nó lên ứng dụng Web cua minh một cách dễ dàng - Tích hợp rat tốt với nhiều ngôn ngữ va framework khác nhau - Cho phép upload khoang 75000 anh [8].3 SendGrid - Là dich vụ cung cap giải pháp email dựa trên nền tang đám mây thay thé cho hệ thống email truyền thống - Giảm bớt lượng mail gửi đến thư mục rác (junk folder) - Dễ dàng mở rộng nâng cấp quy mô hệ thống - Cung cấp khả năng đánh giá tính hiệu qua của các chiến dịch mail marketing cũng như 1 kho API với các tinh năng hữu ích cần thiết [9]. CƠ SỞ LÝ THUYET Chương này nói về cơ sở lý thuyết của khóa luận bao gồm hệ thống tìm kiếm đối tượng tương đồng dựa trên hashtag mà người dùng dùng dé mô tả sản phẩm.1 Tìm hiểu hệ thống tìm kiếm sản phẩm phù hợp dựa trên Hashtag 3.1 Giới thiệu hệ thống gợi ý Recommendation Systems được định nghĩa là hệ thống đề xuất, gợi ý các sản phâm phù hợp nhất với người dùng cụ thể bằng cách dự đoán mối quan tâm của người dùng về một mặt hàng dựa trên thông tin liên quan đến sản phẩm, người dùng và sự tương tác giữa chúng. Mục đích chính của các Recommendation Systems là dự đoán mức độ quan tâm của một người dùng tới một sản phâm nào nào đó dựa trên hành vi của người dùng này hoặc qua một người dùng khác có hành vi tương tự như người dùng này dé xây dựng khuyến nghị cho họ [10]. Hai thực thé chính trong Recommendation Systems là users và items.
Recommendation Systems được chia làm 2 nhóm lớn: - Content-based systems: đánh giá đặc tính của items được recommended. Vi dụ: một user xem rất nhiều các bộ phim về cảnh sát hình sự, vậy thì gơi y một bộ phim trong cơ sở dữ liệu có chung đặc tính hình sự tới user này, ví dụ phim Người phán xử. Cách tiếp cận này yêu cầu việc sắp xếp các items vào từng nhóm hoặc đi tìm các đặc trưng của từng item. Tuy nhiên, có những items không có nhóm cụ thể và việc xác định nhóm hoặc đặc trưng của từng item đôi khi là bat khả thi [11].
- Collaborative filtering: hệ thống gợi ý items dựa trên sự tương quan (similarity) giữa các users và/hoặc items. Có thé hiểu rang ở nhóm này một item được recommended tới một user dựa trên những users có hành vi tương tự. Ví dụ: users A, B, C đều thích các bài hát của Noo Phước Thịnh. Ngoài ra, hệ thống biết rằng users B, C cũng thích các bài hát của Bích Phương nhưng chưa có thông tin về việc liệu user A có thích Bích Phương hay không.
Dựa trên thông tin của những users tương tự là B và C, hệ thống có thé dự đoán rang A cũng thích Bich Phương và gợi ý các bài hát của ca sĩ này tới A [11].2 Áp dụng vào hệ thống website Matching Trong dé tài này, tác giả sử dụng ý tưởng từ thuật toán Content-based systems dé xây dựng hệ thông matching cho website. Ý tưởng cơ bản của Content-based systems xây dựng một bộ hồ sơ (profile) trên nội dung của mỗi item. Profile này nhóm tác giả sử dụng bộ phân loại nhóm ngành nghề và một bộ hashtag dé mô tả sản phẩm. Nhung do không thé xây dựng được các cặp (item profile, ratings) tương ứng nên chưa thể áp dụng được bài toán Regression hay Classificaiton.
Profile của mỗi item (yêu cầu, sản phâm) được mô tả như sau: - Profile được mô ta bang phân loại ngành nghé va phân loại con chi tiết ngành nghề. - Profile được mô ta chi tiết bằng các Tags (là các mô tả ngắn ngọn bang các từ khóa). Nhóm tác giả dựa vào việc phân loại này dé xây dựng hàm tìm kiếm sản phẩm phù hợp với mô tả yêu cầu của công ty đã đề ra. Dưới đây là hình ảnh quy trình kết nối sản phẩm với yêu cầu giữa công ty và phòng thí nghiệm mà nhóm đã xây dựng.
Gửi yêu câu kết nỗi Cập nhật trạng thái "Rejected" Đông ÿ Cập nhật trang thai "Accept Phong thi nghiém dat lich hen Céng ty xem xét lich hen Céng ty xem xét lich hen Phong thi nghiệm xem xét lich hen mdi ea chốt Phòng thí nghiệm liên lạc với ắ Dot ý; công ty dé đặt cuộc hẹn sau cùng Từ chối Hai bên h gặp 2mit, tim - hiêu) sản \Cap nhật trạng thái "Organize phẩm, thông nhất ý kiến a meeting" Thời gian để hai bên suy nghĩ có niên ký kết tài trợ hay bàn Cập nhật trạng thai "Canceled" Cập nhật trang thái "Contract" Hai bên ký kết hợp đồng R R ee Cập nhật trạng thai "Done" Cập nhật trạng thái sửa “contract modifications" Hai bén yéu cau hé tro chuyén Thực hiện các dịch vụ về giao Cập nhật trạng thai "Support" chuyên giao công nghệ, tài trợ,. theo yêu cau 10 Mô tả quy trình xử lý kết nỗi chuyên giao như sau: Bang 3-1: Bang mô tả quy trình chuyển giao công nghệ Bước | Mô tả 1 Công ty gửi yêu cau kết nối đến sản phâm. Một giao dịch được tạo ra với trạng thai “Waiting” 2 Phòng thí nghiệm xem xét yêu cau của bên công ty: - _ Nếu phòng thí nghiệm chấp nhận yêu cầu kết nối, trạng thái giao dịch được cập nhật thành “Accepted”. - Néu phòng thí nghiệm từ chối yêu cầu kết nói, trạng thái giao dịch được cập nhật thành “ReJected”.
3 Phòng thí nghiệm chọn thời gian và địa điểm gặp mặt, trạng thái giao dịch được cập nhật thành “make an appointment”. 4 Công ty xem xét thời gian và địa diém cuộc hen: - - Nếu công ty đồng ý với cuộc hẹn này, trang thái giao dịch được cập nhật thành “Organize a meeting”.