Bối cảnh và vấn đề nghiên cứu

Trong tiến trình đô thị hóa và phát triển kinh tế - xã hội tại Việt Nam, mật độ dân cư và lực lượng lao động tại các đô thị lớn không ngừng gia tăng. Nhu cầu tìm kiếm chỗ ở như phòng trọ, căn hộ chung cư, nhà nguyên căn hoặc mặt bằng kinh doanh gần địa điểm học tập và làm việc trở thành một nhu cầu thiết yếu thường trực. Phương thức tiếp cận truyền thống trước đây chủ yếu thông qua tờ rơi quảng cáo dán tại nơi công cộng hoặc qua mạng lưới môi giới tự do. Các hình thức này bộc lộ nhiều điểm hạn chế: hiệu quả tiếp cận thấp, gây mất mỹ quan đô thị, lãng phí thời gian và làm phát sinh nhiều chi phí trung gian không cần thiết cho cả người thuê lẫn người cho thuê.

Từ thực tiễn đó, tác giả Trần Ngọc Hoàng (Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) đã thực hiện khóa luận tốt nghiệp kỹ sư ngành Công nghệ Thông tin, chuyên ngành Hệ thống Thông tin với đề tài: "Xây dựng Website tìm kiếm nhà trọ với Spring Boot và React" dưới sự hướng dẫn của ThS. Lê Thị Minh Châu. Khóa luận hướng đến việc thiết lập một nền tảng trực tuyến kết nối trực tiếp hai nhóm đối tượng: người có nhu cầu thuê và người có bất động sản cần cho thuê, tối ưu hóa các thủ tục đăng tin và giao dịch tài chính.

Căn cứ theo đề cương và văn bản khóa luận, các nhiệm vụ nghiên cứu được xác định cụ thể như sau:

  1. Nhiệm vụ 1: Luyện tập kỹ năng tổng hợp và hệ thống hóa kiến thức chuyên ngành đã tích lũy trong toàn bộ chương trình đào tạo.
  2. Nhiệm vụ 2: Rèn luyện tư duy độc lập, nâng cao năng lực thực hành kỹ thuật lập trình và tính tự chủ trong việc triển khai dự án công nghệ thông tin.
  3. Nhiệm vụ 3: Vận dụng các công nghệ tiêu chuẩn trong xây dựng ứng dụng thực tế, bao gồm: Spring Boot cho khối dịch vụ phía sau (Back-end), ReactJS cho giao diện phía trước (Front-end), hệ quản trị cơ sở dữ liệu quan hệ MySQL, cùng các giải pháp lưu trữ hình ảnh trên nền tảng đám mây và liên kết lưu trữ video.
  4. Nhiệm vụ 4: Xây dựng hoàn chỉnh website kết nối người dùng với các nhóm tính năng cốt lõi:
    • Người tìm kiếm: Đăng ký tài khoản, tìm kiếm và lọc bất động sản theo đa tiêu chí (địa chỉ, mức giá, diện tích, tiện ích).
    • Người cho thuê: Đăng ký tài khoản, khởi tạo bài đăng với đầy đủ thông tin chi tiết, tùy chọn các gói bài đăng ưu tiên theo biểu phí quy định và thanh toán trực tuyến thuận tiện.
    • Quản trị viên (Admin): Duyệt hoặc từ chối bài viết kèm lý do cụ thể, quản trị danh sách người dùng và phát hành mã giảm giá cho hệ thống bài đăng.
    • Người đăng tin: Quản lý vòng đời bài viết (chỉnh sửa, ẩn, xóa), gộp các bài đăng vào giỏ tin và thực hiện thanh toán trực tuyến một lần.

Về đối tượng và phạm vi nghiên cứu:

  • Đối tượng sử dụng hệ thống: Khách vãng lai, người dùng đã đăng ký tài khoản (người thuê và người cho thuê) và quản trị viên hệ thống.
  • Đối tượng khảo sát nghiệp vụ: Khảo sát 5 đến 6 nền tảng cung cấp thông tin bất động sản trực tuyến đang vận hành tại Việt Nam, trong đó chọn website batdongsan.vn làm nguồn khảo sát đối sánh chính để phân tích quy trình nghiệp vụ và thiết kế giao diện.
  • Phạm vi công nghệ: Kiến trúc Back-end xây dựng trên nền tảng Spring Boot (Web API); Client-side sử dụng thư viện ReactJS kết hợp Redux; hệ quản trị cơ sở dữ liệu quan hệ MySQL; dịch vụ lưu trữ hình ảnh đám mây AWS S3; lưu trữ video thông qua nhúng liên kết YouTube; cổng thanh toán trực tuyến VNPay.
  • Phạm vi thời gian thực hiện: Toàn bộ quá trình từ khảo sát nghiệp vụ, phân tích thiết kế, lập trình đến viết báo cáo diễn ra từ ngày 22/08/2022 đến ngày 18/12/2022.

Cơ sở lý thuyết và phương pháp

Khóa luận thuộc loại hình nghiên cứu ứng dụng và xây dựng hệ thống phần mềm, tích hợp mô hình phân tích thiết kế hệ thống thông tin với các công nghệ web hiện đại.

Cơ sở lý thuyết và mô hình kiến trúc sử dụng trong đề tài bao gồm:

  • Kiến trúc phân tầng tách biệt giữa máy khách (Client-Side) và máy chủ (Server-Side): Hệ thống giao tiếp thông qua giao thức truyền thông HTTP và định dạng dữ liệu Web API (RESTful API), đảm bảo tính độc lập và khả năng mở rộng của từng thành phần.
  • Quản trị trạng thái tập trung phía giao diện người dùng: Vận dụng mô hình luồng dữ liệu một chiều của Redux (Action -> Reducer -> Store -> View) để xử lý trạng thái hiển thị và đồng bộ dữ liệu trên toàn bộ các trang màn hình.
  • Mô hình cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS): Chuẩn hóa dữ liệu logic thành các bảng quan hệ khóa chính - khóa ngoại, kiểm soát toàn vẹn dữ liệu giao dịch và thông tin định danh người dùng.

Phương pháp nghiên cứu thực tế được tác giả triển khai:

  • Phương pháp khảo sát và đối sánh thực nghiệm: Tiến hành khảo sát thực tế cấu trúc và tính năng của 5 đến 6 website giao dịch bất động sản hiện có. Tác giả chỉ ra ưu điểm của website tham chiếu chính (batdongsan.vn) ở các bộ lọc địa điểm, khoảng giá, diện tích và cơ chế bài viết ưu tiên; đồng thời phát hiện hạn chế lớn trong quy trình thanh toán (bắt buộc người dùng phải nạp tiền vào tài khoản nội bộ trước khi thanh toán bài đăng, tạo sự rườm rà). Từ đó, tác giả đề xuất giải pháp thanh toán đơn hàng trực tiếp qua cổng VNPay.
  • Phương pháp mô hình hóa hướng đối tượng bằng UML: Sử dụng Biểu đồ ca sử dụng (Use Case Diagram) để đặc tả 16 ca sử dụng từ tổng quát đến chi tiết, cùng Biểu đồ hoạt động (Activity Diagram) để làm rõ 10 luồng nghiệp vụ tương tác giữa người dùng và hệ thống.
  • Nguồn dữ liệu: Dữ liệu phân tích nghiệp vụ, các tham số thuộc tính nhà trọ (loại hình, tiện ích nội thất, hướng nhà, ban công, chi phí) và các đặc tả API kết nối với dịch vụ thanh toán VNPay, dịch vụ lưu trữ đám mây AWS S3.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc hướng dịch vụ web với sự phân định rõ ràng giữa các tầng công nghệ:

Tầng hệ thống Công nghệ / Nền tảng áp dụng Chức năng đảm nhiệm
Giao diện người dùng (Front-end) ReactJS, Redux, HTML5, CSS3, JavaScript Tiếp nhận tương tác, điều hướng trang, kết xuất giao diện lọc động, hiển thị modal tra cứu và quản lý state tập trung
Xử lý nghiệp vụ (Back-end) Spring Boot, Web API (Java) Đóng gói thực thể (package entity), kiểm tra quyền hạn, tính toán chi phí đăng tin, quản lý giao dịch thanh toán và cung cấp API
Cơ sở dữ liệu MySQL Lưu trữ toàn bộ thông tin tài khoản, cấu hình chi phí, mã khuyến mãi, đơn hàng và thuộc tính bất động sản
Lưu trữ đa phương tiện Amazon Web Services (AWS S3) & YouTube AWS S3 lưu trữ các tệp tin hình ảnh tải lên; YouTube đảm nhiệm lưu trữ và phát video qua liên kết nhúng
Xử lý thanh toán Cổng thanh toán trực tuyến VNPay Cung cấp cổng chuyển hướng thanh toán hóa đơn bằng tài khoản ngân hàng trực tiếp cho đơn đăng tin

Cơ sở dữ liệu của hệ thống được chuẩn hóa thành 15 bảng thực thể, thể hiện đầy đủ cấu trúc quan hệ logic phục vụ nghiệp vụ sàn giao dịch bất động sản:

Tên bảng CSDL Mục đích và nội dung lưu trữ
Accommodation Lưu trữ thông tin chi tiết của bất động sản (địa chỉ, mức giá, diện tích, hướng nhà, hướng ban công, các tiện ích internet, chỗ đỗ xe, điều hòa, máy nóng lạnh...)
Cart Đại diện cho giỏ tin lưu các bài đăng đã chọn của từng người dùng trước khi tiến hành thanh toán
Cart_detail Lưu thông tin chi tiết từng bài viết nằm trong giỏ tin
Discount Lưu trữ thông tin mã giảm giá (tên mã, tỷ lệ/giá trị giảm, thời hạn áp dụng)
Exp_dis Bảng liên kết trung gian giữa biểu phí (Expense) và mã giảm giá (Discount)
Expense Định nghĩa các gói bài đăng theo độ ưu tiên cùng bảng giá tương ứng cho từng gói
Image Lưu trữ các đường dẫn hình ảnh của bài viết được đẩy lên dịch vụ AWS S3
Payment Lưu trữ thông tin đơn thanh toán (mã thanh toán, ngày tạo đơn, tổng tiền, trạng thái giao dịch)
Payment_detail Lưu trữ thông tin chi tiết các bài viết thuộc về một đơn thanh toán cụ thể
Post Quản lý bài đăng (tiêu đề, mô tả, ngày bắt đầu, ngày kết thúc, trạng thái duyệt, trạng thái hiển thị, độ ưu tiên)
Role Lưu trữ danh mục vai trò người dùng trong hệ thống (người dùng thông thường, quản trị viên)
Typeofacc Danh mục loại hình bất động sản cho thuê (phòng trọ, căn hộ, nhà nguyên căn, mặt bằng...)
User Lưu trữ hồ sơ định danh (họ tên, email, mật khẩu, tên tài khoản, số điện thoại, thông tin liên hệ, thông tin xuất hóa đơn)
User_role Bảng liên kết giữa người dùng và vai trò để phân quyền truy cập chức năng
Video Lưu trữ liên kết video đính kèm bài viết được lưu trữ trên YouTube

Nội dung chính theo từng chương

Phần 1: Mở đầu

Tác giả trình bày tính cấp thiết của việc số hóa lĩnh vực tìm kiếm bất động sản cho thuê trong bối cảnh các đô thị lớn đón nhận lượng người nhập cư cao. Phần này làm rõ mục đích nghiên cứu, 4 nhiệm vụ trọng tâm của khóa luận, định vị các nhóm đối tượng phục vụ và xác lập phạm vi công nghệ cùng kế hoạch tiến độ thực hiện gồm 8 giai đoạn từ ngày 22/08/2022 đến ngày 03/12/2022.

Chương 1: Khảo sát hiện trạng

Chương này tập trung đánh giá thực trạng các nền tảng cho thuê nhà trọ trực tuyến tại Việt Nam thông qua khảo sát thực tế 5 - 6 trang web. Tác giả phân tích chi tiết website batdongsan.vn để rút ra bài học thiết kế:

  • Ưu điểm: Thanh điều hướng nhóm bài viết rõ ràng, bộ hỗ trợ tìm kiếm trực quan; danh sách hiển thị phân biệt rõ mức độ ưu tiên của tin đăng; trang chi tiết cung cấp đầy đủ hình ảnh, video, thông số kỹ thuật (diện tích, phòng ngủ, tiện nghi) và thông tin liên hệ của chủ nhà; hệ thống quản lý trang cá nhân hỗ trợ cập nhật dữ liệu tài khoản, đổi mật khẩu và xuất hóa đơn.
  • Hạn chế: Cơ chế thanh toán phụ thuộc vào thao tác nạp tiền trung gian vào ví tài khoản mới được trả phí đăng tin, gây phiền toái cho người dùng.

Dựa trên kết quả khảo sát, tác giả xác lập các nhóm yêu cầu chức năng cho website mới:

  • Lưu trữ: Hồ sơ người dùng, thông tin bài viết, độ ưu tiên bài đăng, tiện ích bất động sản, loại bất động sản, giỏ tin, đơn thanh toán và dữ liệu tệp đa phương tiện.
  • Tính toán: Tính tổng chi phí đăng tin dựa trên số ngày và độ ưu tiên bài viết; tính toán số tiền thực trả sau khi áp dụng mã giảm giá.
  • Kết xuất: Trả về kết quả xác nhận đơn hàng và lịch sử giao dịch.
  • Tư vấn và Quản lý: Hiển thị thông tin bài viết; quản lý tài khoản người dùng, quản lý trạng thái bài đăng và quản trị mã giảm giá.

Chương 2: Mô hình hóa yêu cầu và thiết kế cơ sở dữ liệu

Nội dung chương 2 đặc tả toàn diện hệ thống bằng các công cụ mô hình hóa phần mềm:

  • Biểu đồ Use Case: Xây dựng biểu đồ use case tổng quát cùng các use case chi tiết: người dùng tạo bài viết (nhập thông tin, số ngày đăng, chọn mã giảm giá); quản trị viên duyệt bài (xem thông tin, duyệt hoặc gửi lý do từ chối); người dùng quản lý bài viết (sửa bài, ẩn bài, xóa bài, thêm vào giỏ tin); tạo đơn thanh toán và thanh toán qua VNPay; xem lịch sử giao dịch; quản lý mã giảm giá; quản lý tài khoản thành viên; hiển thị và xem chi tiết bài viết kèm gợi ý các bài đăng tương tự trong cùng phường/xã.
  • Biểu đồ Activity: Mô hình hóa 10 tiến trình nghiệp vụ chính xác từng bước, bao gồm: đăng ký thành viên, đăng nhập hệ thống, tạo bài viết, thanh toán chi phí, quản lý trạng thái bài viết, xem lịch sử thanh toán, chỉnh sửa thông tin cá nhân, quản lý mã giảm giá, xem thông tin bài viết và quản lý tài khoản.
  • Thiết kế cơ sở dữ liệu: Trình bày sơ đồ tổng quan cơ sở dữ liệu và chi tiết cấu trúc thuộc tính của 15 bảng (Accommodation, Cart, Cart_detail, Discount, Exp_dis, Expense, Image, Payment, Payment_detail, Post, Role, Typeofacc, User, User_role, Video).

Chương 3: Công nghệ

Chương 3 giới thiệu cơ sở kỹ thuật và công nghệ được lựa chọn triển khai cho đồ án:

  • Ngôn ngữ lập trình và Framework: Ứng dụng Spring Boot cho máy chủ dịch vụ; ReactJS xây dựng giao diện người dùng dựa trên cấu trúc component; thư viện Redux đảm nhiệm việc quản lý và luân chuyển state của ứng dụng.
  • Nền tảng lưu trữ ngoại vi: Tích hợp dịch vụ lưu trữ đối tượng AWS S3 để tiếp nhận và lưu trữ tệp hình ảnh tải lên từ máy khách; sử dụng nền tảng YouTube để lưu trữ video nhằm giảm tải lưu lượng trực tiếp cho máy chủ web.
  • Hệ quản trị cơ sở dữ liệu: Lựa chọn MySQL làm hệ thống lưu trữ dữ liệu quan hệ chính của đề tài.

Chương 4: Thiết kế giao diện và xử lý

Chương này minh họa và mô tả chi tiết các màn hình chức năng của website:

  • Trang chủ và điều hướng: Header chứa thanh điều hướng; hệ thống modal lọc động theo vị trí địa chỉ (tỉnh/thành, quận/huyện), khoảng giá thuê, khoảng diện tích, loại bất động sản và các tiêu chí tiện ích bổ sung; khu vực nội dung hiển thị danh sách tin đăng kèm cơ chế phân trang.
  • Trang chi tiết bài đăng: Hiển thị bộ sưu tập hình ảnh, khung video nhúng, thông số kỹ thuật, bảng giá, tiện ích và thông tin liên hệ của chủ tin đăng; đề xuất danh sách bài viết tương tự trong cùng khu vực địa lý.
  • Trang tạo bài viết và giỏ tin: Giao diện nhập liệu thông tin cơ bản, chọn tiện ích, tải lên ảnh/video, thiết lập thời gian đăng tin, áp dụng mã khuyến mãi và thông báo trạng thái đưa bài vào giỏ tin thành công hay thất bại.
  • Trang quản lý bài viết phía người dùng: Hỗ trợ lọc tin theo ngày, loại bất động sản, loại bài viết, tỉnh thành, quận huyện; quản lý các bài viết theo 6 trạng thái nghiệp vụ: Chờ duyệt, Không duyệt (kèm lý do), Chờ thanh toán, Chờ hiển thị, Đang hiển thị, Hết hạn.
  • Trang thanh toán và giao dịch: Giao diện tóm tắt đơn thanh toán, màn hình kết nối cổng thanh toán VNPay, xác nhận giao dịch thành công và bảng tra cứu lịch sử giao dịch.
  • Trang quản trị (Admin): Màn hình duyệt bài viết (phê duyệt hoặc gửi lý do từ chối); giao diện tạo mới, chỉnh sửa, xóa mã giảm giá; giao diện quản lý danh sách thành viên và vô hiệu hóa tài khoản vi phạm.

Chương 5: Xử lý Back-end

Tác giả trình bày phương thức hiện thực hóa khối xử lý nghiệp vụ phía máy chủ:

  • Khái niệm và nguyên lý hoạt động của Web API trong môi trường mạng.
  • Cấu hình và khởi tạo dự án Spring Boot.
  • Xây dựng mô hình thực thể (package entity) tương ứng với 15 bảng trong cơ sở dữ liệu, đồng bộ hóa các quan hệ dữ liệu và cung cấp các endpoint API phục vụ việc trao đổi thông tin với ứng dụng ReactJS.

Phần 3: Kết luận

Tổng kết các kết quả đạt được về mặt chức năng và ứng dụng công nghệ, chỉ ra các hạn chế trong quá trình xây dựng và vạch ra định hướng nâng cấp hệ thống trong tương lai.


Kết quả và đóng góp

Khóa luận đã hoàn thành các mục tiêu kỹ thuật và yêu cầu chức năng đặt ra theo kế hoạch công tác từ tháng 8 đến tháng 12 năm 2022:

  • Xây dựng thành công ứng dụng web hoàn chỉnh: Vận dụng đồng bộ kiến trúc Spring Boot (Back-end Web API) và ReactJS kết hợp Redux (Front-end), liên kết cơ sở dữ liệu MySQL 15 bảng đáp ứng đầy đủ chu trình nghiệp vụ tìm kiếm và đăng tin nhà trọ.
  • Triển khai cơ chế phân quyền 3 cấp độ: Khách vãng lai (tìm kiếm, lọc đa tiêu chí, xem chi tiết tin); Người dùng đăng tin (tạo bài viết, quản lý bài đăng theo 6 trạng thái, thêm bài vào giỏ tin, thanh toán); Quản trị viên (kiểm duyệt tin kèm phản hồi lý do từ chối, phát hành mã giảm giá, quản trị tài khoản người dùng).
  • Khắc phục nhược điểm của hệ thống tham chiếu: Đã thay thế quy trình nạp tiền vào ví trung gian phiền phức của batdongsan.vn bằng giải pháp thanh toán trực tiếp đơn hàng thông qua cổng thanh toán VNPay, cho phép gom nhiều bài đăng trong giỏ tin để thanh toán đồng thời.
  • Tối ưu hóa lưu trữ đa phương tiện: Phối hợp hiệu quả giữa dịch vụ đám mây AWS S3 cho hình ảnh và liên kết nhúng YouTube cho video, giúp hệ sinh thái bài đăng trực quan mà vẫn tối ưu được tài nguyên máy chủ.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài:

  • Do thời gian thực hiện đề tài tốt nghiệp có giới hạn (khoảng 4 tháng), hệ thống vẫn còn một số thiếu sót mang tính khách quan trong việc hoàn thiện các tính năng nâng cao.
  • Khóa luận chưa triển khai các thuật toán tự động lọc bài trùng lặp hoặc cơ chế đánh giá độ uy tín người dùng nâng cao bằng máy học.

Hướng phát triển tiếp theo được đề cập:

  • Hoàn thiện thêm các chức năng tương tác đa chiều giữa người thuê và người cho thuê (như hệ thống chat trực tiếp hoặc lịch hẹn xem phòng).
  • Tối ưu hóa hiệu năng của các API xử lý giao dịch và tăng cường các công cụ thống kê doanh thu, lưu lượng tương tác cho người đăng bài và người quản trị.

Giá trị tham khảo

Khóa luận tốt nghiệp của tác giả Trần Ngọc Hoàng là nguồn tư liệu tham khảo hữu ích cho:

  • Sinh viên chuyên ngành Công nghệ Thông tin, Hệ thống Thông tin, Kỹ thuật Phần mềm đang thực hiện đồ án môn học hoặc khóa luận tốt nghiệp về xây dựng hệ thống thương mại điện tử, cổng thông tin rao vặt bất động sản.
  • Những người phát triển ứng dụng cần tham khảo mô hình kiến trúc phân tầng kết hợp giữa Spring Boot (Web API) và ReactJS (Redux).
  • Các nhà phân tích hệ thống muốn nghiên cứu quy trình phân tích ca sử dụng chi tiết (16 biểu đồ ca sử dụng, 10 biểu đồ hoạt động) và mô hình cơ sở dữ liệu quan hệ chuẩn hóa xử lý bài đăng nhiều trạng thái kết hợp giỏ hàng và tích hợp cổng thanh toán trực tuyến (VNPay).

Câu hỏi thường gặp

1. Khóa luận đã khắc phục hạn chế nào của website tham khảo batdongsan.vn?
Website tham khảo batdongsan.vn buộc người dùng phải nạp tiền vào tài khoản hệ thống trước rồi mới dùng số dư đó để thanh toán phí đăng bài. Đề tài đã khắc phục nhược điểm này bằng cách xây dựng tính năng giỏ tin và tích hợp cổng VNPay, cho phép người dùng thanh toán trực tiếp đơn hàng bằng thẻ ngân hàng ngay khi tạo bài đăng.

2. Vòng đời của bài viết trên hệ thống trải qua những trạng thái cụ thể nào?
Bài viết trong hệ thống được quản lý qua 6 trạng thái: "Chờ duyệt" (sau khi người dùng tạo tin hoặc chỉnh sửa tin), "Không duyệt" (khi bị quản trị viên từ chối kèm lý do phản hồi), "Chờ thanh toán" (sau khi bài viết được duyệt hợp lệ), "Chờ hiển thị" (đã thanh toán thành công nhưng chưa tới ngày bắt đầu đăng), "Đang hiển thị" (trong thời gian đăng tin hợp lệ), và "Hết hạn" (khi kết thúc số ngày đăng tin).

3. Dữ liệu hình ảnh và video của bài đăng được lưu trữ ở đâu?
Hệ thống không lưu trữ tệp đa phương tiện trực tiếp trên máy chủ web. Toàn bộ hình ảnh tải lên được đẩy và lưu trữ trên dịch vụ đám mây AWS S3 (liên kết lưu ở bảng Image), còn video được lưu trữ trên nền tảng YouTube và người dùng nhúng đường dẫn vào bài đăng (liên kết lưu ở bảng Video).

4. Cơ sở dữ liệu của website gồm những bảng thực thể nào để quản lý chi phí và khuyến mãi?
Hệ thống sử dụng bảng Expense để lưu thông tin về các gói bài đăng theo độ ưu tiên cùng mức phí tương ứng, bảng Discount để lưu thông tin mã giảm giá, và bảng trung gian Exp_dis để liên kết việc áp dụng mã giảm giá cụ thể cho từng loại chi phí/gói bài đăng.

5. Người dùng có được sửa bài viết sau khi quản trị viên đã phê duyệt không?
Theo đặc tả use case sửa bài viết của khóa luận, người dùng chỉ được sửa thông tin bài viết khi bài đã được quản trị viên duyệt nhưng chưa thực hiện thanh toán. Nếu người dùng tiến hành sửa thông tin tại thời điểm này, bài viết sẽ tự động chuyển về trạng thái "Chờ duyệt" để quản trị viên kiểm tra lại.


Kết luận

Khóa luận tốt nghiệp "Xây dựng Website tìm kiếm nhà trọ với Spring Boot và React" của sinh viên Trần Ngọc Hoàng đã giải quyết thành công bài toán kết nối giữa người có nhu cầu thuê và người cho thuê bất động sản. Đề tài thể hiện phương pháp tiếp cận bài bản từ khảo sát hiện trạng thực tế, mô hình hóa nghiệp vụ bằng UML đến thiết kế cơ sở dữ liệu quan hệ 15 bảng chuẩn hóa. Việc tích hợp đồng bộ các công nghệ hiện đại gồm Spring Boot, ReactJS, Redux, AWS S3 và cổng thanh toán VNPay đã mang lại một sản phẩm phần mềm có tính ứng dụng cao, cung cấp tài liệu tham khảo giá trị cho các đồ án phát triển ứng dụng web dịch vụ.