Bối cảnh và vấn đề nghiên cứu
Nhu cầu tìm kiếm chỗ ở của đối tượng người đi làm và sinh viên tại các đô thị lớn là vấn đề thường trực và cấp thiết. Nhu cầu này gia tăng đột biến vào các thời điểm nhập học hằng năm, khi một số lượng lớn sinh viên cần tìm được phòng trọ trong một khoảng thời gian ngắn để nhanh chóng ổn định đời sống và bắt đầu quá trình học tập.
Về bối cảnh thực tiễn trên thị trường công nghệ, nhóm tác giả nhận định số lượng sản phẩm ứng dụng di động phục vụ tìm kiếm nhà trọ tại thời điểm nghiên cứu còn rất hạn chế (dưới 10 ứng dụng trên cả hai nền tảng Android và iOS), đồng thời các chức năng hỗ trợ người dùng còn nhiều thiếu sót. Bên cạnh đó, tiềm năng triển khai thực tế của ứng dụng được đánh giá là khả thi nhờ chi phí xây dựng và đưa vào vận hành không quá cao, chủ yếu tập trung vào chi phí tiếp cận thị trường.
Mục tiêu nghiên cứu của đề tài là xây dựng hoàn chỉnh một ứng dụng tìm nhà trọ đa nền tảng, giải quyết bài toán kết nối giữa ba nhóm đối tượng: người tìm trọ, chủ nhà trọ và người có nhu cầu tìm người ở ghép. Đề cương khóa luận xác định 3 nhiệm vụ thực hiện cụ thể:
- Tìm hiểu về quy trình xây dựng ứng dụng di động trên nền tảng React Native.
- Tìm hiểu về ngăn xếp công nghệ MERN stack (MongoDB, Express.js, React Native, Node.js) và ứng dụng vào việc phát triển đồ án.
- Xây dựng và hoàn thiện ứng dụng tìm nhà trọ.
Đối tượng và phạm vi nghiên cứu được xác lập như sau:
- Đối tượng nghiên cứu: Quy trình phân tích, thiết kế, lập trình và kiểm thử hệ sinh thái ứng dụng tìm nhà trọ; các luồng nghiệp vụ tương tác giữa ba nhóm tác nhân gồm Khách vãng lai (Guest), Người dùng thành viên (User - bao gồm người thuê trọ, chủ nhà trọ, người tìm bạn ở ghép) và Quản trị viên (Admin).
- Phạm vi thời gian: Đề tài được triển khai trong thời gian từ ngày 30/03/2020 đến ngày 14/08/2020 (tổng cộng 16 tuần thực hiện theo kế hoạch khóa luận).
- Phạm vi không gian: Nghiên cứu và thử nghiệm dữ liệu thực tế tại khu vực Thành phố Hồ Chí Minh, điển hình là khu vực xung quanh 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
Khóa luận áp dụng khung lý thuyết kỹ thuật phần mềm hiện đại và các phương pháp nghiên cứu, phát triển ứng dụng di động hướng dịch vụ:
- Khung công nghệ và mô hình kiến trúc:
- Khung kiến trúc ứng dụng di động đa nền tảng (Cross-platform Mobile Application) kết hợp kiến trúc dịch vụ web chuẩn RESTful API.
- Ngăn xếp công nghệ MERN stack: Hệ quản trị cơ sở dữ liệu phi quan hệ MongoDB, nền tảng thực thi Node.js, framework định tuyến Express.js, thư viện giao diện người dùng React Native, thư viện quản lý trạng thái tập trung Redux và công cụ ánh xạ dữ liệu Mongoose ODM.
- Phương pháp nghiên cứu:
- Phương pháp khảo sát, phân tích so sánh hiện trạng: Khảo sát định lượng và phân tích tính năng thực tế của 5 ứng dụng tìm nhà trọ tiêu biểu trên các kho ứng dụng (Google Play và App Store) dựa trên số sao đánh giá, số lượt phản hồi, ưu điểm và nhược điểm về trải nghiệm người dùng.
- Phương pháp mô hình hóa hướng đối tượng và phân tích luồng: Sử dụng sơ đồ ca sử dụng (Use Case Diagram), sơ đồ luồng dữ liệu (Data Flow Diagram - SDLDL), đặc tả bảng quy định nghiệp vụ và thiết kế biểu mẫu tương tác (Prototype/UI Mockup).
- Phương pháp phát triển phần mềm theo kế hoạch 16 tuần: Phân chia các giai đoạn rõ ràng từ khảo sát hiện trạng (tuần 1-3), nghiên cứu React Native và Redux (tuần 4-6), nghiên cứu MongoDB, Node.js, Express.js và RESTful API (tuần 7-11), tích hợp hệ thống (tuần 12), kiểm thử sửa lỗi (tuần 13-14) và hoàn tất báo cáo (tuần 15-16).
- Nguồn dữ liệu: Dữ liệu khảo sát từ các ứng dụng trên chợ ứng dụng; tập dữ liệu mô phỏng vị trí địa lý, thông tin phòng trọ, danh mục tiện ích, lịch hẹn và báo cáo người dùng được thiết kế và lưu trữ trên cơ sở dữ liệu MongoDB.
Thiết kế và triển khai
Hệ thống được thiết kế và triển khai với các thành phần kỹ thuật chi tiết như sau:
- Ngăn xếp công nghệ (Stack lập trình):
- Client: React Native và Redux phục vụ đồng bộ trạng thái luồng dữ liệu giao diện.
- Server: Node.js kết hợp Express.js để cấu trúc và xây dựng tài liệu RESTful API.
- Database: MongoDB quản lý dữ liệu linh hoạt dưới dạng document thông qua Mongoose.
- Phân quyền và các nhóm tác nhân (Actors):
- Khách vãng lai (Guest): Sử dụng các chức năng đăng ký, đăng nhập, xem trang chủ và tìm trọ (quét xung quanh vị trí hiện tại hoặc tìm theo khu vực/bán kính).
- Người dùng thành viên (User): Kế thừa toàn bộ quyền của Guest; cập nhật thông tin cá nhân; đặt lịch hẹn xem phòng; xem chi tiết bài đăng; bình luận, đánh giá và bày tỏ yêu thích; đăng tin cho thuê/ở ghép; quản lý bài đăng cá nhân; cài đặt bật/tắt nhận thông báo phòng trọ mới theo khu vực; gửi báo cáo sai phạm.
- Quản trị viên (Admin): Xem danh sách báo cáo sai phạm để xử lý hoặc bỏ qua; quản lý bài đăng (duyệt bài đăng mới hoặc xóa bài vi phạm kèm lý do); quản lý tài khoản người dùng (khóa/xóa User vi phạm).
- Quy trình đăng tin phòng trọ (4 bước):
- Bước 1 - Vị trí: Nhập thông tin tỉnh/thành phố, quận/huyện, phường/xã, tên đường và số nhà.
- Bước 2 - Thông số phòng: Nhập loại phòng, số lượng, sức chứa, giới tính, diện tích phòng và chi phí.
- Bước 3 - Tiện ích và hình ảnh: Chọn các tiện ích (WC riêng, chỗ để xe, cửa sổ, an ninh, wifi, tự do giờ giấc, không chung chủ, máy lạnh, máy nước nóng, nhà bếp, tủ lạnh, máy giặt, gác lửng, giường, tủ đồ, tivi, cho phép thú cưng) và tải lên từ 5 đến 10 hình ảnh chụp thực tế.
- Bước 4 - Xác nhận: Cung cấp số điện thoại liên hệ, tiêu đề bài viết, nội dung mô tả chi tiết và thời gian người thuê có thể dọn đến ở.
- Thuật toán và xử lý dữ liệu: Ứng dụng tích hợp thuật toán xác định tọa độ địa lý, hỗ trợ tính toán khoảng cách từ vị trí người dùng đến các phòng trọ và lọc kết quả tìm kiếm theo bán kính quét trên bản đồ.
- Cấu trúc hướng đối tượng: Hệ thống xây dựng các lớp chính gồm lớp
User (quản lý thuộc tính tài khoản và phương thức cập nhật), lớp Post (quản lý thông tin bài đăng, tiện ích, vị trí) và lớp Appointment (quản lý dữ liệu lịch hẹn xem phòng và trạng thái xử lý).
Nội dung chính theo từng chương
Phần Mở đầu
Trình bày tính cấp thiết xuất phát từ thực trạng khó khăn trong việc tìm kiếm nhà trọ của sinh viên và người lao động vào mỗi dịp cao điểm. Nhóm tác giả nêu rõ mục tiêu xây dựng giải pháp phần mềm trên nền tảng MERN stack và React Native, phân định 3 nhóm người dùng đích và lập kế hoạch thực hiện đồ án chi tiết trong 16 tuần.
Chương 1: Khảo sát hiện trạng
Chương này khảo sát thực nghiệm 5 ứng dụng tìm nhà trọ đang có mặt trên thị trường nhằm chỉ ra điểm mạnh cần kế thừa và các hạn chế cần khắc phục:
| Tên ứng dụng |
Đánh giá & Số lượt nhận xét |
Ưu điểm chính |
Hạn chế chính |
| Nhà trọ 360 |
1.2★ / 170 đánh giá |
Giao diện tiện dụng, màu sắc dịu nhẹ, làm nổi bật giá tiền và tiện ích bằng biểu tượng, có nút gọi điện và lưu tin. |
Bắt buộc đăng nhập ngay khi mở ứng dụng; nút lưu phòng phản hồi kém; không hiển thị khoảng cách từ vị trí người dùng đến phòng trọ. |
| Ohana |
3.8★ / 235 đánh giá |
Giao diện nhẹ nhàng, có mục gợi ý sức chứa phòng, tính năng ở ghép rõ ràng, hỗ trợ chat với quản trị viên và người đăng, bộ lọc đa dạng. |
Màn hình chính không hiện ngay thông tin phòng; không có slideshow hình ảnh chi tiết; không hiển thị khoảng cách thực tế trên bản đồ. |
| Nhà trọ tốt |
2.1★ / 21 đánh giá |
Hiển thị vị trí thực tế và giá tiền trực tiếp trên bản đồ Map; hiển thị số lượng phòng tìm được trong khu vực; có tính năng lưu và chia sẻ. |
Giao diện thiếu tính thẩm mỹ; chỉ hiển thị danh sách phòng ở một mức độ thu phóng cố định; thiếu các tính năng đặt lịch hẹn, chat, ở ghép và đánh giá. |
| Nhà trọ 24/7 |
4.0★ / 42 đánh giá |
Cấu trúc đơn giản, cho phép Guest sử dụng toàn bộ tính năng mà không cần đăng nhập; tính năng lưu tin cập nhật tức thì vào danh sách. |
Không có bộ lọc theo bán kính; thông tin phòng sơ sài, thiếu danh mục tiện ích và thông tin chủ phòng; không có tính năng chat và bình luận. |
| Tìm trọ |
3.3★ / 226 đánh giá |
Thiết kế dạng mạng xã hội trực quan, có tính năng tương tác (thích, bình luận, chia sẻ); hỗ trợ tìm trọ theo bán kính; cho phép nhận thông báo phòng trống theo vùng. |
Không có chức năng lưu lại phòng đã tìm; không hiển thị danh sách tổng hợp các phòng tìm được; bộ lọc chỉ giới hạn ở bán kính và giá tiền. |
Từ kết quả khảo sát, nhóm tác giả định hình ứng dụng hướng đến việc kết hợp bộ lọc đa tiêu chí, quét vị trí theo bán kính thực tế trên bản đồ, hỗ trợ tương tác cộng đồng (bình luận, đánh giá, thích bài viết), thiết lập lời nhắc tự động khi có phòng mới theo yêu cầu và xây dựng quy trình đặt lịch hẹn xem phòng trực tiếp.
Chương 2: Mô hình hóa yêu cầu và thiết kế cơ sở dữ liệu
Chương này mô hình hóa toàn bộ hệ thống thông qua biểu đồ ca sử dụng tổng quát (Use Case Diagram), phân rã chi tiết luồng nghiệp vụ của 3 tác nhân và ban hành các quy định nghiệp vụ nghiêm ngặt:
| Mã quy định |
Tên quy định |
Tác nhân áp dụng |
Nội dung quy định chính |
| QD_Guest_DK |
Đăng ký tài khoản |
Guest |
Tài khoản gồm chữ cái phân biệt hoa/thường, chữ số, không chứa ký tự đặc biệt. Mật khẩu tối thiểu 8 ký tự, không chứa ký tự đặc biệt, yêu cầu nhập 2 lần để xác thực. |
| QD_Guest_DN |
Đăng nhập hệ thống |
Guest |
Kiểm tra tính chính xác của tài khoản và mật khẩu. Nếu sai, hiển thị thông báo lỗi: "Tài khoản hoặc mật khẩu đăng nhập không chính xác ! Vui lòng kiểm tra lại". |
| QD_Guest_TC |
Xem trang chủ |
Guest |
Hiển thị cấu trúc màn hình chính theo biểu mẫu BM1_MHC khi người dùng mở ứng dụng. |
| QD_Guest_TT |
Tìm trọ |
Guest / User |
Quét các phòng trọ xung quanh vị trí hiện tại (BM2_TK1) kết hợp bộ lọc thông minh (BM2_TK2, BM2_TK3) theo loại phòng, sức chứa, giới tính, chi phí và tiện ích. |
| QD_User_UPD |
Cập nhật thông tin |
User |
Cho phép chỉnh sửa họ tên, số điện thoại, ảnh đại diện tại trang cá nhân (BM6_IF) và lưu thay đổi khi nhấn xác nhận. |
| QD_User_BC |
Báo cáo vi phạm |
User |
Cho phép người dùng gửi báo cáo các bài đăng có dấu hiệu sai phạm gây ảnh hưởng tới người dùng khác hoặc uy tín hệ thống. |
| QD_User_XBD |
Xem bài đăng |
User |
Hiển thị đầy đủ thông tin phòng trọ, danh mục tiện ích, hình ảnh, thông tin người đăng và nút điều hướng sang đặt lịch hẹn (BM4_XBD). |
| QD_User_DL |
Đặt lịch hẹn |
User |
Người dùng điền thời gian hẹn, họ tên và số điện thoại liên hệ (BM5_DLH) gửi đến người đăng tin. |
| QD_User_DB |
Đăng bài |
User |
Thực hiện tuần tự quy trình 4 bước chuẩn hóa từ biểu mẫu BM3_BD1 đến BM3_BD5 và kết thúc bằng nút xác nhận. |
| QD_User_BLDG |
Bình luận & Đánh giá |
User |
Cho phép người dùng viết bình luận phản hồi và nhấn biểu tượng thích (Like) bài viết. |
| QD_User_T4 |
Cài đặt trạng thái tìm trọ |
User |
Thiết lập cấu hình bộ lọc mong muốn (khu vực, mức giá, tiện ích); hệ thống tự động phát thông báo khi xuất hiện phòng trọ phù hợp (BM_T4). |
| QD_Admin_XBC |
Xem báo cáo sai phạm |
Admin |
Xem xét danh sách báo cáo gồm nội dung, thời gian, tài khoản báo cáo, người bị báo cáo; lựa chọn bỏ qua hoặc xóa bài viết (AD_BM2). |
| QD_Admin_QLBD |
Quản lý bài đăng |
Admin |
Duyệt bài viết mới để hiển thị công khai hoặc xóa bài viết và gửi thông báo lý do đến chủ bài đăng (AD_BM1). |
| QD_Admin_XS |
Quản lý người dùng |
Admin |
Thực hiện khóa đăng nhập hoặc xóa tài khoản User vi phạm và gửi lý do khóa khi người dùng đăng nhập lại. |
Hệ thống thiết kế chi tiết 12 sơ đồ luồng dữ liệu (SDLDL) tương ứng cho từng nghiệp vụ (từ Hình 2-13 đến Hình 2-24) và tổng hợp thành mô hình cơ sở dữ liệu hoàn chỉnh (Hình 2-25) gồm các bảng và quan hệ logic.
Chương 3: Thiết kế giao diện và xử lý
Tác giả hoàn thiện thiết kế các màn hình giao diện người dùng và lập bảng danh sách xử lý sự kiện chi tiết:
- Màn hình tìm trọ (BM2_TK1, BM2_TK2, BM2_TK3 - Bảng xử lý 3-1): Tích hợp giao diện bản đồ và hệ thống bộ lọc đa tầng.
- Màn hình trang chủ (BM1_MHC - Bảng xử lý 3-2): Hiển thị danh mục phòng trọ mới, thanh tìm kiếm nhanh và điều hướng.
- Màn hình đăng bài và quy trình đăng bài (BM3_BD1 đến BM3_BD5 - Bảng xử lý 3-3, 3-4): Hướng dẫn người dùng qua 4 bước nhập liệu trực quan.
- Màn hình xem hồ sơ cá nhân (BM6_IF - Bảng xử lý 3-5): Quản lý dữ liệu tài khoản và các bài đăng cá nhân.
- Màn hình chi tiết phòng (BM4_XBD - Bảng xử lý 3-6): Trình diễn hình ảnh dạng lướt, danh mục tiện ích trực quan bằng biểu tượng và tích hợp nút gọi điện, đặt lịch hẹn.
- Màn hình cài đặt trạng thái tìm trọ (BM_T4 - Bảng xử lý 3-7): Lưu các tùy chọn cấu hình để nhận thông báo tự động.
- Màn hình đặt lịch hẹn (BM5_DLH - Bảng xử lý 3-8): Form nhập liệu ngày, giờ và xác nhận thông tin liên lạc.
Chương 4: Lập trình
Chương này mô tả chi tiết việc hiện thực hóa kiến trúc phần mềm:
- Cấu hình cơ sở dữ liệu MongoDB và kết nối ứng dụng thông qua Mongoose.
- Đặc tả thuộc tính (attributes) và phương thức (methods) của các lớp đối tượng cốt lõi: lớp
User (Bảng 4-1, 4-2), lớp Post (Bảng 4-3) và lớp Appointment (Bảng 4-4, 4-5).
- Trích dẫn và cài đặt thuật toán xác định tọa độ địa lý (Hình 4-2) nhằm phục vụ chức năng tìm kiếm phòng trọ theo bán kính quanh vị trí thực tế của người dùng.
Chương 5: Cài đặt và kiểm thử
Trình bày kế hoạch và quy trình kiểm thử phần mềm được phân bổ thực hiện trong tuần 13 và 14. Nội dung kiểm thử bao gồm: kiểm thử tính đúng đắn của các biểu mẫu nhập liệu theo quy định nghiệp vụ, kiểm tra khả năng tương thích của các cổng RESTful API kết nối với MongoDB, và kiểm thử giao diện tương tác trên thiết bị di động.
Kết quả và đóng góp
Kết quả chính
- Xây dựng thành công ứng dụng di động tìm nhà trọ hoạt động đa nền tảng dựa trên ngăn xếp MERN stack và React Native.
- Hiện thực hóa đầy đủ hệ thống tính năng phân tầng cho 3 nhóm tác nhân (Guest, User, Admin) với 12 quy trình nghiệp vụ được chuẩn hóa bằng sơ đồ luồng dữ liệu (SDLDL) và bảng quy định.
- Triển khai thành công quy trình đăng bài 4 bước với khả năng quản lý 17 hạng mục tiện ích phòng trọ và tích hợp tải lên từ 5 đến 10 hình ảnh thực tế.
- Xây dựng cơ chế thông báo thông minh dựa trên trạng thái tìm trọ (tính năng mở/đóng nhận tin theo khu vực và ngân sách tùy chọn) cùng thuật toán quét phòng trọ theo bán kính tọa độ.
Giải pháp và đóng góp của đề tài
- Khắc phục các nhược điểm thường gặp của các ứng dụng khảo sát trên thị trường (như thiếu hiển thị khoảng cách thực tế, bắt buộc đăng nhập sớm, thiếu tính năng đặt lịch hẹn và đánh giá bài đăng).
- Cung cấp giải pháp kết nối trực tiếp ba chiều giữa người thuê, người cho thuê và người có nhu cầu ở ghép trên cùng một hệ thống thống nhất.
- Đóng góp tài liệu đặc tả hoàn chỉnh về quy trình phân tích nghiệp vụ, mô hình dữ liệu NoSQL cho bài toán quản lý nhà trọ và giải pháp tích hợp Redux trong quản lý luồng dữ liệu ứng dụng di động React Native.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế: Theo các nội dung được phản ánh trong tài liệu, phạm vi triển khai và thử nghiệm hệ thống mới tập trung chủ yếu vào khu vực Thành phố Hồ Chí Minh; dữ liệu phòng trọ phụ thuộc vào sự đóng góp nội dung ban đầu từ người dùng.
- Hướng phát triển: Hoàn thiện và nâng cao hiệu năng các thuật toán định vị không gian, mở rộng phạm vi dữ liệu sang các khu vực và tỉnh thành lân cận, đồng thời tối ưu hóa trải nghiệm tương tác thời gian thực giữa các nhóm người dùng trên ứng dụng.
Giá trị tham khảo
Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo hữu ích cho các nhóm đối tượng:
- Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu mẫu trực quan về cách lập tài liệu phân tích thiết kế hệ thống phần mềm, từ xây dựng sơ đồ ca sử dụng, sơ đồ luồng dữ liệu (DFD/SDLDL), thiết kế bảng quy định nghiệp vụ đến việc chuẩn hóa biểu mẫu giao diện người dùng.
- Lập trình viên phát triển ứng dụng di động: Phần Chương 2, Chương 3 và Chương 4 cung cấp quy trình chi tiết về việc ứng dụng MERN stack kết hợp React Native và Redux để xây dựng các chức năng lọc vị trí, gọi API RESTful và quản lý cơ sở dữ liệu MongoDB.
Câu hỏi thường gặp
1. Ứng dụng trong đồ án sử dụng ngăn xếp công nghệ nào để phát triển?
Hệ thống được phát triển dựa trên ngăn xếp MERN stack mở rộng, bao gồm React Native và Redux cho phía ứng dụng di động đa nền tảng (Client), Node.js và Express.js cho phía dịch vụ web RESTful API (Server), cùng MongoDB kết hợp Mongoose ODM cho tầng lưu trữ cơ sở dữ liệu.
2. Quy trình đăng tin phòng trọ của người dùng thành viên gồm những bước nào?
Quy trình đăng tin gồm 4 bước tuần tự: Bước 1 cung cấp vị trí chi tiết của phòng trọ; Bước 2 nhập thông số phòng (loại phòng, số lượng, sức chứa, giới tính, diện tích, chi phí); Bước 3 lựa chọn các tiện ích đi kèm (trong danh mục 17 tiện ích) và đính kèm 5-10 hình ảnh chụp phòng; Bước 4 xác nhận thông tin liên lạc, tiêu đề, mô tả và thời gian có thể chuyển đến.
3. Khách vãng lai (Guest) có thể sử dụng những chức năng nào mà không cần đăng nhập?
Khách vãng lai có thể xem giao diện trang chủ (BM1_MHC), thực hiện đăng ký tài khoản, đăng nhập hệ thống và sử dụng chức năng tìm kiếm phòng trọ (tìm phòng trống hoặc tìm phòng ở ghép theo khu vực hoặc quét quanh vị trí hiện tại) kèm bộ lọc theo loại phòng, chi phí, sức chứa và tiện ích.
4. Tính năng "Đóng/Mở trạng thái tìm trọ" hoạt động như thế nào?
Tính năng này cho phép người dùng thiết lập các tiêu chí quan tâm (khu vực địa lý cụ thể, mức giá mong muốn, danh mục tiện ích). Khi hệ thống ghi nhận có phòng trọ mới được đăng tải đáp ứng đúng các tiêu chí này, hệ thống sẽ tự động gửi thông báo đến người dùng.
5. Trong phần khảo sát hiện trạng, ứng dụng nào có điểm đánh giá trung bình cao nhất và ứng dụng nào có điểm thấp nhất?
Trong 5 ứng dụng được khảo sát tại Chương 1, ứng dụng Nhà trọ 24/7 có điểm đánh giá cao nhất (4.0★ / 42 đánh giá) và ứng dụng Nhà trọ 360 có điểm đánh giá thấp nhất (1.2★ / 170 đánh giá).
Kết luận
Đồ án tốt nghiệp "Xây dựng ứng dụng tìm nhà trọ" của sinh viên Phạm Thái Vĩnh và Phùng Đại Hiệp đã giải quyết toàn diện bài toán kết nối nhu cầu thuê trọ, cho thuê và tìm người ở ghép thông qua giải pháp công nghệ di động đa nền tảng. Hệ thống được thiết kế hoàn chỉnh từ khâu khảo sát hiện trạng thị trường, mô hình hóa nghiệp vụ và sơ đồ luồng dữ liệu, cho đến hiện thực hóa bằng ngăn xếp công nghệ React Native, Node.js, Express.js và MongoDB. Kết quả nghiên cứu cung cấp một cấu trúc phần mềm rõ ràng, đáp ứng các tiêu chuẩn kỹ thuật phần mềm và mang lại giá trị tham khảo thực tiễn cao cho sinh viên khối ngành Công nghệ Thông tin.