1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp - Báo cáo đồ án tìm phòng trọ bằng asp.net C#

133 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Trang Web Tìm Phòng Trọ
Tác giả Nguyễn Hoàng Long
Người hướng dẫn TS. Nguyễn Văn Dũ
Trường học Trường Đại Học Giao Thông Vận Tải
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 133
Dung lượng 5,81 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1. MỞ ĐẦU (20)
    • 1.1 Lý do chọn đề tài (20)
    • 1.2 Hướng tiếp cận của đề tài (20)
    • 1.3 Mục tiêu nghiên cứu (21)
    • 1.4 Đối tượng và phạm vi nghiên cứu (21)
    • 1.5 Phương pháp nghiên cứu (21)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (22)
    • 2.1 Tổng quan về ASP.NET Core Framework và ASP.NET Core MVC (22)
      • 2.1.1 Giới thiệu về ASP.NET Core (22)
      • 2.1.2 Những lợi ích khi sử dụng ASP.NET Core (22)
      • 2.1.3 Giới thiệu về ASP.NET Core MVC (23)
    • 2.2 Giới thiệu về Goong Maps API (26)
    • 2.3 Tìm hiểu về ML .NET (28)
  • CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ (31)
    • 3.1 Phân tích (31)
      • 3.1.1 Bài toán đặt ra (31)
      • 3.1.2 Xây dựng sơ đồ Usecase (33)
        • 3.1.2.1 Sơ đồ Usecase của người dùng (33)
        • 3.1.2.2 Sơ đồ Usecase của chủ trọ (34)
        • 3.1.2.3 Sơ đồ Usecase của admin (34)
      • 3.1.4 Sơ đồ hoạt động (36)
        • 3.1.4.1 Sơ đồ hoạt động của người dùng (36)
        • 3.1.4.2 Sơ đồ hoạt động của chủ trọ (37)
        • 3.1.4.3 Sơ đồ hoạt động của admin (38)
      • 3.1.5 Biểu đồ tuần tự (39)
      • 3.1.6 Sơ đồ trạng thái (65)
    • 3.2 Thiết kế (67)
      • 3.2.1 Thiết kế chức năng xem danh sách phòng trọ (67)
      • 3.2.2 Thiết kế chức năng xem chi tiết phòng trọ (68)
      • 3.2.3 Thiết kế chức năng quan tâm phòng trọ (71)
      • 3.2.4 Thiết kế chức năng lưu phòng trọ (72)
      • 3.2.5 Thiết kế chức năng đánh giá phòng trọ (73)
      • 3.2.6 Thiết kế chức năng bình luận vào phòng trọ (74)
      • 3.2.7 Thiết kế chức năng đặt cọc và thanh toán (75)
      • 3.2.8 Thiết kế chức năng kiểm tra tình trạng phòng trọ (79)
      • 3.2.9 Thiết kế chức năng xem lịch sử đặt phòng (79)
      • 3.2.10 Thiết kế chức năng đăng ký trở thành chủ trọ (79)
      • 3.2.11 Thiết kế chức năng đăng ký tài khoản (81)
      • 3.2.12 Thiết kế chức năng đăng nhập (86)
      • 3.2.13 Thiết kế chức năng quản lý tài khoản (87)
      • 3.2.14 Thiết kế chức năng tìm kiếm cơ bản (89)
      • 3.2.15 Thiết kế chức năng lọc phòng trọ (90)
      • 3.2.16 Thiết kế chức năng tìm kiếm trên bản đồ (91)
      • 3.2.17 Thiết kế chức năng quản lý bài viết về phòng trọ (95)
      • 3.2.18 Thiết kế chức năng trả lời thắc mắc của người dùng (97)
      • 3.2.19 Thiết kế chức năng báo cáo bình luận (97)
      • 3.2.21 Thiết kế chức năng quản lý dịch vụ phòng trọ (100)
      • 3.2.22 Thiết kế chức năng quản lý người dùng và chủ trọ (102)
      • 3.2.23 Thiết kế chức năng quản lý phòng trọ (104)
      • 3.2.24 Thiết kế chức năng ẩn hiện các bình luận được báo cáo (104)
      • 3.2.25 Thiết kế chức năng duyệt yêu cầu đăng ký trở thành chủ trọ (106)
      • 3.2.26 Thiết kế chức năng thống kê (107)
  • CHƯƠNG 4. KẾT QUẢ VÀ KIẾN NGHỊ (109)
    • 4.1 Kết quả đạt được (109)
      • 4.1.1 Chức năng của người dùng (109)
        • 4.1.1.1 Chức năng xem danh sách phòng trọ (109)
        • 4.1.1.2 Chức năng xem chi tiết phòng trọ (111)
        • 4.1.1.3 Chức năng quan tâm phòng trọ (112)
        • 4.1.1.4 Chức năng lưu phòng trọ (113)
        • 4.1.1.5 Chức năng đánh giá phòng trọ (114)
        • 4.1.1.6 Chức năng bình luận phòng trọ (115)
        • 4.1.1.7 Chức năng đặt cọc và thanh toán (115)
        • 4.1.1.8 Chức năng kiểm tra tình trạng phòng trọ (116)
        • 4.1.1.9 Chức năng xem lịch sử đặt phòng (117)
        • 4.1.1.10 Chức năng đăng ký trở thành chủ trọ (117)
        • 4.1.1.11 Chức năng đăng ký tài khoản (118)
        • 4.1.1.12 Chức năng đăng nhập (119)
        • 4.1.1.13 Chức năng quản lý tài khoản (120)
        • 4.1.1.14 Chức năng tìm kiếm cơ bản (121)
        • 4.1.1.15 Chức năng lọc phòng trọ (121)
        • 4.1.1.16 Chức năng tìm kiếm trên bản đồ (122)
      • 4.1.2 Chức năng của chủ trọ (123)
        • 4.1.2.1 Chức năng quản lý bài viết về phòng trọ (123)
        • 4.1.2.2 Chức năng trả lời thắc mắc của người dùng (126)
        • 4.1.2.3 Chức năng báo cáo bình luận (126)
        • 4.1.2.4 Chức năng xem trạng thái đặt phòng (127)
      • 4.1.3 Chức năng của admin (127)
        • 4.1.3.1 Chức năng quản lý dịch vụ phòng trọ (127)
        • 4.1.3.2 Chức năng quản lý người dùng và chủ trọ (128)
        • 4.1.3.3 Chức năng quản lý phòng trọ (129)
        • 4.1.3.4 Chức năng ẩn hiện các bình luận được báo cáo (130)
        • 4.1.3.5 Chức năng duyệt yêu cầu đăng ký trở thành chủ trọ (130)
        • 4.1.3.6 Chức năng thống kê (130)
    • 4.2 Kiến nghị (131)
      • 4.2.1 Những kiến thức học được (131)
      • 4.2.2 Những hạn chế cần khắc phục (132)
  • TÀI LIỆU THAM KHẢO (133)

Nội dung

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MÔN CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI XÂY DỰNG TRANG WEB TÌM PHÒNG TRỌ Giảng viên hướng dẫn TS NGUYỄN VĂN DŨ Sinh vi[.]

CƠ SỞ LÝ THUYẾT

Tổng quan về ASP.NET Core Framework và ASP.NET Core MVC

2.1.1 Giới thiệu về ASP.NET Core Để có thể hiểu rõ hơn về ASP.NET Core thì trước tiên ta phải có kiến thức sơ lược về ASP.NET, 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 ASP.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

ASP.NET Core là phiên bản mới của ASP.NET được phát hành bởi Microsoft, là mã nguồn mở trên GitHub, giúp phát triển các nền tảng website linh hoạt Nó hoạt động trên nhiều hệ điều hành như Windows, Mac, Linux và hỗ trợ nền tảng MVC, phù hợp với nhiều trình duyệt khác nhau Ban đầu, ASP.NET Core gọi là ASP.NET 5, nhưng sau đó đã chính thức đổi tên để phản ánh tính năng mở rộng và sáng tạo của nền tảng này.

ASP.NET Core được thiết kế để tối ưu hóa framework phát triển cho các ứng dụng chạy on-premise hoặc triển khai trên đám mây Với kiến trúc module, ASP.NET Core giúp tiết kiệm tài nguyên và giảm chi phí phát triển Đây còn là nền tảng mã nguồn mở, phù hợp với xu hướng phát triển phần mềm hiện nay.

2.1.2 Những lợi ích khi sử dụng ASP.NET Core

Xây dựng web UI và web API với ASP.NET Core MVC:

• Người dùng có thể tạo ra những ứng dụng web có thể thực hiện testing theo mô hình MVC

• Xây dựng HTTP services hỗ trợ nhiều định dạng và đầy đủ những hỗ trợ cho nội dung của dữ liệu trả về

• Razor cung cấp ngôn ngữ tạo Views hiệu quả

• Tag Helper cho phép code server side tham gia vào quá trình tạo và render phần tử HTML

• Model Binding có thể tự động ánh xạ dữ liệu từ HTTP request tới những tham số của method action

• Model validation thực hiện validate client và server một cách tự động

ASP.NET Core được thiết kế tích hợp với nhiều client side frameworks một cách liên tục bao gồm AngularJS, Bootstrap và KnockoutJS

Ngoài ra, ASP.NET Core còn được đánh giá cao khi mang trong mình nhiều lợi ích khác như:

• 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

2.1.3 Giới thiệu về ASP.NET Core MVC

ASP.NET Core MVC là framework trong ASP.NET Core hỗ trợ thực thi kiến trúc MVC, giúp phát triển đa dạng ứng dụng từ website truyền thống đến ứng dụng đơn trang và Web API.

Mẫu kiến trúc MVC chia ứng dụng thành ba phần riêng biệt gồm Model, View và Controller để đảm nhiệm các chức năng khác nhau Khi áp dụng mô hình này, các yêu cầu từ người dùng sẽ được điều hướng đến Controller, nơi xử lý chính của ứng dụng Controller tương tác với Model để lấy dữ liệu phù hợp, xử lý thông tin rồi trình bày kết quả đến người dùng thông qua View Mẫu kiến trúc MVC giúp tăng tính modular, dễ bảo trì và mở rộng cho các ứng dụng web.

Việc áp dụng mô hình này giúp việc lập trình, gỡ lỗi và kiểm thử ứng dụng trở nên dễ dàng hơn nhờ chia ứng dụng thành ba phần với nhiệm vụ rõ ràng Điều này giúp tối ưu quá trình kiểm thử so với các ứng dụng không được phân chia thành nhiều phần, từ đó nâng cao hiệu quả phát triển phần mềm.

Mô hình MVC trong ASP.NET Core MVC

Hình 2.2 Mô hình MVC trong ASP.NET Core MVC

• Đây là một chu kỳ xử lý từ lúc nhận được truy vấn HTTP cho đến khi sinh ra HTML

• Truy vấn HTTP sẽ được cơ chế ánh xạ sang một phương thức xác định gọi là action

• Trong ASP.NET Core MVC, là phương thức được thực thi để đáp ứng lại một truy vấn

• Để thực thi, action cần đến dữ liệu đầu vào chứa trong truy vấn HTTP Dữ liệu được trích ra từ truy vấn thông qua cơ chế model binding

Binding model là một object đóng vai trò “thùng chứa” dữ liệu trích xuất từ truy vấn và cung cấp cho action Đây chính là kết quả của cơ chế model binding, giúp truyền dữ liệu dạng đã xử lý từ yêu cầu đến phương thức xử lý trong controller Binding model đảm nhận vai trò làm tham số đầu vào cho action, đảm bảo việc truyền dữ liệu diễn ra chính xác và thuận tiện trong quá trình xử lý yêu cầu.

• Controller trong ASP.NET Core là class chứa các action có quan hệ nhất định

Trong quá trình thực thi, hành động sẽ tương tác với các thành phần khác của ứng dụng như dịch vụ và cơ sở dữ liệu Áp dụng phương pháp DDD (Domain-driven Design), dữ liệu nghiệp vụ được thể hiện rõ ràng qua các domain model, giúp tối ưu hóa quá trình phát triển và quản lý hệ thống phần mềm.

• Tất cả các thành phần dịch vụ, domain model, v.v., được gọi chung là application model

• Quá trình tương tác này sẽ sinh ra dữ liệu phục vụ cho hiển thị, gọi là view model

View model là đối tượng đơn giản chứa dữ liệu cần thiết để tạo ra giao diện người dùng, thường là biến thể của dữ liệu từ application model kết hợp với các dữ liệu phụ trợ như tiêu đề, phân trang, giúp tối ưu hóa quá trình hiển thị và nâng cao trải nghiệm người dùng.

Trong ASP.NET Core MVC, view là các trang Razor chứa mã hỗn hợp giữa C# và HTML theo cú pháp Razor, thường được gọi là Razor view Kết quả cuối cùng của việc xử lý Razor view là một trang HTML hoàn chỉnh, giúp hiển thị nội dung động linh hoạt và tối ưu cho ứng dụng web.

Giới thiệu về Goong Maps API

Goong Maps API là một giải pháp thay thế cho Google Maps API tại Việt Nam

Goong Maps có kho dữ liệu phong phú, được cập nhật liên tục trên tất cả các tỉnh thành của Việt Nam, đảm bảo độ chính xác và đáng tin cậy Hệ thống dữ liệu này do Goong - Công Ty Cổ Phần Công Nghệ và Dịch Vụ Bản Đồ Số iMap tự xây dựng và duy trì, giúp người dùng yên tâm về độ mới nhất của các thông tin bản đồ So sánh chất lượng dữ liệu của Goong với Google Maps cho thấy Goong ngày càng nâng cao chất lượng dịch vụ và dữ liệu bản đồ phù hợp cho thị trường Việt Nam.

Hình 2.3 So sánh giữa Google Maps API và Goong Maps API

Với mức giá cạnh tranh vô cùng hấp dẫn, dịch vụ của chúng tôi cung cấp đầy đủ các chức năng tương đương Google Maps API nhưng với mức giá thấp hơn đến 50% Điều này giúp khách hàng tiết kiệm chi phí mà vẫn đảm bảo sử dụng các tính năng bản đồ chất lượng cao, linh hoạt, phù hợp với mọi nhu cầu dự án của bạn.

Các tính năng nổi bật

Tự động gợi ý (auto complete): tự động hiển thị cho người dùng các địa chỉ/địa điểm trong quá trình gõ

Tốc độ cao: ở chế độ miễn phí, Goong hỗ trợ 600 requests/phút Các khách hàng trả tiền được hỗ trợ từ 1200 - 30,000+ request/phút

Truy cập đa điểm: Khách hàng ở chế độ trả phí có thể query đến 50 địa điểm/request

Kho dữ liệu địa điểm đồ sộ: Dữ liệu bản đồ bao gồm toàn bộ địa giới Việt Nam,

Dữ liệu POIs phủ khắp 63 tỉnh thành Việt Nam, cung cấp các thông tin đa dạng về nhiều danh mục khác nhau, giúp nâng cao khả năng phân tích và ứng dụng dữ liệu địa phương Toàn bộ kho dữ liệu này luôn được cập nhật và kiểm tra liên tục để đảm bảo tính chính xác, đáng tin cậy và phù hợp với các yêu cầu của thị trường kỹ thuật số ngày càng phát triển Điều này mang lại lợi ích lớn cho các doanh nghiệp, nhà phát triển và nhà nghiên cứu trong việc khai thác và tối ưu hóa dữ liệu địa phương một cách hiệu quả.

Hoàn toàn tương thích với Maps API của Google, giúp ta dễ dàng tích hợp vào sản phẩm, chỉ với chút thay đổi nhỏ trong code

Goong Maps API được tin tưởng sử dụng bởi các thương hiệu nổi tiếng như iCheck, ứng dụng gọi xe be, FPTShop, Zalo, Viettel, Sendo…

Tìm hiểu về ML NET

ML.NET là thư viện máy học mã nguồn mở và chạy cross-platform của Microsoft, hỗ trợ phát triển trên các hệ điều hành như Windows, Linux, macOS Bạn có thể lập trình và tích hợp ML.NET trên các nền tảng như Desktop, Web hoặc xây dựng các dịch vụ máy học Được đánh giá là mạnh mẽ, ML.NET có khả năng thực hiện những tác vụ tương đương hoặc vượt xa một số thư viện khác như scikit-learn của Python Nhờ sở hữu hạ tầng công nghệ vững mạnh và mạng lưới khách hàng toàn cầu, ML.NET hứa hẹn sẽ tạo ra xu hướng mới trong công nghệ máy học phát triển bằng C# và F#, đồng thời mở ra nhiều cơ hội thị trường việc làm trong lĩnh vực này.

ML.NET bắt đầu ra mắt từ tháng 5 năm 2018 và đến nay, phiên bản ổn định nhất là 1.7.0 tính đến tháng 2 năm 2022 Microsoft cùng cộng đồng developer luôn tích cực bổ sung tính năng mới và cải tiến hiệu suất các thuật toán để nâng cao trải nghiệm và hiệu quả sử dụng của ML.NET.

ML.NET là nền tảng xây dựng mô hình học máy, nơi xác định các bước chuyển đổi dữ liệu đầu vào thành kết quả dự đoán Người dùng có thể tùy chỉnh mô hình bằng cách chọn các thuật toán machine learning phù hợp với bài toán của mình hoặc import các mô hình đã đào tạo sẵn từ TensorFlow hoặc ONNX Ngoài ra, ML.NET hỗ trợ lưu trữ mô hình để tái sử dụng và chia sẻ với cộng đồng, giúp tối ưu hóa quá trình phát triển dự án học máy.

Hình 2.4 Các bước để tạo ra mô hình máy học sử dụng ML.NET

Bước 1 trong quá trình xử lý dữ liệu là chuẩn bị dữ liệu, đặc biệt là chuẩn hóa dữ liệu để loại bỏ các “ô nhiễm” trong dữ liệu ban đầu Quá trình này giúp loại bỏ các dữ liệu không chính xác, dữ liệu rác không đáp ứng yêu cầu, từ đó nâng cao chất lượng dữ liệu cho các bước tiếp theo trong phân tích hoặc xử lý dữ liệu Chuẩn bị và chuẩn hóa dữ liệu đóng vai trò quan trọng trong việc đảm bảo hiệu quả của toàn bộ quy trình xử lý dữ liệu.

Bước 2 trong quá trình xử lý dữ liệu là rút trích đặc trưng, hay còn gọi là vector hóa dữ liệu, giúp mã hóa dữ liệu thành các ma trận số một cách dễ dàng hơn Quá trình này đơn giản hóa việc chuyển đổi dữ liệu bằng cách nạp cấu trúc đối tượng và truyền các mảng thuộc tính tương ứng, từ đó tạo ra các biểu diễn số học phù hợp cho các bước xử lý tiếp theo.

ML.NET giúp bạn thực hiện quá trình chia dữ liệu và huấn luyện mô hình một cách hiệu quả Trong bước này, thường kết hợp chia dữ liệu thành hai phần: Train set và Test set, nhằm đánh giá chất lượng mô hình Tỉ lệ phân chia dữ liệu ảnh hưởng trực tiếp đến hiệu suất của mô hình, do đó, việc lựa chọn tỷ lệ phù hợp là rất quan trọng để đảm bảo kết quả chính xác và tối ưu.

Trong bước 3, chúng ta tiến hành xây dựng và huấn luyện mô hình dựa trên bài toán phân lớp hoặc nhóm cụm dữ liệu Việc chọn đúng thuật toán phù hợp là yếu tố quan trọng để đảm bảo mô hình hoạt động hiệu quả và chính xác Lựa chọn giải thuật phù hợp giúp tối ưu hoá quá trình học tập của mô hình, từ đó nâng cao khả năng dự đoán và phân tích dữ liệu.

Trong bước 4, việc đánh giá mô hình là rất quan trọng để xác định chất lượng của mô hình sau khi xây dựng Mọi mô hình đều không hoàn hảo và không có mô hình đúng hay sai, chỉ có mô hình có chất lượng tốt hay kém Chất lượng của mô hình phụ thuộc vào các chỉ số đánh giá như R-Squared, MSE, và RMSE trong các bài toán hồi quy Việc sử dụng các thang đo phù hợp giúp đảm bảo đánh giá chính xác và toàn diện về hiệu suất của mô hình.

Trong các giải pháp mô hình dự đoán, Loss Function đóng vai trò quan trọng để đánh giá hiệu quả R-Squared càng cao (gần 100%) thể hiện mô hình dự đoán tốt, mặc dù đối với dữ liệu chứng khoán, giá trị R-Squared trên 70-80% đã được xem là ổn định, nhưng không phải số thấp hơn 50% là đã tệ Các chỉ số như MSE, RMSE, MAE, Loss Function càng thấp thì mô hình càng chính xác và phù hợp hơn Việc lựa chọn mô hình phù hợp phụ thuộc vào kinh nghiệm của người xây dựng và căn cứ vào các độ đo hiệu quả này, đồng thời lưu ý rằng từng loại thuật toán máy học sẽ sử dụng các chỉ số đánh giá khác nhau để tối ưu hóa kết quả.

Sau khi hoàn thành bước 4 đánh giá, bạn có thể lưu mô hình xuống ổ cứng hoặc chia sẻ lên đám mây để tiết kiệm thời gian và chi phí Việc lưu trữ mô hình giúp dễ dàng lấy ra sử dụng cho những lần sau mà không cần phải chạy lại từ đầu Khi cần sử dụng, chỉ cần load mô hình đã lưu rồi gọi hàm Predict phù hợp với bài toán để đưa ra dự đoán chính xác.

ML.NET hỗ trợ các bài toán nào liên quan tới máy học?

Web tìm trọ sẽ ứng dụng ML.NET để giải quyết bài toán liên quan đến Recommendations

PHÂN TÍCH VÀ THIẾT KẾ

Phân tích

Xây dựng một trang web giúp người dùng dễ dàng tìm kiếm phòng trọ phù hợp, cung cấp các chức năng phù hợp với quyền hạn của từng loại người dùng Trang web được thiết kế dành cho ba nhóm chính: người dùng, chủ trọ và quản trị viên, đảm bảo trải nghiệm tối ưu cho mỗi đối tượng Với hệ thống phân quyền rõ ràng, người dùng có thể tìm kiếm và liên hệ phòng trọ dễ dàng, trong khi chủ trọ quản lý danh sách phòng và liên lạc với khách hàng Quản trị viên đảm nhiệm vai trò vận hành và duy trì hệ thống, đảm bảo trang web vận hành linh hoạt, an toàn và hiệu quả.

Chức năng dành cho người dùng

• Xem được danh sách các phòng trọ mà người cho thuê đã đăng lên

• Người dùng có thể tạo tài khoản qua email, hoặc thông qua tài khoản google và facebook và có thể quản lý thông tin tài khoản của mình

• Cho phép người dùng xem thông tin chi tiết của phòng trọ

Bạn có thể cho phép người dùng "quan tâm", đánh giá và bình luận vào bài đăng để tăng cường sự tương tác Tính năng này giúp người dùng kết nối, chia sẻ quan điểm và thảo luận về các phòng trọ, từ đó nâng cao trải nghiệm và tạo cộng đồng hoạt động sôi nổi Việc thúc đẩy tương tác qua các bình luận và đánh giá còn giúp tăng khả năng hiển thị của bài đăng trên các nền tảng tìm kiếm, nâng cao hiệu quả marketing cho thuê phòng trọ.

• Người dùng có thể báo cáo bình luận là không phù hợp với admin

• Cho phép người dùng lưu phòng trọ để xem sau

Bạn có thể dễ dàng tìm kiếm phòng trọ phù hợp dựa trên các tiêu chí cơ bản như khu vực, mức giá, số người ở tối đa, cùng các tiện ích lân cận được chủ trọ đề cập trong bài viết Việc lọc tìm theo những tiêu chí này giúp tiết kiệm thời gian và nâng cao khả năng tìm được phòng trọ phù hợp nhất với nhu cầu của bạn Hệ thống tìm kiếm dễ sử dụng, cho phép người dùng nhanh chóng xác định các phòng trọ có vị trí thuận tiện, giá hợp lý và đầy đủ tiện ích cần thiết.

Người dùng có thể thực hiện tìm kiếm nâng cao các phòng trọ thông qua bản đồ, giúp dễ dàng xác định các phòng trọ phù hợp theo phạm vi bán kính xung quanh, mức giá ưu đãi và số lượng người ở, tối ưu hóa quá trình lựa chọn nhà trọ phù hợp nhất.

• Có bộ lọc để lọc ra danh sách phòng trọ mà người dùng mong muốn

• Cho phép người dùng kiểm tra tình trạng phòng trọ xem có thể tiến hành đặt phòng được không

• Cho phép người dùng có thể đặt trọ, thanh toán tiền cọc qua ví điện tử MoMo, đồng thời xem được lịch sử đặt phòng

• Cho phép người dùng có thể đăng ký trở thành chủ trọ

Chức năng dành cho chủ trọ

• Cho phép người cho thuê trọ có thể đăng bài lên trang web

• Người thuê trọ có thể quản lý các bài đăng của mình

• Người thuê trọ có thể trả lời các thắc mắc của người dùng với tư cách là người đăng bài

• Người thuê trọ có thể báo cáo các bình luận của người dùng mà người thuê trọ cho là không phù hợp về cho người quản trị

• Người thuê trọ có thể xem được số lượng người đã đặt phòng và ai là người đã đặt phòng để có thể liên hệ với họ

• Chủ trọ có thể quản lý thông tin tài khoản của mình

Chức năng dành cho admin

• Admin có tất cả các chức năng của người dùng

• Admin có thể quản lý các dịch vụ của phòng trọ

• Quản lý người dùng: sửa, xoá

• Quản lý chủ trọ: sửa, xoá

• Quản lý phòng trọ: thêm, sửa, xoá

• Duyệt các bình luận đã được người dùng, chủ trọ báo cáo: ẩn, hiện bình luận

• Duyệt các yêu cầu đăng ký trở thành chủ trọ

• Xem thống kê về lượt bình luận, lượt quan tâm về các phòng trọ ở từng khu vực trong thành phố Hồ Chí Minh

3.1.2 Xây dựng sơ đồ Usecase

3.1.2.1 Sơ đồ Usecase của người dùng

Hình 3.1 Sơ đồ usecase của người dùng

3.1.2.2 Sơ đồ Usecase của chủ trọ

Hình 3.2 Sơ đồ usecase của chủ trọ

3.1.2.3 Sơ đồ Usecase của admin

Hình 3.3 Sơ đồ usecase của admin

Từ bài toán đặt ra, dựa vào các chức năng mà bài toán đã mô tả, ta có thể xây dựng được sơ đồ lớp tương ứng

3.1.4 Sơ đồ hoạt động 3.1.4.1 Sơ đồ hoạt động của người dùng

Hình 3.5 Sơ đồ hoạt động của người dùng

3.1.4.2 Sơ đồ hoạt động của chủ trọ

Hình 3.6 Sơ đồ hoạt động của chủ trọ

3.1.4.3 Sơ đồ hoạt động của admin

Hình 3.7 Sơ đồ hoạt động của admin

Biểu đồ tuần tự giúp thể hiện rõ ràng các chi tiết của những Usecase phức tạp dựa trên các chức năng trong sơ đồ Usecase, các lớp trong sơ đồ lớp và luồng hoạt động trong sơ đồ hoạt động.

Usecase đăng ký tài khoản

Hình 3.8 Sơ đồ tuần tự usecase đăng ký tài khoản

Hình 3 9 Sơ đồ tuần tự usecase đăng nhập

Usecase quản lý tài khoản

Hình 3.10 Sơ đồ tuần tự usecase quản lý tài khoản

Usecase xem danh sách phòng trọ

Hình 3 11 Sơ đồ tuần tự usecase xem danh sách phòng trọ

Usecase xem chi tiết phòng trọ

Hình 3 12 Sơ đồ tuần tự usecase xem chi tiết phòng trọ

Usecase quan tâm phòng trọ

Hình 3.13 Sơ đồ tuần tự usecase quan tâm phòng trọ

Hình 3.14 Sơ đồ tuần tự usecase lưu phòng trọ

Usecase đánh giá phòng trọ

Hình 3.15 Sơ đồ tuần tự usecase đánh giá phòng trọ

Hình 3.16 Sơ đồ tuần tự usecase bình luận

Usecase kiểm tra tình trạng phòng trọ

Hình 3.17 Sơ đồ tuần tự usecase kiểm tra tình trạng phòng trọ

Usecase đặt cọc và thanh toán

Hình 3.18 Sơ đồ tuần tự usecase đặt cọc và thanh toán

Usecase xem lịch sử đặt phòng

Hình 3.19 Sơ đồ tuần tự usecase xem lịch sử đặt phòng

Usecase đăng ký trở thành chủ trọ

Hình 3.20 Sơ đồ tuần tự usecase đăng ký trở thành chủ trọ

Usecase tìm kiếm cơ bản

Hình 3.21 Sơ đồ tuần tự usecase tìm kiếm cơ bản

Hình 3.22 Sơ đồ tuần tự usecase lọc phòng trọ

Usecase tìm phòng trọ trên bản đồ

Hình 3.23 Sơ đồ tuần tự usecase tìm phòng trọ trên bản đồ

Usecase quản lý bài viết về phòng trọ

Hình 3.24 Sơ đồ tuần tự usecase quản lý bài viết về phòng trọ

Usecase trả lời thắc mắc của người dùng

Hình 3.25 Sơ đồ tuần tự usecase trả lời thắc mắc của người dùng

Usecase báo cáo bình luận

Hình 3.26 Sơ đồ tuần tự usecase báo cáo bình luận

Usecase xem trạng thái đặt phòng

Hình 3.27 Sơ đồ tuần tự usecase xem trạng thái đặt phòng

Usecase quản lý dịch vụ phòng trọ

Hình 3.28 Sơ đồ tuần tự usecase quản lý dịch vụ phòng trọ

Usecase quản lý người dùng và chủ trọ

Hình 3.29 Sơ đồ tuần tự usecase quản lý người dùng và chủ trọ

Usecase quản lý phòng trọ

Hình 3.30 Sơ đồ tuần tự usecase quản lý phòng trọ

Usecase ẩn hiện các bình luận được báo cáo

Hình 3.31 Sơ đồ tuần tự usecase ẩn hiện các bình luận được báo cáo

Usecase duyệt yêu cầu đăng ký trở thành chủ trọ

Hình 3.32 Sơ đồ tuần tự usecase duyệt yêu cầu đăng ký trở thành chủ trọ

Hình 3.33 Sơ đồ tuần tự usecase thống kê

Xem xét các lớp đã đề cập ở trên ta vẽ sơ đồ trạng thái của lớp trong các Usecase nổi bật

Sơ đồ trạng thái của lớp PhongTro trong Usecase đặt phòng trọ

Hình 3.34 Sơ đồ trạng thái lớp PhongTro trong usecase đặt phòng trọ

Sơ đồ trạng thái của lớp BinhLuan trong Usecase báo cáo bình luận

Hình 3.35 Sơ đồ trạng thái lớp BinhLuan trong usecase báo cáo bình luận

Sơ đồ trạng thái của lớp NguoiDung trong Usecase duyệt yêu cầu trở thành chủ trọ

Hình 3.36 Sơ đồ trạng thái lớp NguoiDung trong usecase duyệt yêu cầu trở thành chủ trọ

Sơ đồ trạng thái của lớp BinhLuan trong Usecase ẩn hiện các bình luận bị báo cáo

Hình 3.37 Sơ đồ trạng thái lớp BinhLuan trong usecase ẩn hiện các bình luận bị báo cáo

Thiết kế

3.2.1 Thiết kế chức năng xem danh sách phòng trọ Để xây dựng được chức năng này, đầu tiên ta tạo một controller mới có tên là HomeController, tạo một action là Index (Action là tên gọi của một hàm trong Controller) sau đó tiến hành tạo View cho action trên, khi người dùng điều hướng đến đường dẫn /Home/Index thì ứng dụng sẽ điều hướng đến action tương ứng ( routing ), từ đó action Index sẽ xử lý và hiển thị ra giao diện tương ứng, đó là luồng hoạt động của mô hình MVC trong NET Core Để hiển thị được danh sách của tất cả phòng trọ, ta sử dụng ajax để gọi đến một Action khác, ta đặt tên là GetAllPost, Action này nhận vào một chuỗi txtSearch trong trường hợp người dùng muốn lấy các bài viết về phòng trọ theo một điều kiện nào đó , ngoài ra Action còn nhận vào page, để phục vụ cho việc phân trang

Hình 3.38 Sử dụng ajax để gọi đến action GetAllPost lấy dữ liệu của tất cả các phòng trọ

Action sẽ sử dụng các phương thức từ repository tương ứng để lấy ra các thông tin cần thiết và trả về lại cho View

Trong hệ thống của chúng tôi, tất cả dữ liệu được truy xuất thông qua các repository, nơi đảm nhận các tương tác với cơ sở dữ liệu Chúng tôi chỉ cần gọi các phương thức trong repository phù hợp để lấy dữ liệu mà không cần quan tâm đến cách xử lý bên trong, áp dụng mô hình repository pattern để tách biệt logic truy cập dữ liệu Để quản lý toàn bộ các repository này một cách hiệu quả, chúng tôi sử dụng Unit of Work pattern, giúp điều phối các repository tương ứng với từng lớp DbSet trong Entity Framework, từ đó tối ưu hóa quá trình quản lý giao dịch và truy cập dữ liệu trong ứng dụng của mình.

Sau khi lấy ra được các dữ liệu cần cho View hiển thị, Action sẽ truyền lại View dưới dạng JSON

Hình 3.39 Action trả về View những thông tin cần thiết dưới dạng JSON

View sẽ hiển thị những thông tin này và ta sẽ có được giao diện danh sách các bài viết về phòng trọ

3.2.2 Thiết kế chức năng xem chi tiết phòng trọ

Trong quá trình phát triển ứng dụng, ta sẽ tạo hành động tên là Detail, nhận vào một đối số là id của phòng trọ Khi người dùng truy cập vào đường dẫn /Home/Detail/{id}, ứng dụng sẽ tự động điều hướng đến action Detail với tham số id của phòng trọ, giúp hiển thị dữ liệu phù hợp một cách dễ dàng và nhanh chóng.

Trong action này, chúng ta sẽ lấy các thông tin chi tiết của phòng trọ như hình ảnh, bình luận và trạng thái đặt phòng thông qua các repository Sau đó, dữ liệu được truyền tới view bằng cách sử dụng ViewBag cùng với phương thức View để hiển thị đầy đủ thông tin phòng trọ cho người dùng.

Ngoài ra giao diện chi tiết phòng trọ còn có thêm phần gợi ý phòng trọ, phần này được xây dựng dựa vào thư viện ML.NET của Microsoft Đầu tiên ta sẽ tiến hành tạo một Model nhằm thực hiện gợi ý ra các bài viết mà người dùng có thể sẽ thích

Khi bắt đầu tạo một Model, giao diện sẽ hiển thị từng bước để tiến hành khởi tạo, bước đầu tiên là chọn loại ngữ cảnh , ta chọn là gợi ý, ML.NET sẽ chọn ra thuật toán thích hợp để sử dụng trong ngữ cảnh này

Hình 3.40 Chọn Scenario cho Model là Recommendation

Tiếp theo là chọn nguồn dữ liệu, dữ liệu có thể là file hoặc dữ liệu trong cơ sở dữ liệu.,ta dựa vào dữ liệu đánh giá lấy được từ cơ sở dữ liệu để tiến hành train cho Model

Sau khi thiết lập thời gian huấn luyện cho Model, quá trình huấn luyện và đánh giá được tiến hành để đảm bảo hiệu quả của Model Trong mục Consume, giao diện hỗ trợ tạo Model cung cấp hai lựa chọn chính: tự động tạo một Project Console sử dụng Model đã huấn luyện hoặc tạo một Web API để truy cập và trả về kết quả từ Model Tuy nhiên, do gặp lỗi trong quá trình tạo Web API, tôi đã chọn phương án thứ nhất là tự động tạo một Project Console Đối với loại Consume là Console App, ML.NET sẽ tạo ra một Project dạng Console sử dụng Model đã huấn luyện để dự đoán dữ liệu mẫu một cách dễ dàng và nhanh chóng.

Chúng tôi sẽ sử dụng lớp dự đoán trong Project Console để lấy dữ liệu gợi ý phù hợp cho người dùng dựa trên bài viết đang hiển thị Nhờ đó, hệ thống có thể xây dựng một danh sách các bài viết liên quan được dự đoán chính xác bởi Model Quy trình này giúp nâng cao trải nghiệm người dùng bằng cách đề xuất nội dung phù hợp và liên quan nhất đến bài viết hiện tại.

Hình 3.42 Đoạn code sử dụng Model ta đã train để dự đoán phòng trọ mà người dùng sẽ thích

Để hiển thị giao diện xem chi tiết phòng trọ, chúng tôi tạo View tương ứng với Action Detail, trong đó các thông tin gửi từ Action được truyền qua ViewBag và model tương ứng Các dữ liệu này sau đó được sử dụng để hiển thị đầy đủ thông tin phòng trọ trên trang web một cách rõ ràng, sinh động Việc này giúp tối ưu trải nghiệm người dùng, nâng cao hiệu quả tìm kiếm và tiếp cận thông tin phòng trọ một cách dễ dàng và thuận tiện hơn.

Hình 3.43 Dữ liệu được truyền thông qua ViewBag và View

Hình 3.44 Lấy dữ liệu được action truyền qua View thông qua model và ViewBag

3.2.3 Thiết kế chức năng quan tâm phòng trọ Để xây dựng chức năng này, ta tạo một lớp PhongTroQuanTam chứa dữ liệu về id của phòng trọ và id của người dùng tương ứng đã quan tâm phòng trọ Sau đó tạo repository cho lớp này để có thể lấy dữ liệu dễ dàng từ Controller

Khi người dùng nhấn nút quan tâm trên danh sách phòng trọ hoặc trong giao diện xem chi tiết phòng trọ, hệ thống sẽ gửi yêu cầu AJAX đến Action QuanTamPhongTro trong controller Home Action này sẽ tạo một đối tượng PhongTroQuanTam chứa ID của người dùng đã thực hiện hành động.

70 quan tâm và id của phòng trọ tương ứng, thông qua repository để lưu đối tượng này vào cơ sở dữ liệu

Khi lưu thành công sẽ trả về kết quả lại cho View

Hình 3.46 Action trả kết quả về cho View dưới dạng JSON

Hệ thống sẽ hiển thị kết quả và tự động tăng số lượng quan tâm trên giao diện lên một đơn vị, đảm bảo chức năng quan tâm phòng trọ hoạt động hiệu quả Việc này giúp nâng cao trải nghiệm người dùng và tối ưu hóa quản lý quan tâm phòng trọ trên nền tảng Chúng tôi đã thành công trong việc thiết kế và triển khai chức năng quan tâm phòng trọ một cách chính xác và dễ sử dụng.

Hình 3.47 Thay đổi số lượng quan tâm trên giao diện của View lên 1 đơn vị

3.2.4 Thiết kế chức năng lưu phòng trọ

Tương tự như chức năng quan tâm thì để lưu được phòng trọ, ta tạo một lớp

PhongTroLuuTru, lớp này chứa thông tin về id của người dùng và id của phòng trọ tương ứng mà người dùng đã lưu trữ

Khi người dùng click vào nút lưu ở item phòng trọ mà người dùng muốn lưu trong giao diện hiển thị danh sách phòng trọ hoặc trong giao diện xem chi tiết phòng trọ

Ta sử dụng ajax để gọi đến Action SavePhongTro, action này cũng sẽ tạo một đối tượng PhongTroLuuTru và thông qua repository để lưu vào cơ sở dữ liệu, từ đó trả về kết quả cho View dưới dạng JSON

KẾT QUẢ VÀ KIẾN NGHỊ

Kết quả đạt được

Dựa trên cơ sở lý thuyết, phân tích bài toán và thiết kế chương trình đã trình bày ở các chương 2 và 3, dự án đã thành công xây dựng website tìm phòng trọ, cung cấp giải pháp hiệu quả giúp người dùng dễ dàng tìm kiếm và chọn lựa ngôi nhà phù hợp Website không chỉ tối ưu hóa trải nghiệm người dùng mà còn nâng cao khả năng kết nối giữa người thuê và chủ nhà, góp phần giải quyết bài toán tìm phòng trọ một cách nhanh chóng và tiện lợi.

4.1.1 Chức năng của người dùng:

4.1.1.1 Chức năng xem danh sách phòng trọ

Khi người dùng truy cập trang web lần đầu tiên, một giao diện hiển thị danh sách các phòng trọ đã được chủ trọ đăng tải sẽ xuất hiện Người dùng có thể dễ dàng xem qua danh sách này để tìm kiếm phòng phù hợp Nếu không tìm thấy trọ ưng ý, họ có thể nhấn chuyển sang trang tiếp theo để duyệt các phòng trọ khác Website của chúng tôi giúp quy trình tìm kiếm phòng trọ trở nên dễ dàng và thuận tiện hơn cho người dùng.

108 Hình 4.1 Giao diện xem danh sách phòng trọ

4.1.1.2 Chức năng xem chi tiết phòng trọ

Khi người dùng đã chọn được phòng trọ ưng ý của mình thì họ có thể click vào nút

“xem phòng trọ” tương ứng, giao diện xem chi tiết phòng trọ sẽ được hiển thị

Hình 4.2 Giao diện xem chi tiết phòng trọ

4.1.1.3 Chức năng quan tâm phòng trọ

Người dùng có thể dễ dàng quan tâm đến phòng trọ thông qua giao diện xem danh sách hoặc chi tiết phòng trọ Khi người dùng chọn quan tâm, số lượng người quan tâm đến phòng trọ đó sẽ được tự động cập nhật và tăng thêm, giúp chủ phòng trọ nắm bắt kapan keadaan quan tâm một cách chính xác và nhanh chóng.

Hình 4.3 Người dùng có thể chọn quan tâm phòng trọ ngay trên danh sách các phòng trọ đang được hiển thị

Hình 4.4 Người dùng có thể quan tâm phòng trọ trong giao diện xem chi tiết phòng trọ

4.1.1.4 Chức năng lưu phòng trọ

Người dùng có thể lưu phòng trọ từ giao diện danh sách phòng trọ hoặc trong trang xem chi tiết phòng Các phòng trọ đã lưu sẽ được hiển thị trong phần phòng trọ lưu trữ, giúp dễ dàng quản lý và truy cập sau này Việc lưu phòng trọ mang lại sự tiện lợi trong việc theo dõi các lựa chọn phù hợp với nhu cầu của người dùng.

Hình 4.5 Người dùng có thể lưu phòng trọ ở giao diện xem danh sách phòng trọ

Hình 4.6 Người dùng có thể lưu phòng trọ trong giao diện xem chi tiết phòng trọ

Hình 4.7 Giao diện xem danh sách các phòng trọ đã được lưu

4.1.1.5 Chức năng đánh giá phòng trọ

Người dùng có thể đánh giá phòng trọ trong giao diện xem chi tiết phòng trọ

Hình 4.8 Phần giao diện chức năng đánh giá phòng trọ

4.1.1.6 Chức năng bình luận phòng trọ

Người dùng có thể để lại bình luận vào phòng trọ trong giao diện chi tiết phòng Tất cả các chức năng bình luận yêu cầu người dùng phải đăng nhập để đảm bảo tính xác thực và bảo mật Việc này giúp tạo sự tương tác hiệu quả giữa chủ nhà và khách thuê, nâng cao trải nghiệm sử dụng nền tảng.

Hình 4.9 Phần giao diện chức năng bình luận

4.1.1.7 Chức năng đặt cọc và thanh toán Để đặt cọc phòng trọ, người dùng chọn đặt phòng trọ, giao diện thanh toán qua ví MoMo sẽ hiển thị, người dùng cần thanh toán 30% giá phòng để thực hiện đặt phòng

Hình 4.10 Giao diện thanh toán bằng MoMo

4.1.1.8 Chức năng kiểm tra tình trạng phòng trọ Để xem phòng trọ còn cho phép đặt phòng không thì người dùng chọn “Kiểm tra tình trạng trọ”, một thông báo sẽ được hiển thị để cho người dùng biết kết quả

Hình 4.11 Thông báo được hiển thị cho người dùng biết được tình trạng của phòng trọ

4.1.1.9 Chức năng xem lịch sử đặt phòng

Sau khi đặt xong phòng trọ thì người dùng có thể xem lại được lịch sử đặt phòng của mình

Hình 4.12 Giao diện xem lịch sử đặt phòng

4.1.1.10 Chức năng đăng ký trở thành chủ trọ

Hình 4.13 Phần giao diện đăng ký trở thành chủ trọ

4.1.1.11 Chức năng đăng ký tài khoản Để sử dụng các chức năng đầy đủ của trang web, người dùng có thể tạo tài khoản thông qua email, tài khoản Google hoặc Facebook

Hình 4.14 Giao diện đăng ký tải khoản

Hình 4.15 Giao diện đăng ký tải khoản bằng Google

Hình 4.16 Giao diện đăng ký tài khoản bằng Facebook

Người dùng có thể đăng nhập vào trang web bằng các tài khoản đã đăng ký

Hình 4.17 Giao diện đăng nhập

4.1.1.13 Chức năng quản lý tài khoản Để quản lý tài khoản, người dùng click vào phần hiển thị lời chào người dùng hiện tại của người dùng đang đăng nhập, một giao diện quản lý tài khoản sẽ được hiển thị

Hình 4.18 Giao diện quản lý thông tin người dùng

4.1.1.14 Chức năng tìm kiếm cơ bản Để tìm kiếm phòng trọ mong muốn, người dùng có thể tìm kiếm thông qua thanh tìm kiếm

Hình 4.19 Giao diện nhập thông tin tìm kiếm

4.1.1.15 Chức năng lọc phòng trọ

Người dùng cũng có thể lọc phòng trọ để lấy ra những phòng trọ theo mong muốn

Hình 4.20 Giao diện nhập các thông tin để lọc phòng trọ

4.1.1.16 Chức năng tìm kiếm trên bản đồ Đây là chức năng nổi bật của chương trình, người dùng có thể cài đặt các điều kiện tìm kiếm như bán kính, giá, số người ở Sau đó có thể nhập vào một địa điểm người dùng muốn tìm trọ xung quanh, các phòng trọ xung quanh sẽ được hiển thị lên bản đồ nếu có

Hình 4.21 Giao diện tìm kiếm phòng trọ trên bản đồ

4.1.2 Chức năng của chủ trọ

4.1.2.1 Chức năng quản lý bài viết về phòng trọ

Chủ trọ thực hiện viết bài, chỉnh sửa, xoá bài viết về phòng trọ trong giao diện này

Hình 4.22 Giao diện hiển thị các bài viết chủ trọ đã viết

122 Hình 4.23 Giao diện thêm bài viết mới về phòng trọ

123 Hình 4.24 Giao diện chỉnh sửa bài viết

Hình 4.25 Thông báo hiển thị xác nhận xoá phòng trọ

4.1.2.2 Chức năng trả lời thắc mắc của người dùng

Chức năng này giống như bình luận nhưng đặc biệt dành cho chủ trọ, khi chủ trọ bình luận vào bài viết của mình, tên của họ sẽ được hiển thị kèm theo cụm từ "chủ trọ" phía sau, giúp phân biệt rõ ràng với các bình luận khác.

Hình 4.26 Phần giao diện bình luận với tư cách là chủ trọ

4.1.2.3 Chức năng báo cáo bình luận Để báo cáo bình luận, người dùng chọn report, một thông báo sẽ được hiển thị thông báo rằng người dùng đã báo cáo thành công

Hình 4.27 Thông báo đã bao cáo bình luận thành công

4.1.2.4 Chức năng xem trạng thái đặt phòng

Chủ trọ có thể xem được số lượng người dùng đã đặt trọ của mình thông qua giao diện

Hình 4.28 Giao diện xem trạng thái đặt phòng của phòng trọ

4.1.3.1 Chức năng quản lý dịch vụ phòng trọ

Admin có thể quản lý các dịch vụ mà chủ trọ có thể chọn khi tạo phòng trọ mới

Hình 4.29 Giao diện quản lý dịch vụ phòng trọ

4.1.3.2 Chức năng quản lý người dùng và chủ trọ

Tất cả những người dùng và chủ trọ đã đăng ký tài khoản sẽ được quản lý ở 2 giao diện là quản lý người dùng và quản lý chủ trọ

Hình 4.30 Giao diện quản lý người dùng

Hình 4.31 Giao diện quản lý chủ trọ

4.1.3.3 Chức năng quản lý phòng trọ

Các phòng trọ được người dùng tạo đều sẽ được quản lý trong giao diện quản lý phòng trọ này

Hình 4.32 Giao diện quản lý phòng trọ

4.1.3.4 Chức năng ẩn hiện các bình luận được báo cáo

Các bình luận được chủ trọ và người dùng báo cáo sẽ được admin cho phép hiển thị hoặc ẩn đi thông qua giao diện này

Hình 4.33 Giao diện quản lý các bình luận được báo cáo

4.1.3.5 Chức năng duyệt yêu cầu đăng ký trở thành chủ trọ

Các người dùng đã đăng ký trở thành chủ trọ sẽ được hiển thị thành danh sách và admin có thể duyệt để người dùng có thể trở thành chủ trọ

Hình 4.34 Giao diện duyệt người dùng đăng ký trở thành chủ trọ

Các thống kê về mức độ quan tâm và số lượng bình luận về các phòng trọ theo từng quận sẽ được trình bày dưới dạng biểu đồ trực quan, giúp quản trị viên dễ dàng theo dõi và phân tích.

Hình 4.35 Giao diện thống kê

Kiến nghị

4.2.1 Những kiến thức học được

Trong quá trình phát triển trang web, em đã nhận được sự hỗ trợ từ thầy Dũ từ giai đoạn lên ý tưởng đến khi bắt tay vào viết mã chương trình Em đã tích lũy nhiều kiến thức bổ ích, bao gồm kỹ năng sử dụng ASP.NET Core MVC và Entity Framework Core để xây dựng trang web, cũng như tích hợp Goong Maps API để hiển thị bản đồ, tính toán khoảng cách và lấy tọa độ địa lý.

Học cách sử dụng thư viện ML.NET để xây dựng mô hình máy học phù hợp, giúp cung cấp chức năng gợi ý phòng trọ trên website một cách hiệu quả 130 độ của địa điểm… là yếu tố quan trọng trong việc tối ưu hóa quá trình đề xuất, đảm bảo khách hàng nhận được những gợi ý phù hợp nhất Việc áp dụng ML.NET vào dự án giúp cải thiện độ chính xác của hệ thống gợi ý, nâng cao trải nghiệm người dùng và tăng khả năng cạnh tranh của trang web trong thị trường bất động sản trực tuyến.

Em còn nâng cao được tinh thần làm việc kỷ luật, khoa học và hơn hết là khả năng tự học, tự nghiên cứu

4.2.2 Những hạn chế cần khắc phục

Trang web sau khi được xây dựng đã hoàn thiện các chức năng theo kế hoạch thiết kế, đảm bảo đáp ứng các yêu cầu ban đầu Tuy nhiên, vẫn còn nhiều hạn chế cần khắc phục nhằm nâng cao trải nghiệm người dùng và tối ưu hóa hiệu suất hoạt động của trang Việc tiếp tục cải tiến và chỉnh sửa sẽ giúp trang web phát triển toàn diện hơn, đáp ứng tốt hơn nhu cầu của khách hàng.

Trang web vẫn đang lưu trữ dữ liệu cục bộ và chưa được host lên server, khiến người dùng chưa thể truy cập và sử dụng dịch vụ một cách dễ dàng Việc lưu trữ dữ liệu hiệu quả và triển khai trên server công cộng là bước quan trọng để mở rộng khả năng truy cập và nâng cao trải nghiệm cho người dùng Các bước tối ưu hóa lưu trữ dữ liệu và chuyển sang hosting chính thức sẽ giúp đảm bảo tính ổn định, bảo mật và truy cập linh hoạt hơn cho trang web.

Dữ liệu vẫn chỉ đang ở mức sơ khai, rất ít Bởi vì dữ liệu hạn chế nên khi train mô hình máy học để phục vụ cho tính năng gợi ý phòng trọ, kết quả đạt được sẽ không được tốt như mong đợi

Ngoài ra về mặt đăng ký tài khoản, việc xác nhận email của người dùng chỉ đang mang tính chất hình thức, vì chưa có máy chủ mail để có thể gửi email xác nhận về cho người dùng

Em hy vọng trong tương lai, bằng những kiến thức tích lũy được, tôi có thể hạn chế và khắc phục những nhược điểm đã đề cập.

Ngày đăng: 01/08/2023, 14:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w