Bối cảnh và vấn đề nghiên cứu
Đề tài "Ứng dụng quá giang xe cho sinh viên Làng Đại học – GoS" được thực hiện trong khuôn khổ học phần Đồ án 1 (lớp SE121.PMCL, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh) bởi hai tác giả Nguyễn Anh Kiệt và Ngô Văn Phóng, dưới sự hướng dẫn của giảng viên Nguyễn Thị Thanh Trúc vào tháng 6 năm 2022.
1. Lý do chọn đề tài và bối cảnh thực tiễn
Sự bùng nổ của cuộc Cách mạng công nghiệp 4.0 đã thúc đẩy sự ra đời của hàng loạt nền tảng gọi xe công nghệ như Grab, Uber, Gojek và Be. Tuy nhiên, theo số liệu từ khảo sát của báo VietNamNet được trích dẫn trong văn bản, thị phần người dùng các ứng dụng đặt xe tập trung chủ yếu tại Thành phố Hồ Chí Minh, trong khi 62 tỉnh, thành phố còn lại chỉ chiếm 38%. Điều này phản ánh các dịch vụ vận tải công nghệ hiện hữu chủ yếu phục vụ khu vực nội đô và còn hạn chế tại các khu vực ngoại thành, vùng ven.
Tại Khu đô thị Đại học Quốc gia Thành phố Hồ Chí Minh (Làng Đại học), mật độ sinh viên tập trung rất cao nhưng vị trí địa lý lại nằm cách xa trung tâm. Sinh viên học xa nhà gặp nhiều rào cản trong việc sở hữu phương tiện cá nhân do điều kiện kinh tế gia đình, phụ huynh lo ngại về an toàn giao thông, cũng như gánh nặng chi phí mua xe, bảo trì và giá xăng dầu tăng cao. Đối với sinh viên có phương tiện, việc di chuyển một mình để lại "yên sau" trống diễn ra phổ biến. Bên cạnh đó, việc lạm dụng phương tiện cơ giới cá nhân làm gia tăng khí thải đô thị, trong đó báo cáo hiện trạng môi trường chỉ ra khoảng 70% đến 90% tổng lượng khí thải tại các thành phố lớn bắt nguồn từ hoạt động giao thông, với xe máy chiếm tỷ trọng cao nhất gây ra các bệnh hô hấp và hiểm nghèo. Mặc dù nhiều sinh viên sẵn sàng hỗ trợ cho đi nhờ xe không vì mục đích thương mại hoặc chia sẻ chi phí xăng xe, khu vực này vẫn thiếu vắng một công cụ đóng vai trò cầu nối chuyên biệt.
2. Mục tiêu và nhiệm vụ nghiên cứu
Văn bản xác định mục tiêu tổng thể là xây dựng một ứng dụng đặt xe và đi nhờ xe phục vụ đối tượng người dùng ở khu vực ngoại vi, kết hợp cả hai hình thức: có thu phí và phi thương mại. Các nhiệm vụ cụ thể bao gồm:
- Nghiên cứu thực trạng, khảo sát hành vi di chuyển, nhu cầu đi nhờ xe và cho đi nhờ xe của sinh viên tại Làng Đại học.
- Phân tích ưu điểm và nhược điểm của các ứng dụng gọi xe hiện hành (Grab, Be, Gojek, Go-VNU) để xác định bài toán cải tiến.
- Nghiên cứu cơ sở lý thuyết về thuật toán định tuyến đồ thị (Dijkstra, A*), dịch vụ bản đồ số Google Maps, và cơ chế truyền thông hai chiều qua Web Socket.
- Phân tích yêu cầu chức năng, yêu cầu phi chức năng và thiết kế hệ thống phần mềm (sơ đồ use case, đặc tả use case, sơ đồ lớp, sơ đồ tuần tự, thiết kế cơ sở dữ liệu).
- Xây dựng và triển khai ứng dụng di động GoS đa nền tảng kết hợp hệ thống máy chủ và dịch vụ dữ liệu theo kiến trúc 3 tầng.
3. Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Quy trình kết nối giữa người có nhu cầu đi nhờ xe và người sở hữu phương tiện tại các khu vực xa trung tâm đô thị; thuật toán ghép nối chuyến đi; thiết kế giao diện tối ưu hóa trải nghiệm người dùng; kỹ thuật giao tiếp dữ liệu thời gian thực.
- Phạm vi không gian: Quy mô thử nghiệm tập trung tại Khu đô thị Đại học Quốc gia Thành phố Hồ Chí Minh và thành phố Dĩ An (tỉnh Bình Dương); định hướng dài hạn mở rộng tới các tỉnh Nam Bộ, Tây Nguyên và toàn quốc.
- Phạm vi đối tượng sử dụng: Sinh viên và người có nhu cầu di chuyển bằng dịch vụ kết nối đi nhờ xe.
- Phạm vi kỹ thuật: Ứng dụng di động đa nền tảng (cross-platform) hỗ trợ hệ điều hành Android và iOS.
Cơ sở lý thuyết và phương pháp
1. Khung lý thuyết và mô hình người dùng
Đề tài xác định hai vai trò người dùng tương tác trong hệ thống:
- Người đi nhờ xe: Lớp người dùng không có phương tiện di chuyển hoặc lựa chọn quá giang xe thay vì tự lái; thực hiện tìm kiếm chuyến đi có sẵn theo điểm xuất phát, điểm đến, thời gian khởi hành hoặc chủ động tạo yêu cầu tìm chuyến đi mới.
- Người tìm yên sau: Lớp người dùng sở hữu phương tiện cá nhân, có giấy phép lái xe theo quy định pháp luật và có thiện chí cho người khác đi cùng; tìm kiếm người đi nhờ hoặc chủ động đăng chuyến đi để nhận kết nối.
2. Mô hình tính toán khoảng cách và định tuyến
Hệ thống sử dụng dịch vụ Google Maps Platform, cụ thể là Google Distance Matrix API để biểu diễn dữ liệu không gian (kinh độ, vĩ độ, mô tả địa điểm) và tính toán đường đi ngắn nhất giữa hai điểm dựa trên hai thuật toán cốt lõi:
- Thuật toán Dijkstra: Thuật toán dạng tham lam (greedy) tìm đường đi ngắn nhất giữa các đỉnh trong đồ thị có trọng số. Điểm hạn chế được tác giả chỉ ra là độ phức tạp lớn khi số lượng nút giao thông trên bản đồ thực tế tiến tới vô hạn.
- Thuật toán A*: Thuật toán duyệt đồ thị sử dụng hàm Heuristic để ước lượng khoảng cách tới đỉnh đích, giúp định hướng tìm kiếm trọng tâm hơn, giảm thiểu không gian duyệt, tối ưu hóa thời gian xử lý và tài nguyên hệ thống đối với mạng lưới giao thông phức tạp.
3. Phương pháp định giá chuyến đi
Giá cước được xác định theo mô hình phân đoạn dựa trên khảo sát thực tế:
- Đối với khoảng cách dưới 2 km: Cước phí mặc định là 5 (đơn vị tính theo quy ước hệ thống).
- Đối với khoảng cách từ 2 km trở lên: Cước phí = Số ki-lô-mét × Hệ số tính toán trước.
- Phương thức thanh toán: Người đi nhờ xe chi trả trực tiếp cho người tìm yên sau theo thỏa thuận sau khi chuyến đi hoàn tất.
4. Phương pháp nghiên cứu thực nghiệm và thu thập dữ liệu
- Phương pháp khảo sát định lượng: Thu thập ý kiến qua bảng hỏi từ mẫu khảo sát gồm $N = 120$ nghiệm thể trong độ tuổi 18–25 tại khu vực Thành phố Thủ Đức và Thành phố Dĩ An.
- Phương pháp phỏng vấn trực tiếp: Đánh giá độ sẵn sàng chia sẻ chuyến đi và các khó khăn thực tế khi sử dụng dịch vụ gọi xe công nghệ.
- Phương pháp phân tích hệ thống: Lập tài liệu đặc tả chức năng, xây dựng các biểu đồ tương tác theo chuẩn UML (Use Case, Sequence, Class Diagram).
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 tập trung khảo sát thực trạng di chuyển của sinh viên và phân tích các giải pháp hiện hành trên thị trường. Kết quả khảo sát 120 nghiệm thể mang lại các số liệu cụ thể:
| Tiêu chí khảo sát |
Tỷ lệ / Giá trị ghi nhận |
| Cơ cấu đối tượng khảo sát |
Sinh viên chiếm 70%, công nhân viên chức 10%, khác 20% |
| Cơ cấu độ tuổi và thu nhập |
Độ tuổi 18–25 chiếm 80%; thu nhập dưới 5 triệu đồng/tháng chiếm 80% |
| Nơi cư trú |
Thủ Đức 60%, Dĩ An 30%, địa phương khác 10% |
| Tình trạng sở hữu phương tiện cá nhân |
63,6% người có xe máy; trong đó 71,4% thường xuyên di chuyển một mình (trống yên sau) |
| Chi phí vận hành phương tiện hàng tháng |
Trung bình 500.000 đồng/tháng (bao gồm bảo trì, gửi xe, nhiên liệu) |
| Ý định cho người khác đi nhờ xe |
69% đồng ý cho đi nhờ có thu phí; 34% đồng ý cho quá giang miễn phí; 100% người phỏng vấn trực tiếp sẵn sàng cho đi nhờ nếu tiện đường |
| Tần suất biết và dùng xe công nghệ |
100% người tham gia biết đến và từng dùng ứng dụng xe công nghệ |
| Mức độ đồng thuận nếu giá rẻ/miễn phí |
75% người được hỏi đồng ý quá giang hoặc chi trả chi phí thấp |
| Trở ngại lớn nhất với xe công nghệ hiện nay |
50% lo ngại về xác thực danh tính, tác phong lái xe; tài xế lạc đường tại Làng Đại học; chỉ 14% được đáp ứng kịp thời khi cần đi gấp (giờ học, giờ thi) |
Tác giả tiến hành so sánh 4 ứng dụng: Grab, Be, Gojek và Go-VNU:
- Grab: Mạng lưới đối tác đông đảo, phục vụ 24/24, nhiều dịch vụ phụ trợ; tuy nhiên ứng dụng nặng, chi phí cước cao, chưa chú trọng vùng ven, tài xế không quen thuộc địa hình Làng Đại học.
- Be: Giao diện đơn giản, giá cước tương đối rẻ và ít biến động giờ cao điểm; song mạng lưới tài xế tại vùng ven còn thưa, tình trạng hủy chuyến khi trời mưa hoặc giờ cao điểm còn cao.
- Gojek: Chi phí thuộc nhóm thấp nhất, giao diện trực quan; tuy nhiên thời gian chờ xe vào giờ cao điểm lâu và một số vị trí bản đồ chưa cập nhật đầy đủ.
- Go-VNU: Dữ liệu địa điểm cố định trong cơ sở dữ liệu giúp hệ thống nhẹ; nhược điểm là số lượng người dùng ít, giao diện thô sơ, hiển thị địa điểm hoàn toàn bằng văn bản thiếu trực quan.
Chương 2: Cơ sở lý thuyết và công nghệ
Chương này làm rõ cơ chế vận hành của hai vai trò người dùng, nguyên lý tính cước, cơ chế truyền thông Socket hai chiều (với chu trình API: socket(), bind(), listen(), connect(), accept(), send(), recv(), read(), write(), close()), và giới thiệu chi tiết các công nghệ nền tảng cấu thành hệ thống.
Chương 3: Phân tích hệ thống
Chương 3 xác định kiến trúc tổng thể 3 tầng và các yêu cầu hệ thống.
- Yêu cầu chức năng: Đăng ký, đăng nhập tài khoản; tìm kiếm và kết nối chuyến đi giữa 2 vai trò; quản lý danh sách chuyến đi theo 4 trạng thái (Đã hoàn tất, Đã hủy, Đang chờ, Đã kết nối); nhắn tin văn bản thời gian thực (chặn gửi file/media để đảm bảo an toàn thông tin); quản lý hồ sơ cá nhân (họ tên, số điện thoại, trường học, mô tả, ảnh đại diện - bắt buộc không để trống).
- Yêu cầu phi chức năng: Tương thích ổn định trên Android và iOS; giao diện thân thiện; vận hành mượt mà không crash; bảo vệ an toàn thông tin cá nhân.
Chương 4: Thiết kế hệ thống
Chương 4 cung cấp mô hình use case gồm 1 actor duy nhất là "Người dùng" (đại diện chung cho cả hai lớp hành vi Người đi nhờ xe và Người tìm yên sau). Tác giả chi tiết hóa 10 use case chức năng bằng bảng đặc tả:
#UC_DK: Đăng ký tài khoản (qua Google, Facebook, Số điện thoại).
#UC_DN: Đăng nhập hệ thống.
#UC_CNTT: Cập nhật thông tin cơ bản khi đăng ký mới.
#UC_TKCDCS: Tìm kiếm chuyến đi có sẵn theo gợi ý hoặc nhập điểm đón/đến.
#UC_TYCCD: Tạo yêu cầu chuyến đi mới kèm giá cước đề xuất và thời gian khởi hành.
#UC_QLCD: Theo dõi các chuyến đi liên quan.
#UC_TTCT: Xem thông tin chi tiết chuyến đi.
#UC_NTDT: Nhắn tin trao đổi với đối tác sau khi kết nối.
#UC_DSTN: Hiển thị danh sách các cuộc trò chuyện.
#UC_XTN: Xóa nội dung hoặc cuộc trò chuyện.
Bên cạnh đó, chương này thể hiện các sơ đồ tuần tự (Sequence Diagram), sơ đồ lớp (Class Diagram), mô hình dữ liệu và bố cục màn hình giao diện ứng dụng.
Chương 5: Kết luận và hướng phát triển
Đánh giá tổng kết các kết quả đạt được về mặt chức năng phần mềm và đề ra định hướng nghiên cứu mở rộng trong tương lai.
Thiết kế và triển khai
Hệ thống GoS được thiết kế theo kiến trúc 3 tầng (3-tier architecture):
+-------------------------------------------------------+
| TẦNG FRONTEND (CLIENT) |
| React Native + TailwindCSS + Expo (iOS & Android) |
+-------------------------------------------------------+
|
REST API / Socket
|
+-------------------------------------------------------+
| TẦNG BACKEND (SERVER) |
| NestJS Framework (TypeScript) |
| Prisma ORM | Socket.IO | Google Auth | JWT Bảo mật |
+-------------------------------------------------------+
|
SQL / Storage
|
+-------------------------------------------------------+
| TẦNG DATABASE & STORAGE |
| MySQL (chạy trong Docker Container) |
| Firebase Authentication & Firebase Storage |
+-------------------------------------------------------+
1. Chi tiết các thành phần công nghệ
- Tầng Client (Frontend):
- React Native: Framework mã nguồn mở của Facebook cho phép lập trình giao diện di động native đa nền tảng từ JavaScript.
- TailwindCSS: Thư viện định kiểu giao diện nhanh, tối ưu hóa thẩm mỹ.
- Expo: Bộ công cụ hỗ trợ đóng gói, biên dịch và chạy thử nghiệm trực tiếp mã nguồn trên thiết bị di động thực tế.
- Tầng Máy chủ (Backend):
- NestJS: Framework Node.js hỗ trợ TypeScript, áp dụng kiến trúc Module, Service và Controller tương tự Angular, đảm bảo khả năng mở rộng và kiểm thử độc lập.
- Prisma ORM: Công cụ trung gian giữa webserver và cơ sở dữ liệu gồm 3 thành phần (Prisma Client, Prisma Migrate, Prisma Studio), cung cấp khả năng truy vấn an toàn về kiểu dữ liệu.
- Socket.IO: Module thiết lập kênh giao tiếp hai chiều thời gian thực giữa máy chủ và ứng dụng di động, tự động kết nối lại khi mất mạng và hỗ trợ truyền dữ liệu nhị phân.
- Bảo mật JWT (JSON Web Token): Quản lý phiên làm việc và phân quyền người dùng thông qua chuỗi token gồm 3 phần (Header, Payload, Signature mã hóa bằng HMAC/RSA), không lưu trữ qua cookie.
- Tầng Dữ liệu và Dịch vụ ngoài:
- MySQL: Hệ quản trị cơ sở dữ liệu quan hệ tuân thủ tính chất ACID, được triển khai và quản lý cô lập bên trong một container Docker trên localhost.
- Firebase: Sử dụng Firebase Authentication phục vụ đăng ký/đăng nhập và Firebase Storage để lưu trữ hình ảnh tải lên.
- Google Places API: Tích hợp 3 công cụ chính là Place Picker (tìm địa điểm xung quanh), Place Autocomplete (tự động gợi ý hoàn chỉnh địa chỉ khi gõ) và Place Details (lấy chi tiết kinh độ, vĩ độ, tên địa điểm).
- Kiểm thử API: Sử dụng Postman để kiểm tra các phương thức HTTP (GET, POST, PUT, DELETE, PATCH) ngay trong quá trình xây dựng backend độc lập với giao diện.
2. Thiết kế cơ sở dữ liệu
Hệ thống GoS thiết kế mô hình dữ liệu quan hệ gồm 6 bảng thực thể chính:
User: Lưu trữ thông tin tài khoản người dùng (họ tên, số điện thoại, thông tin trường lớp, mô tả, ảnh đại diện).
Drive: Lưu trữ thông tin chuyến đi được tạo ra (điểm đi, điểm đến, thời gian, giá cước, trạng thái).
DriveHistory: Lưu trữ lịch sử các chuyến đi đã hoàn tất hoặc đã hủy của từng người dùng.
Message: Lưu trữ nội dung tin nhắn văn bản trao đổi giữa các bên trong một chuyến đi.
Place: Lưu trữ dữ liệu các địa điểm đón và trả khách.
ConversationToUser: Bảng quan hệ nhiều - nhiều liên kết người dùng với các cuộc hội thoại tương ứng.
Kết quả và đóng góp
1. Kết quả chính đạt được
- Khảo sát thực tế và lượng hóa được nhu cầu đi nhờ xe tại Làng Đại học: 63,6% người có phương tiện cá nhân, 71,4% trong số đó đi một mình, trong khi 75% người được hỏi có nhu cầu đi ghép xe nếu chi phí thấp hoặc miễn phí.
- Hiện thực hóa thành công sản phẩm phần mềm GoS trên nền tảng di động đa nền tảng (Android và iOS) với đầy đủ chu trình: Đăng ký/đăng nhập qua Google/Facebook/SĐT; Tìm kiếm và kết nối chuyến đi; Tạo yêu cầu mới; Quản lý trạng thái chuyến đi; Nhắn tin thời gian thực.
- Thiết lập cơ chế định giá cước chuyến đi linh hoạt (5 đơn vị cho khoảng cách dưới 2 km; tính theo đơn giá trên km cho khoảng cách từ 2 km trở lên) và cho phép hai bên tự do thương lượng giá trước khi bắt đầu hành trình.
- Triển khai thành công kiến trúc phần mềm phân tầng hiện đại, tích hợp công nghệ Socket.IO phục vụ tương tác tức thời và lưu trữ hình ảnh tự động qua điện toán đám mây Firebase.
2. Đóng góp của đề tài
- Khắc phục khoảng trống dịch vụ tại vùng ven: Khác với Grab, Be hay Gojek vốn tập trung vào nội đô với giá cước cao và tài xế thường không quen đường xá Làng Đại học, GoS tạo ra mạng lưới tài xế chính là sinh viên địa phương nắm rõ địa hình.
- Kết hợp mục đích thương mại và phi thương mại: Ứng dụng giải quyết đồng thời nhu cầu chia sẻ chi phí xăng xe (69% người khảo sát ủng hộ) và tinh thần hỗ trợ quá giang xe miễn phí (34% người ủng hộ).
- Cải thiện trải nghiệm so với giải pháp nội bộ Go-VNU: Khắc phục nhược điểm giao diện thô sơ, thiếu trực quan của Go-VNU bằng cách nhúng Google Places API, cho phép tìm kiếm bản đồ động, tự động điền địa chỉ thay vì chỉ hiển thị văn bản cố định.
Hạn chế và hướng nghiên cứu tiếp
1. Hạn chế
- Phạm vi thử nghiệm thực tế của ứng dụng mới dừng lại ở quy mô thử nghiệm tại Khu đô thị Đại học Quốc gia Thành phố Hồ Chí Minh và địa bàn thành phố Dĩ An (Bình Dương).
- Hệ thống máy chủ cơ sở dữ liệu MySQL mới chỉ được triển khai thử nghiệm trên môi trường localhost thông qua Docker container, chưa phân tán trên môi trường hạ tầng đám mây công cộng quy mô lớn.
- Chưa tích hợp cổng thanh toán trực tuyến tự động; các bên tham gia vẫn phải thực hiện thanh toán trực tiếp bằng tiền mặt hoặc chuyển khoản thỏa thuận ngoài ứng dụng sau chuyến đi.
2. Hướng nghiên cứu tiếp
- Mở rộng phạm vi phục vụ của ứng dụng sang các trường đại học lân cận, các tỉnh thuộc khu vực Tây Nam Bộ, Tây Nguyên và tiến tới triển khai rộng rãi trên toàn quốc.
- Tiếp tục nâng cấp và tối ưu hóa thuật toán ghép nối chuyến đi nhằm nâng cao độ chính xác và tốc độ xử lý khi lưu lượng người dùng tăng cao.
- Hoàn thiện thêm các chức năng mở rộng liên quan đến đánh giá uy tín người dùng, tích hợp các tiện ích an toàn và phương thức thanh toán trực tiếp trong hệ thống.
Giá trị tham khảo
Đồ án là tài liệu tham khảo hữu ích cho:
- Sinh viên chuyên ngành Kỹ thuật Phần mềm, Công nghệ Thông tin và Hệ thống Thông tin đang thực hiện đồ án môn học hoặc khóa luận tốt nghiệp về phát triển ứng dụng di động đa nền tảng.
- Các nhóm nghiên cứu phát triển mô hình kinh tế chia sẻ (carpooling/ridesharing), giải bài toán kết nối phương tiện giao thông cục bộ trong các khu công nghiệp, làng đại học hoặc khu đô thị vệ tinh.
- Những nội dung đáng tham khảo chuyên sâu bao gồm:
- Bộ số liệu khảo sát thực nghiệm ($N = 120$) về hành vi di chuyển và tâm lý chia sẻ xe của sinh viên.
- Thiết kế kiến trúc backend sử dụng NestJS kết hợp Prisma ORM và Socket.IO phục vụ ứng dụng thời gian thực.
- Tập tài liệu phân tích thiết kế hệ thống hoàn chỉnh từ Use Case, Sequence Diagram đến cấu trúc lược đồ dữ liệu cơ sở quan hệ.
Câu hỏi thường gặp
1. Phương pháp tính phí cho mỗi chuyến đi trong ứng dụng GoS được quy định như thế nào?
Hệ thống áp dụng công thức phân đoạn: các chuyến đi có cự ly dưới 2 km có mức phí cố định là 5 (theo đơn vị quy ước của hệ thống). Đối với các chuyến đi từ 2 km trở lên, giá cước bằng số ki-lô-mét nhân với một hệ số định trước. Người đi nhờ và người cho đi nhờ có thể tự thương lượng lại mức giá và thanh toán trực tiếp sau khi hoàn tất chuyến đi.
2. Kết quả khảo sát 120 sinh viên về tình trạng phương tiện phản ánh điều gì?
Khảo sát cho thấy có 63,6% người tham gia sở hữu phương tiện cá nhân, trong đó 71,4% thường xuyên di chuyển một mình để trống yên sau. Chi phí trung bình sinh viên phải chi trả cho bảo trì, xăng xe và gửi xe là 500.000 đồng/tháng. Đáng chú ý, 69% sẵn sàng cho đi nhờ xe có thu phí và 34% đồng ý cho đi nhờ hoàn toàn miễn phí.
3. Vì sao ứng dụng sử dụng thuật toán A* bên cạnh thuật toán Dijkstra của Google Maps?
Thuật toán Dijkstra tìm đường ngắn nhất bằng phương pháp tham lam duyệt qua các nút, nhưng số lượng nút giao thông trên Google Maps gần như vô hạn dẫn đến độ phức tạp không gian và thời gian rất lớn. Thuật toán A* khắc phục nhược điểm này bằng cách sử dụng thêm hàm Heuristic tập trung định hướng về nút đích, giúp cải thiện hiệu năng xử lý trên tập đồ thị lớn.
4. Kiến trúc hệ thống GoS sử dụng những công nghệ cốt lõi nào?
Hệ thống vận hành theo mô hình 3 tầng: Tầng Frontend dùng React Native, TailwindCSS và Expo; Tầng Backend xây dựng bằng NestJS, Prisma ORM, Socket.IO và xác thực bằng JWT cùng Google API; Tầng Dữ liệu sử dụng MySQL chạy trên nền tảng ảo hóa Docker, kết hợp với Firebase Authentication và Firebase Storage.
5. Cơ chế nhắn tin giữa hai người dùng trên ứng dụng được bảo mật và vận hành ra sao?
Sau khi hai người dùng kết nối thành công một chuyến đi, hệ thống mở kết nối Socket.IO truyền tin thời gian thực. Để đảm bảo an toàn thông tin và bảo mật cá nhân, ứng dụng chỉ cho phép gửi dữ liệu dạng ký tự văn bản thuần túy, không hỗ trợ đính kèm tệp tin hay các phương tiện truyền thông (media) khác.
Kết luận
Đồ án "Ứng dụng quá giang xe cho sinh viên Làng Đại học – GoS" đã giải quyết thành công bài toán kết nối giao thông mang tính đặc thù cho khu vực ngoại ô thông qua mô hình chia sẻ chuyến đi thương mại và phi thương mại. Nghiên cứu kết hợp chặt chẽ giữa khảo sát thực tiễn với việc xây dựng hệ thống phần mềm hoàn chỉnh theo kiến trúc 3 tầng hiện đại trên nền tảng React Native, NestJS, MySQL và Socket.IO. Kết quả của đề tài không chỉ cung cấp một giải pháp di chuyển kinh tế, an toàn cho sinh viên Đại học Quốc gia Thành phố Hồ Chí Minh mà còn là tài liệu tham khảo kỹ thuật giá trị trong thiết kế và phát triển các hệ thống phần mềm thời gian thực.