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

Quá trình đô thị hóa nhanh chóng tại các trung tâm kinh tế và giáo dục lớn dẫn đến nhu cầu tìm kiếm nhà ở, đặc biệt là phòng trọ, không ngừng gia tăng. Các nhóm đối tượng chính như sinh viên, người lao động ngoại tỉnh và những người có thu nhập trung bình hoặc thấp thường xuyên gặp nhiều trở ngại trong việc tiếp cận nguồn thông tin phòng trọ đáng tin cậy. Các phương thức tìm kiếm truyền thống như thông qua người môi giới, đọc tin từ tờ rơi dán nơi công cộng hay các kênh mạng xã hội tự phát bộc lộ nhiều hạn chế nghiêm trọng: tốn kém thời gian, chi phí trung gian cao, tiềm ẩn rủi ro lừa đảo, thông tin thiếu đồng nhất, sai lệch về vị trí, giá cả và chất lượng cơ sở vật chất. Trước thực trạng đó, khóa luận tốt nghiệp kỹ sư ngành Công nghệ Thông tin với đề tài "Xây dựng website tìm trọ" của tác giả Phan Thanh Hậu và Huỳnh Nguyễn Anh Trí, dưới sự hướng dẫn của ThS. Nguyễn Thủy An tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (khóa 2021 - 2025), đã được thực hiện nhằm xây dựng một giải pháp phần mềm trực tuyến hỗ trợ kết nối trực tiếp, minh bạch giữa người thuê và người cho thuê.

Văn bản khóa luận xác định 7 nhiệm vụ nghiên cứu cụ thể trong đề cương bao gồm:

  1. Nghiên cứu và phân tích yêu cầu: Thu thập thông tin về yêu cầu cụ thể của hệ thống tìm trọ, xác định các tính năng cần thiết và phân tích phương án triển khai bằng ReactJS và ExpressJS.
  2. Thiết kế cơ sở dữ liệu: Xác định cấu trúc dữ liệu cần thiết phục vụ lưu trữ thông tin nhà trọ và quản lý người dùng.
  3. Phát triển Frontend với ReactJS: Xây dựng giao diện người dùng tương tác, bao gồm các trang hiển thị danh sách phòng trọ, thông tin chi tiết và các chức năng quản lý.
  4. Phát triển Backend với ExpressJS: Tạo và triển khai các giao diện lập trình ứng dụng (API) để quản lý dữ liệu, tiếp nhận yêu cầu từ phía Frontend và kết nối cơ sở dữ liệu.
  5. Tích hợp và kiểm thử: Kết hợp thành phần Frontend và Backend, thực hiện kiểm thử tích hợp nhằm bảo đảm các chức năng vận hành chính xác và ổn định.
  6. Bảo mật và tối ưu hóa: Đảm bảo an toàn cho dữ liệu, xác thực người dùng và tối ưu hóa hiệu suất toàn hệ thống.
  7. Tài liệu hóa và báo cáo: Viết tài liệu hướng dẫn sử dụng, tài liệu kỹ thuật và báo cáo tổng hợp về toàn bộ quá trình phát triển, thử nghiệm và triển khai.

Đối tượng và phạm vi nghiên cứu của đề tài được phân định rõ:

  • Đối tượng nghiên cứu: Nghiên cứu các quy trình nghiệp vụ và tương tác của ba nhóm chủ thể chính trên hệ thống: Quản trị viên (Admin - quản lý tài khoản người dùng, tài khoản người cho thuê, kiểm duyệt bài đăng trước khi hiển thị, xử lý các báo cáo vi phạm); Người cho thuê (Renter - đăng tải bài viết cho thuê, chỉnh sửa/xóa bài đăng, quản lý thông tin phòng trọ, quản lý lịch hẹn xem phòng); và Người dùng/Người thuê (User - tìm kiếm, xem tin, lưu phòng trọ yêu thích, đặt lịch xem phòng, bình luận, gửi báo cáo vi phạm nội dung).
  • Phạm vi nghiên cứu: Đồ án tập trung nghiên cứu và xây dựng website tìm kiếm và cho thuê phòng trọ tích hợp các tính năng tương tác xã hội (đăng ký qua email, xác thực OTP, tìm kiếm theo tiêu chí, quản lý đặt lịch, quản lý gói bài đăng và kiểm duyệt vi phạm). Kế hoạch thực hiện đề tài diễn ra từ tháng 01/2025 đến tháng 06/2025 tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh.

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

Để xây dựng cơ sở lý luận và định hướng giải pháp, đề tài đã tiến hành khảo sát và đánh giá ba hệ thống website tìm trọ đang vận hành thực tế tại Việt Nam gồm: Phongtro123, ThuePhongTro và PhongTot.

Tiêu chí Phongtro123 ThuePhongTro PhongTot
Giao diện website Phức tạp, khó khăn sử dụng đối với người dùng mới Giao diện đẹp, dễ sử dụng Giao diện phức tạp, khó sử dụng
Tốc độ phản hồi Nhanh Nhanh Nhanh
Bảo mật Mã nguồn đóng khó khai thác lỗ hổng Mã nguồn đóng khó khai thác lỗ hổng Mã nguồn đóng khó khai thác lỗ hổng
Tính năng website Đầy đủ tính năng cơ bản, nhiều tính năng mở rộng nhưng khó dùng Đầy đủ tính năng cơ bản, nhiều tính năng mở rộng nhưng khó dùng Có đầy đủ tính năng cơ bản
Tốc độ tải trang Nhanh Nhanh Nhanh
Thiết bị di động Tương thích (Responsive) Tương thích (Responsive) Tương thích (Responsive)
Quy mô cộng đồng Cộng đồng lớn, nhiều người dùng và bài đăng Cộng đồng nhỏ Cộng đồng nhỏ

Về phân loại tính năng qua khảo sát, các hệ thống đều sở hữu các chức năng cơ bản gồm tìm kiếm phòng trọ, xem chi tiết phòng trọ, tạo và chỉnh sửa bài đăng cho người cho thuê; chức năng nâng cao tiêu biểu là tìm kiếm bằng vị trí của người dùng. Từ kết quả khảo sát, nhóm tác giả xác lập các yêu cầu phi chức năng (giao diện dễ sử dụng, tốc độ phản hồi nhanh) và yêu cầu chức năng (xác thực và phân quyền, cơ chế trao đổi giữa các bên, lưu trữ bài đăng yêu thích, báo cáo nội dung vi phạm).

Phương pháp nghiên cứu và phát triển phần mềm được áp dụng trong khóa luận gồm:

  • Phương pháp phân tích và tổng hợp: Thu thập tài liệu kỹ thuật, khảo sát đối thủ cạnh tranh để xác định danh mục ca sử dụng (Use Case) cho hai nhóm giao diện: Client và Admin.
  • Phương pháp mô hình hóa hướng đối tượng bằng UML: Xây dựng lược đồ ca sử dụng (Use Case Diagram), đặc tả chi tiết 24 Use Case kèm luồng sự kiện chính, luồng thay thế và luồng ngoại lệ; xây dựng 25 lược đồ tuần tự (Sequence Diagram) mô tả tương tác giữa các lớp; thiết kế lược đồ lớp (Class Diagram) phục vụ ánh xạ dữ liệu.
  • Phương pháp phát triển dựa trên kiến trúc 3 tầng: Tách biệt rõ ràng tầng trình diễn (Presentation Layer - ReactJS), tầng nghiệp vụ (Application Layer - ExpressJS/Node.js) và tầng cơ sở dữ liệu (Database Layer - MongoDB).
  • Nguồn dữ liệu tham khảo: Tài liệu kỹ thuật chính thức từ trang chủ ReactJS, ExpressJS Framework, hệ quản trị cơ sở dữ liệu MongoDB (node-mongodb-native) và thư viện HTTP client Axios.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình kiến trúc ba lớp truyền thống:

  • Lớp Presentation (Frontend): Xây dựng trên nền tảng thư viện ReactJS kết hợp thư viện giao diện Material-UI (MUI). ReactJS hỗ trợ kiến trúc Single Page Application (SPA), hoạt động theo mô hình lập trình dựa trên component độc lập, cho phép tái sử dụng mã nguồn và cập nhật giao diện thông qua Virtual DOM giúp giảm thiểu tài nguyên xử lý trên trình duyệt. Thư viện MUI cung cấp hệ thống giao diện theo chuẩn Material Design của Google, bảo đảm tính tương thích với đa dạng thiết bị (Responsive Design) và khả năng tùy biến theme linh hoạt. Dự án được khởi tạo thông qua công cụ dòng lệnh npx create-react-app và khởi chạy trên môi trường cục bộ bằng lệnh npm start.
  • Lớp Application (Backend): Xây dựng bằng framework ExpressJS chạy trên nền tảng Node.js. ExpressJS đảm nhiệm vai trò trung gian xử lý các dịch vụ web theo mô hình RESTful API, tiếp nhận các yêu cầu HTTP (GET, POST, PUT, DELETE) từ Frontend, điều phối routing, thực thi middleware xác thực và tương tác với cơ sở dữ liệu để phản hồi dữ liệu về giao diện người dùng.
  • Lớp Cơ sở dữ liệu (Database): Sử dụng hệ quản trị cơ sở dữ liệu NoSQL MongoDB. Dữ liệu được lưu trữ dưới định dạng tài liệu BSON (Binary JSON), giúp quản lý các cấu trúc dữ liệu bán cấu trúc và phi cấu trúc linh hoạt mà không bị ràng buộc bởi schema cố định. Khả năng mở rộng theo chiều ngang (horizontal scaling) thông qua cơ chế sharding và khả năng đánh chỉ mục tối ưu giúp MongoDB xử lý hiệu quả các truy vấn dữ liệu phòng trọ phức tạp.

Cơ sở dữ liệu của hệ thống được tổ chức thành 11 bảng/collection chính:

  1. db_user: Lưu trữ thông tin tài khoản người dùng, bao gồm thông tin cá nhân và phân quyền hệ thống.
  2. db_post: Lưu trữ thông tin bài đăng cho thuê nhà trọ, tiêu đề, mô tả và trạng thái phê duyệt.
  3. db_location: Lưu trữ thông tin vị trí địa lý của phòng trọ (địa chỉ, quận, phường, thành phố).
  4. db_amenities: Lưu trữ danh sách các tiện ích đi kèm của phòng trọ.
  5. db_additional costs: Lưu trữ các khoản chi phí phát sinh (tiền điện, nước, dịch vụ).
  6. db_comment: Lưu trữ các bình luận và phản hồi của người dùng đối với bài đăng.
  7. db_favorite: Lưu trữ danh sách các bài đăng phòng trọ yêu thích của từng người dùng.
  8. db_Notification: Lưu trữ các thông báo hệ thống được gửi từ quản trị viên.
  9. db_report: Lưu trữ các thông tin báo cáo bài viết vi phạm nội dung từ phía người dùng.
  10. db_request: Lưu trữ thông tin yêu cầu đặt lịch xem phòng trọ của người thuê gửi đến người cho thuê.
  11. db_blog: Lưu trữ các bài viết tin tức, bài viết chia sẻ kinh nghiệm trên hệ thống.

Về mặt giao diện, hệ thống triển khai thành 3 phân vùng chức năng chính:

  • Giao diện chung: Gồm trang đăng ký (tích hợp nhập thông tin và xác nhận mã OTP gửi qua email), trang đăng nhập, trang khôi phục mật khẩu (xác thực OTP để thiết lập mật khẩu mới) và trang hồ sơ thông tin cá nhân.
  • Giao diện người thuê: Gồm trang chủ tích hợp thanh tìm kiếm thông minh đa tiêu chí (tiêu đề, địa chỉ, quận, phường, thành phố, khoảng giá, loại phòng); trang phân loại danh mục (Cho thuê phòng trọ, Cho thuê căn hộ, Tìm người ở ghép); trang hiển thị chi tiết phòng trọ; trang gửi yêu cầu đặt lịch xem phòng; trang báo cáo vi phạm bài đăng; trang xem danh sách tin tức/blog và trang theo dõi trạng thái lịch đặt phòng.
  • Giao diện người cho thuê và quản trị: Gồm trang quản lý phòng trọ cá nhân, trang đăng bài mới, trang chỉnh sửa bài viết, trang chọn mua các gói đăng bài, giao diện quản lý người dùng, giao diện xét duyệt trạng thái bài đăng và giao diện xử lý các báo cáo vi phạm nội dung (chuyển trạng thái sang Processing hoặc Resolved).

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

Chương 1: Kiến trúc hệ thống

Chương 1 trình bày chi tiết về cấu trúc tổng thể và cơ sở công nghệ của website. Nhóm tác giả phân tích kiến trúc 3 lớp, làm rõ cơ chế luân chuyển dữ liệu từ người dùng gửi yêu cầu qua giao diện ReactJS, chuyển tiếp qua tầng nghiệp vụ ExpressJS và truy xuất cơ sở dữ liệu MongoDB trước khi trả kết quả hiển thị.

Chương này cũng cung cấp cơ sở lý luận cho việc lựa chọn công nghệ thông qua các bảng so sánh trực tiếp:

Tiêu chí ReactJS VueJS Angular
Năm phát hành 2013 2014 2010
Nhà phát triển Facebook Alibaba Google
Ngôn ngữ JavaScript, TypeScript JavaScript, TypeScript TypeScript
Cộng đồng Cộng đồng lớn, nhiều tài nguyên duy trì và hỗ trợ Cộng đồng lớn, nhiều tài liệu tham khảo Cộng đồng đang phát triển, Google hỗ trợ chính thức
Độ khó Thích hợp cho người có kinh nghiệm với JavaScript Dễ học, thích hợp cho người mới bắt đầu Yêu cầu hiểu biết sâu về TypeScript
Kiến trúc Virtual DOM Virtual DOM MVC (Model - View - Controller)
Phạm vi Hoàn hảo cho trang web hiện đại và render native Dự án nhỏ và công ty khởi nghiệp Dự án lớn, phục vụ doanh nghiệp nhiều tính năng
Tái sử dụng code Có thể Có thể Có thể
Thời gian load Trung bình Chậm Nhanh

Bên cạnh đó, tác giả đưa ra bảng so sánh giữa cơ sở dữ liệu quan hệ (MySQL/SQL Server) và cơ sở dữ liệu NoSQL (MongoDB) để minh chứng tính ưu việt của MongoDB về khả năng sharding mở rộng theo chiều ngang, lưu trữ định dạng BSON phi cấu trúc linh hoạt và tối ưu hiệu suất truy vấn trong các ứng dụng web hướng tài liệu.

Chương 2: Phân tích thiết kế hệ thống

Chương 2 là phần trọng tâm của khóa luận, mô tả toàn bộ quá trình phân tích và thiết kế phần mềm. Nội dung mở đầu bằng hai sơ đồ ca sử dụng tổng quát (Use case client và Use case admin) phân rã thành 24 ca sử dụng cụ thể. Văn bản tiến hành đặc tả chi tiết các Use Case quan trọng:

  • UC-1 (Đăng ký): Người dùng nhập thông tin cá nhân (tên, email, mật khẩu, số điện thoại, địa chỉ), hệ thống gửi mã OTP qua email để người dùng xác thực trước khi kích hoạt tài khoản.
  • UC-2 (Đăng nhập): Người dùng đăng nhập hệ thống; tích hợp luồng thay thế cho trường hợp quên mật khẩu thông qua xác nhận mã OTP qua email để thiết lập mật khẩu mới.
  • UC-3 (Tìm kiếm theo các tiêu chí): Tiếp nhận các tham số gồm tiêu đề, địa chỉ, quận, phường, thành phố, loại phòng, khoảng giá tối thiểu và tối đa; trả về danh sách bài đăng phù hợp hoặc cảnh báo dữ liệu không hợp lệ.
  • UC-4 (Xem thông tin nhà trọ theo loại): Phân chia theo ba danh mục chính (Cho thuê phòng trọ, Cho thuê căn hộ, Tìm người ở ghép), hỗ trợ lọc danh sách theo khu vực quận/huyện.
  • UC-5 (Xem blog), UC-6.1 (Xem thông tin cá nhân), UC-6.2 (Chỉnh sửa thông tin cá nhân), UC-7 (Báo cáo bài viết).
  • Các ca sử dụng mở rộng: Đặt lịch xem phòng (thêm, cập nhật, xóa lịch đặt); quản lý bình luận; quản lý danh sách yêu thích; quản lý bài đăng; quản lý yêu cầu đặt lịch phía chủ trọ; đăng nhập/đăng xuất admin; quản lý chuyển trạng thái báo cáo (chuyển sang "Processing", "Resolved"); quản lý người dùng; quản lý gói bài đăng và mua gói tin.

Hệ thống được mô hình hóa tương tác động thông qua 25 lược đồ tuần tự (Sequence Diagram) từ Hình 21 đến Hình 45, bao gồm các chu trình: Đăng ký, Đăng nhập, Tìm kiếm theo tiêu chí, Xem thông tin nhà trọ theo loại, Xem blog, Hiển thị/Quản lý thông tin cá nhân, Báo cáo bài viết, Xem thông báo từ admin, Đặt lịch/Cập nhật/Xóa đặt lịch phía người thuê, Thao tác bình luận, Quản lý danh sách yêu thích, Quản lý bài đăng, Quản lý đặt lịch phía chủ trọ, Đăng nhập admin, Quản lý báo cáo vi phạm, Quản lý người dùng, Quản lý thông báo và Quản lý blog. Cuối chương là lược đồ lớp (Class Diagram), đặc tả cấu trúc 11 bảng dữ liệu và thiết kế giao diện chi tiết từ Hình 47 đến Hình 60.

Chương 3: Cài đặt hệ thống

Chương 3 đề cập đến các yêu cầu hệ thống và quy trình cài đặt thực tế. Văn bản xác định cấu hình môi trường phần cứng và phần mềm tối thiểu để vận hành hệ thống, các bước thiết lập cấu hình mã nguồn Frontend trên ReactJS, cài đặt các gói phụ thuộc (dependencies), thiết lập API server trên Node.js/ExpressJS và kết nối tới dịch vụ cơ sở dữ liệu MongoDB.

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

Khóa luận đã hoàn thành các mục tiêu nghiên cứu và phát triển phần mềm được đề ra theo tiến độ thực hiện từ tháng 01/2025 đến tháng 06/2025:

  • Về sản phẩm ứng dụng: Nhóm nghiên cứu đã xây dựng hoàn chỉnh ứng dụng web "Tìm trọ" tích hợp đầy đủ các chức năng cho ba nhóm đối tượng người dùng. Hệ thống hỗ trợ tìm kiếm phòng trọ đa tiêu chí, phân loại phòng (phòng trọ, căn hộ, tìm người ở ghép), xem chi tiết thông tin và hình ảnh, đặt lịch hẹn xem phòng trực tuyến giữa người thuê và chủ nhà.
  • Về tính năng nghiệp vụ và tương tác: Triển khai thành công quy trình đăng ký tài khoản có xác thực hai bước thông qua mã OTP qua email; chức năng khôi phục mật khẩu bảo mật; chức năng lưu danh sách phòng trọ yêu thích; chức năng viết bình luận đánh giá; chức năng gửi báo cáo vi phạm nội dung không hợp lệ. Đối với người cho thuê, hệ thống cho phép tạo bài đăng, chỉnh sửa nội dung và tích hợp tính năng mua các gói bài đăng. Đối với quản trị viên, cung cấp bộ công cụ quản lý tài khoản người dùng, kiểm duyệt bài viết, phân phối thông báo và xử lý báo cáo vi phạm sang các trạng thái "Processing" và "Resolved".
  • Đóng góp về mặt giải pháp kỹ thuật: Khóa luận đề xuất một mô hình kiến trúc phần mềm chuẩn mực kết hợp giữa ReactJS, ExpressJS và MongoDB cho bài toán kết nối thuê trọ. Hệ thống khắc phục được các nhược điểm về giao diện phức tạp và thiếu minh bạch đã chỉ ra ở các trang web khảo sát thực tế (Phongtro123, ThuePhongTro, PhongTot), mang lại giao diện trực quan và trải nghiệm tương tác liền mạch cho người dùng.

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

Dựa trên nội dung tổng kết trong văn bản khóa luận:

  • Nhược điểm và hạn chế: Sản phẩm được phát triển và kiểm thử trong phạm vi đồ án tốt nghiệp cử nhân/kỹ sư; hệ thống mới tập trung giải quyết các tính năng cốt lõi và kiểm thử trên môi trường mô phỏng. Một số tính năng mở rộng nâng cao như tìm kiếm trực quan bằng bản đồ số hoặc thanh toán tự động các gói dịch vụ vẫn chưa được hoàn thiện chuyên sâu.
  • Hướng phát triển trong tương lai: Nhóm tác giả định hướng tiếp tục tối ưu hóa hiệu năng hệ thống, nâng cao trải nghiệm người dùng trên thiết bị di động, nghiên cứu tích hợp hệ thống bản đồ trực tuyến để người dùng tìm kiếm theo bán kính vị trí thực tế, hoàn thiện cơ chế thanh toán điện tử cho các gói bài đăng và nâng cấp thuật toán gợi ý phòng trọ phù hợp với nhu cầu cá nhân.

Giá trị tham khảo

Khóa luận tốt nghiệp "Xây dựng website tìm trọ" là tài liệu học thuật có giá trị tham khảo rõ nét cho:

  • Sinh viên chuyên ngành Công nghệ Phần mềm, Công nghệ Thông tin đang thực hiện đồ án môn học hoặc khóa luận tốt nghiệp: Cung cấp quy trình hoàn chỉnh từ khảo sát hiện trạng, lập kế hoạch thực hiện, phân tích yêu cầu chức năng/phi chức năng, thiết kế lược đồ ca sử dụng, vẽ biểu đồ tuần tự (Sequence Diagram), thiết kế cơ sở dữ liệu NoSQL (MongoDB) đến cài đặt ứng dụng web full-stack (ReactJS + ExpressJS).
  • Các nhà phát triển phần mềm và kỹ sư phát triển web: Cung cấp tài liệu tham khảo thực tế về cấu trúc đặc tả Use Case chi tiết (luồng chính, luồng phụ, luồng lỗi) và thiết kế hệ thống phân quyền phức tạp (Admin, Renter, User) kết hợp cơ chế xác thực OTP qua email.

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

1. Khóa luận đã khảo sát và đánh giá những website tìm trọ nào đang hoạt động trên thực tế?
Nhóm tác giả đã tiến hành khảo sát và so sánh ba website thực tế gồm Phongtro123, ThuePhongTro và PhongTot dựa trên các tiêu chí: giao diện website, tốc độ phản hồi, bảo mật, tính năng website, tốc độ tải trang, khả năng hiển thị trên thiết bị di động (Responsive) và quy mô cộng đồng.

2. Kiến trúc tổng thể và ngăn xếp công nghệ (tech stack) được lựa chọn trong đề tài là gì?
Hệ thống sử dụng kiến trúc ba lớp truyền thống gồm: tầng trình diễn Frontend sử dụng ReactJS kết hợp thư viện giao diện Material-UI (MUI); tầng ứng dụng Backend sử dụng framework ExpressJS trên nền tảng Node.js; và tầng cơ sở dữ liệu sử dụng hệ quản trị NoSQL MongoDB lưu trữ dữ liệu BSON.

3. Hệ thống phân chia quyền hạn của các nhóm người dùng (Actor) như thế nào?
Hệ thống xác định ba nhóm đối tượng: Quản trị viên (Admin) quản lý người dùng, duyệt bài đăng, xử lý báo cáo vi phạm, quản lý gói bài đăng và tin tức; Người cho thuê (Renter) có quyền đăng bài, quản lý phòng trọ, xử lý yêu cầu đặt lịch xem phòng, mua gói tin và tương tác; Người dùng/Người thuê (User) có quyền tìm kiếm theo tiêu chí, xem chi tiết, đặt lịch xem phòng, lưu bài yêu thích, bình luận và báo cáo bài viết vi phạm.

4. Quy trình đăng ký tài khoản (UC-1) và lấy lại mật khẩu (UC-2) được thiết kế bảo mật ra sao?
Cả hai quy trình đều tích hợp cơ chế xác thực mã OTP gửi qua email. Ở bước đăng ký, người dùng nhập thông tin cá nhân và phải xác thực mã OTP hệ thống gửi về email thì tài khoản mới được kích hoạt và lưu vào cơ sở dữ liệu. Khi quên mật khẩu, người dùng nhập email để nhận mã OTP xác minh trước khi được phép nhập mật khẩu mới.

5. Cơ sở dữ liệu của website gồm những bảng (collection) nào?
Cơ sở dữ liệu MongoDB của hệ thống bao gồm 11 bảng/collection: db_user (người dùng), db_post (bài đăng), db_location (địa chỉ/vị trí), db_amenities (tiện ích), db_additional costs (chi phí phát sinh), db_comment (bình luận), db_favorite (danh sách yêu thích), db_Notification (thông báo), db_report (báo cáo vi phạm), db_request (yêu cầu đặt lịch) và db_blog (bài viết tin tức).

Kết luận

Đồ án tốt nghiệp "Xây dựng website tìm trọ" của sinh viên Phan Thanh Hậu và Huỳnh Nguyễn Anh Trí đã giải quyết trọn vẹn bài toán xây dựng nền tảng trực tuyến hỗ trợ kết nối thông tin thuê phòng trọ minh bạch và hiệu quả. Hệ thống được phân tích, thiết kế bài bản theo các chuẩn mực công nghệ phần mềm, triển khai đồng bộ trên nền tảng công nghệ hiện đại ReactJS, ExpressJS và MongoDB. Khóa luận cung cấp đầy đủ các đặc tả nghiệp vụ, lược đồ UML, cấu trúc cơ sở dữ liệu và mã nguồn ứng dụng, đóng góp một giải pháp phần mềm hoàn chỉnh và tài liệu kỹ thuật có giá trị tham khảo cao.