Đặt vấn đề Dịch vụ sửa chữa nói chung và dịch vụ sửa chữa nhà cửa nói riêng là thị trường đầy tiềm năng tại Việt Nam, đặc biệt là tại các thành phố lớn. Công nghệ phát triển nhanh tại đây cũng kéo theo nhu cầu sử dụng công nghệ đề đáp ứng tính tiện lợi, nhanh chóng của con người trong việc giải quyết các nhu cầu hàng ngày nói chung và trong đó có dịch vụ sửa chữa nhà cửa. Giả sử khách hàng đang gặp một vấn đề về hư hỏng thiết bị trong nhà cửa, vẫn đề đó rất đang nghiêm trọng và cần phải sửa gấp. Nhưng họ không có thời gian bình tĩnh dé tìm kiếm và tìm hiểu nơi sửa chữa vì có quá nhiều sự lựa chọn trên thị trường hiện nay, không biết nơi nào uy tín, nơi nào có đánh giá đúng và đặc biệt hơn là nơi sửa chữa phải gần nhất đề có thê khắc phục vấn đề đang gặp phải một cách nhanh chóng nhất có thé.
Dé khắc phục tinh trạng trên, nhóm tác giả cung cấp cho khách hàng một website mà họ có thé chỉ cần điền địa chỉ hiện tại cần sửa, ngay lập tức hệ thống sẽ hiển thị những nơi sửa chữa xung quanh địa chỉ đó, cho nên khách hàng có thé chọn lựa nơi sửa chữa một cách nhanh chóng nhất có thé, hoặc ho cũng có thé bam tìm thợ sửa chữa gần nhất, hệ thống sẽ tự động tìm kiếm và đặt giúp nơi sửa chữa. Bên cạnh đó, khách hàng có thé xem tat cả đánh giá của những nơi sửa chữa đó, do vậy khách hàng cũng sẽ có phần tin tưởng hơn. Ngoài ra, vê phía cung câp dịch vụ và thợ sửa chữa, họ có cơ hội đê được tiêp cận với khách hàng dễ dàng hơn. Tạo cơ hội việc làm cho nhiều thợ sửa chữa.
Hơn nữa, nhóm tác giả xây dựng chức năng phân công, quản lý nhân viên, do vậy sẽ dễ dàng quản lý. Bên cạnh đó nhóm tác giả xây dựng thêm có chức năng gợi ý chất lượng nhân viên. Hệ thống sẽ gợi ý những nhân viên được đánh giá cao, dựa trên những đánh giá của những khách hàng. Tìm hiểu ứng dụng hỗ trợ dịch vụ sửa chữa nhà cửa đã xuất hiện 1.1 Các ứng dụng Ứng dụng bTaskee 33/8/40 Pham Văn Chiêu, Phường 1.
SỐ NHÀ / CĂN HỘ Dọn dẹp nhà gg Theo gói CHỌN NGÀY LÀM CHỌN GIỜ LÀM Ngày mai 07/04/2021 su a0 PNEWs] AM TRONG Ngt ` #{ yà 3h 85m? ° 3 phòng Thém dich vu Tổng vệ sinh Đi Chợ = è 2 cX Nau an Ui dé Mang theo 1h +1h dụng cụ ° +30,000 VND 0ø900nỊ- NY oo seas Lap lại hang tuần ã Ngt ị ag » Vệ sinh Sofa - Đệm Dọn dẹp buồng - Rèm cửa phòng Bạn tự chọn người làm > 2 == = 180,000 VND/3h Tiếp theo —> Hình 1.1: Ứng dụng bTaskee Ứng dụng JupViec 02:05 # sâu 063 2 „, 02:05 "â" 92 “ wal wil GĐ < Vệ sinh điện máy @ Q ĐỊA ĐIỂM LAM VIỆC. Nhấn để chọn dia chỉ ` SỐ NHÀ/CĂN HỘ dss lộ) a L I C H L A M V I ỆC “. - Hôm nay, 19/07/2021 Giúpviệc Giúpviệc Hoa tươi = theo giờ định kỳ tan nhà @ GIÁ THAM KHẢO ve Sh tò | Xem bảng giá Tổngvệ Phunkhử Vệ sinh E GHICHÚ sinh khuẩn sofa,nệm, ể rèm, thảm Tủ lạnh 180 lít, máy giặt lồng ngang. Nhập mã khuyến mại vào đây Ne (nếu có) Vệ sinh e —) @ @ A s Đăng ký si : ĐặtDV Lịchsử NV Yêu t.
Thông báo Thông tin Hình 1.2: Ứng dụng JubViec Ứng dụng HouseCare HOUSE CARE Xx Xem chi tiét dich vu DỊCH VỤ VỆ SINH CÔNG NGHIỆP Q Goi 10 buổi FF) Thứ Hai, 19/07/2021 Œ) 02:40 Số nhà/Số căn hộ 1 @ 1 a, 5 | 9 113 Lam Thi H6, Tan Chanh Hiép, Quan 12, tu, Lj Thành phố Hồ Chí Minh, Việt Nam Riêng Lẻ Định Kỳ Cao =) Ghi rõ yêu cầu (nếu có) ¿:%$ Chọn mã khuyến mãi Ä $| mĩ fi 2S = — Định Kỳ Cao Máy Lạnh Tủ Lạnh Cấp — ih =- “ a t3) Giá: 6.000 VND Máy Giặt Công Nghiệp Côn Trùng “& cA đà = Tao dich vu Trang chủ Công việc Thanhtoán Ưu đãi Tài khoản Hình 1.3: Ứng dụng HouseCare 1.2 Nhận xét Các ứng dụng trên có những đặc điểm chung như sau: e Là những ứng dụng có nên tảng hoạt động tương tự như Grab/Gojek, ma ở đó khách hàng có thể đăng việc và người giúp việc sẽ nhận việc. e Giao diện dep, thân thiện với người dùng. e Được thiết kế dé hoạt động trên nhiều nền tảng thiết bị khác nhau như mobile, tablet. e Có các chức năng chính như đặt lich sửa chữa, chon dịch vụ sửa chữa.
Nhược điểm: e_ Chưa có một số chức năng như: tìm thợ sửa chữa gần nhất hoặc chọn nơi sửa chữa, hiện thị những nơi cung cấp dịch vụ xung quanh. e Không chạy các chức năng trên nền tang web, do vậy người dùng phải tai và cài đặt ứng dụng. e Giá dịch vụ đã duoc niêm yết. e Không thé chủ động cung cấp thêm dich vụ sửa chữa.
e Khách hàng bị động, phải đợi cộng tác viên nhận việc. Mục tiêu đề tài Đề tài với mục đích là xây dựng website hỗ trợ dịch vụ sửa chữa nhà cửa: e Tìm hiểu cấu trúc, cách website hoạt động. e Xây dựng hệ co sở dt liệu phù hợp với các chức năng của website. e Xây dựng các chức năng đã nêu cho website.
e Tìm hiểu và cai đặt thuật toán Collaborative Filtering. Phạm vi nghiên cứu Kiến thức của nhóm về các kỹ thuật trong lập trình web như ReactJS, Springboot chưa chuyên sâu, nên trong phạm vi khóa luận nay nhóm tác giả chỉ tập trung nghiên cứu một sô nội dung sau: e Nghiên cứu cải đặt thuật toán Collaborative Filtering vào chức năng tìm thợ chất lượng tốt. e _ Nghiên cứu nội dung cơ bản về ReactJS, Springboot và cách kết nối REST API. e Tìm hiểu một số website tìm va yêu cầu dịch vụ sửa chữa ở Việt Nam hiện nay.
Tuy nhiên, do hạn chế về mặt thời gian và khối lượng công việc, webite sẽ giới hạn đối tượng chính sử dụng là khách hàng, chủ công ty và thợ sửa chữa. Bố cục báo cáo Chương 1: Tổng quan đề tài. Giới thiệu tông quan nội dung đê tài khóa luận. Nội dung bao gôm: hiện trạng va đặt van đê, khảo sat một sô website, mục tiêu dé tai, phạm vi nghiên cứu và bô cục bao cáo.
Chương 2: Cơ sở lý thuyết Giới thiệu về hệ thống gợi ý dựa trên phương pháp lọc cộng tác dựa trên đánh giá người và một số công nghệ và thuật toán sẽ sử dụng trong đề tài. Các công nghệ bao gồm: ReactJS, Spring Boots, Rest API và thuật toán Neighborhood-Based Collaborative Filtering. Chương 3: Phân tích và thiết kế hệ thong Phân tích các yêu cầu đề ra, phân tích thiết kế hệ thống từ các chức năng. Thiết kế sơ đồ usecase, sơ dé activity, sơ đồ sequence, cơ sở dữ liệu, giao điện website.
Chương 4: Áp dụng thuật toán Áp dụng thuật toán vào ứng dụng. Chương 5: Cài đặt và kiém thử Trinh bày cài đặt thuật toán, tom tắt quá trình triển khai kiểm thử. Chương 6: Kết luận và hướng phát triển Tổng kết khóa luận, nêu ưu, khuyết điểm và hướng phát triển. CƠ SỞ LÝ THUYET Chương này nói về cơ sở lý thuyết của khoá luận bao gồm hệ thống gợi ý sản phẩm, và hệ thống gợi ý sản phẩm dựa trên phương pháp lọc cộng tác dựa trên đánh giá người dùng.
Cùng với hai công nghệ sử dụng chính sử dụng là ReactJS, Spring Boot. Ngoài ra các công nghệ sử dụng khác và công cụ sử dụng nhóm tác giả nghiên cứu trình bay chi tiết ở phụ lục A. Tìm hiểu về ReactJS 2. Tống quan về ReactJS Đề xây dựng giao diện người dùng (User Interface) chạy một cách mượt mà, tốc độ cao, xứ lý các logic thì có nhiều thư viện JavaScript phổ biến hiện này đang hỗ trợ như ReactJS, Angular.
Nhưng nhóm tác giả chọn ReactJS vì một số ly do sau đây: e Dễ năm bắt hơn vì chỉ cần có kiến thức cơ bản về JavaScript, còn Angular phải học thêm ngôn ngữ TypeScript!. e Phù hợp để xây dựng ứng dụng nhỏ đến lớn. e Có thé xây dựng ứng dụng đa nền tang web và di động với React Native2. Redux và Context API Trong một UI (User Interface) chứa rất nhiều thành phan, dé có thé dé dang quan ly và tái sử dụng thi chúng ta phải phân nhỏ UI, trong ReactJS thi đó là khái nệm component.
Một giao diện chứa rất nhiều component và chúng lưu trữ, truyền dữ liệu bang propsẺ và state*. Vì vậy điều này khiến cho việc truyền dir liệu qua lại nhiều component sẽ khiến cho việc quản lý rất khó khăn. Do đó, để giải quyết vấn đề này chúng ta có thê sử dụng Redux hoặc Context API.org/, truy cập lần cuối 18/07/2021 ?_hf(ps://reactnative.dev/, truy cập lần cuối 18/07/2021 3_hf(ps://reactjs.org/does/render-props.html,truy cập lần cuối 18/07/2021 4 https://reactjs.org/docs/faq-state.html,truy cập lần cuối 18/07/2021 10 Redux là thư viện JavaScript, nó ra đời nhăm hỗ trợ React trong việc quản lý state. Redux tô chức và lưu trữ các state đó là store.
Một ứng dựng React chỉ ton tại một store, và từ đó tat ca dữ liệu có thê truyén xuông các component nhiêu cap. Without Redux With Redux ⁄ XH \ # @ Component initiating change Hình 2.1: Cách thức hoạt động của Redux? Context API là khái niệm được xuất hiện ở phiên ban React 16.35, nó cung cấp phương thức dé truyền dit liệu cho tat các các component mà không phải thông qua nhiêu cap. Container Container Component Component Child Child Child Child Component | Component | Component ff Component Component | Component || Component | Component Context prop drilling context API Hình 2.2: Cách thức hoạt động của Context API’ 5 https://www.vn/Sy7my2, truy cập lần cuối 18/07/2021 6 https://reactjs.org/blog/2018/03/29/react-v-16-3.html, truy cập lần cuối 18/07/2021 7 https://www.com/playing-with-the-context-api-in-react-16-3/, truy cập lần cuối 18/07/2021 11 Về cơ bản Redux, Context API đều có thể quản lý state và truyền dữ liệu cho tất cả cac component. Tuy nhiên, muốn sử dụng Redux thì phải cài thêm thư viện và việc triển khai cũng khá phức tạp, khiến lượng code nhiều hơn.
Do vậy, với đề tài nhỏ và vừa nảy, nhóm tác giả quyết định sử dụng Context API để dễ dàng triển khai, cũng như tránh sự dư thừa. Authentication Client (Browser) Hình 2.3: Sơ đồ gửi nhận dữ liệu giữa client và server Nếu chỉ đơn thuần phía client gửi yêu cầu lấy dữ liệu, phía server nhận yêu cau va trả về dit liệu ma client cần. Điều gì xảy ra nêu client không được xác thực có quyền lay dữ liệu từ CSDL hay không, chắc chắn thông tin dữ liệu sẽ bị lộ. Ung dụng hoàn toàn có thé bị tấn công bằng một số kỹ thuật như SQL injectionŠ.