Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp kỹ sư ngành Công nghệ Thông tin, chuyên ngành Công nghệ Phần mềm tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (mã đề tài: SKL013896) mang tên "Xây dựng hệ thống website đặt vé xe khách sử dụng ReactJS và ASP.NET", do sinh viên Đỗ Minh Dũng (MSSV: 20110620) và Nguyễn Thái Ngọc Tân (MSSV: 20110719) thực hiện dưới sự hướng dẫn của TS. Lê Văn Vinh trong thời gian từ ngày 01/09/2023 đến ngày 10/07/2024.
Lý do chọn đề tài xuất phát từ thực tế nhu cầu di chuyển của người dân ngày càng gia tăng, đặc biệt trong lĩnh vực vận tải hành khách đường bộ. Tuy nhiên, hành khách thường gặp nhiều khó khăn, tốn kém thời gian và công sức trong việc tiếp cận thông tin, lựa chọn chuyến xe có điểm dừng, đỗ phù hợp với lịch trình cá nhân. Về phía các đơn vị vận tải, việc quản lý thủ công các tuyến đường, chuyến xe, bảng giá và phân bổ ghế ngồi còn phân tán. Đề tài được triển khai nhằm giải quyết bài toán kết nối trực tuyến giữa hành khách và các nhà xe, mang lại công cụ đặt vé và quản trị vận tải đồng bộ.
Mục tiêu cụ thể của đề tài bao gồm 5 nội dung chính:
- Xây dựng giao diện người dùng đơn giản, dễ thao tác và tối ưu trải nghiệm tương tác.
- Thiết kế phân hệ quản trị dành cho Người quản trị hệ thống (Admin) để quản lý các bến bãi, điểm dừng và danh mục nhà xe.
- Thiết kế phân hệ quản trị dành cho Nhà xe (Company) nhằm quản lý phương tiện, lộ trình di chuyển, bảng giá và chuyến đi.
- Xây dựng chức năng tra cứu, tìm kiếm chuyến đi linh hoạt phục vụ khách hàng.
- Thiết lập các cơ chế an toàn và bảo mật thông tin cho toàn bộ hệ thống website.
Đối tượng nghiên cứu của đồ án là quy trình quản lý và vận hành dịch vụ đặt vé xe trực tuyến, bao gồm ba chủ thể chính: các đơn vị quản lý vận tải hành khách, các doanh nghiệp cung cấp dịch vụ vận tải/bán vé trực tuyến, và người dùng cuối có nhu cầu di chuyển.
Phạm vi nghiên cứu tập trung vào việc xác định, mô hình hóa và hiện thực hóa các yêu cầu chức năng cùng yêu cầu phi chức năng của hệ thống web: thiết kế giao diện tương tác, bảo đảm hiệu suất vận hành, bảo mật thông tin người dùng, tối ưu hóa quy trình nghiệp vụ đặt vé trực tuyến và thu thập phản hồi của hành khách.
Về mặt ý nghĩa, đề tài đóng góp kiến thức thực nghiệm trong việc ứng dụng mô hình kiến trúc phân tách Client-Server hiện đại vào bài toán quản lý vận tải. Về mặt thực tiễn, hệ thống giúp rút ngắn thời gian giao dịch của hành khách, hỗ trợ doanh nghiệp vận tải theo dõi dữ liệu kinh doanh tập trung, tối ưu lịch trình phương tiện và kiểm soát an toàn dữ liệu khách hàng.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và công nghệ được tác giả sử dụng trong công trình bao gồm các nền tảng sau:
-
ReactJS: Thư viện JavaScript mã nguồn mở do Facebook phát triển để xây dựng giao diện người dùng (UI). Tác giả nghiên cứu cơ chế DOM thực tế và Virtual DOM (bản sao nhẹ của DOM thực tế trong bộ nhớ). Nguyên lý vận hành dựa trên cơ chế so sánh sai khác (diffing): khi state hoặc props thay đổi, React tạo cây Virtual DOM mới, so sánh với cây trước đó và chỉ cập nhật những phần tử thay đổi lên DOM thực tế, giúp tối ưu hiệu suất và đảm bảo tính nhất quán. Cú pháp JSX được dùng để kết hợp JavaScript và HTML. Kiến trúc mã nguồn phân chia thành Functional Components (dùng hàm, không có trạng thái hay vòng đời riêng, xử lý logic đơn giản) và Class Components (dùng ES6 class, quản lý trạng thái động và vòng đời). Hệ thống khai thác cơ chế truyền dữ liệu bất biến thông qua Props, lưu trữ dữ liệu thời gian chạy qua State, cùng các phương thức trong vòng đời (Lifecycle) gồm 4 giai đoạn:
- Khởi tạo và lắp đặt (Mounting):
constructor(), render(), componentDidMount().
- Cập nhật (Updating):
shouldComponentUpdate(), render(), componentDidUpdate().
- Hủy bỏ (Unmounting):
componentWillUnmount().
- Xử lý ngoại lệ (Error Handling):
static getDerivedStateFromError().
-
C# và ASP.NET: Ngôn ngữ lập trình C# hướng đối tượng (OOP), kiểm soát kiểu dữ liệu an toàn tại thời điểm biên dịch (type-safe), hoạt động trên nền tảng .NET. Framework ASP.NET được nghiên cứu qua các mô hình tiến hóa: ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web API (xây dựng dịch vụ RESTful) và .NET Core hỗ trợ đa nền tảng (cross-platform).
-
Microsoft SQL Server: Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) quản lý dữ liệu thông qua các bảng quan hệ và ngôn ngữ truy vấn SQL. Cơ chế tối ưu hóa dựa trên đánh chỉ mục (indexing), lập lịch tác vụ (job scheduling), kiểm soát truy cập phân quyền và mã hóa bảo mật.
-
Thư viện và công nghệ phụ trợ: Entity Framework, Dapper (truy vấn dữ liệu), JSON Web Token (JWT) phục vụ xác thực và phân quyền, Ant Design, TailwindCSS (thiết kế giao diện), Background Service, NotificationService (truyền phát thông báo thời gian thực) và dịch vụ xác thực mã OTP, đăng nhập Google.
Phương pháp nghiên cứu được triển khai theo quy trình kỹ thuật phần mềm:
- Phương pháp khảo sát, phân tích hiện trạng các hệ thống thực tế đang hoạt động trên thị trường.
- Phương pháp mô hình hóa hướng đối tượng theo chuẩn UML (Unified Modeling Language) để đặc tả ca sử dụng (Use Case), mô hình hóa tuần tự (Sequence Diagram), thiết kế lớp (Class Diagram) và mô hình hóa dữ liệu quan hệ (ERD).
- Phương pháp kiểm thử phần mềm dựa trên kịch bản (Scenario Testing) và thiết kế ca kiểm thử (Test Case).
Nguồn dữ liệu nghiên cứu thu thập từ kết quả khảo sát đối chuẩn 3 hệ thống bán vé xe trực tuyến (VeXeRe, MegaBus, EasyBook) kết hợp với tài liệu kỹ thuật chuẩn của Microsoft và ReactJS.
Nội dung chính theo từng chương
Chương 1: Cơ sở lý thuyết
Chương 1 hệ thống hóa toàn bộ nền tảng công nghệ phục vụ xây dựng hệ thống. Trọng tâm của chương là việc làm rõ bản chất hoạt động của ReactJS thông qua cơ chế Virtual DOM, cú pháp JSX, cấu trúc Component, vòng đời Component, cách thức phân biệt giữa Props và State. Tiếp đó, tác giả trình bày đặc tính của ngôn ngữ C#, các phiên bản kiến trúc của ASP.NET (Web Forms, MVC, Web API, .NET Core) và khả năng quản trị cơ sở dữ liệu quan hệ, bảo mật dữ liệu của Microsoft SQL Server.
Chương 2: Khảo sát hiện trạng
Chương 2 khảo sát thực trạng của 3 website đặt vé trực tuyến đang vận hành, từ đó rút ra các ưu điểm và hạn chế làm căn cứ xác định yêu cầu hệ thống:
| Hệ thống khảo sát |
Ưu điểm ghi nhận |
Khuyết điểm và hạn chế |
VeXeRe (vexere.com) |
Hợp tác nhiều nhà xe, nhiều chương trình ưu đãi, bộ lọc chuyến đi đa dạng (giờ đi, điểm đón/trả, hàng ghế). |
Phân trang chưa tối ưu (phải cuộn lên đầu trang để lọc); phần chân trang (footer) chiếm diện tích màn hình quá lớn. |
MegaBus (megabus.com) |
Tra cứu nhanh chóng, nhiều lựa chọn dịch vụ, áp dụng tốt cơ chế phân trang kết hợp bộ lọc. |
Không hỗ trợ thanh toán trực tuyến (chỉ gửi thư xác nhận qua Gmail). |
EasyBook (easybook.com) |
Phạm vi đặt vé đa quốc gia (khu vực Đông Nam Á), hỗ trợ thanh toán trực tuyến với nhiều loại tiền tệ. |
Số lượng chuyến đi bị hạn chế, người dùng phải thực hiện tra cứu nhiều lần. |
Từ kết quả khảo sát, tác giả xác định 15 chức năng yêu cầu nghiệp vụ cho 3 nhóm tác nhân (Khách hàng, Nhà xe, Quản trị viên):
| STT |
Tên chức năng nghiệp vụ |
Tác nhân sử dụng |
| 1 |
Đăng ký tài khoản |
Người dùng, Nhà xe |
| 2 |
Đăng nhập hệ thống |
Người dùng, Nhà xe, Quản trị viên (Admin) |
| 3 |
Cập nhật mật khẩu |
Người dùng, Nhà xe |
| 4 |
Đăng xuất |
Người dùng, Nhà xe, Quản trị viên (Admin) |
| 5 |
Tìm kiếm chuyến đi |
Người dùng |
| 6 |
Mua vé xe |
Người dùng |
| 7 |
Đánh giá chất lượng xe/chuyến đi |
Người dùng |
| 8 |
Cập nhật thông tin hồ sơ (profile) |
Người dùng |
| 9 |
Quản lý phương tiện xe |
Nhà xe |
| 10 |
Chỉnh sửa thông tin chuyến đi |
Nhà xe |
| 11 |
Thống kê doanh thu theo năm |
Nhà xe |
| 12 |
Quản lý tài khoản người dùng |
Quản trị viên (Admin) |
| 13 |
Quản lý thông tin nhà xe |
Quản trị viên (Admin) |
| 14 |
Quản lý điểm dừng đỗ, bến bãi |
Quản trị viên (Admin) |
| 15 |
Gửi thông báo thời gian thực (realtime) |
Người dùng, Nhà xe, Quản trị viên (Admin) |
Hệ thống xác lập 3 yêu cầu hệ thống (phân quyền đa cấp bậc, xác thực tài khoản đơn nhất gắn với một vai trò, xử lý ngoại lệ/kiểm soát lỗi tập trung) và 4 yêu cầu phi chức năng (tính dễ sử dụng, tính đúng đắn theo quy định pháp luật đường bộ, khả năng mở rộng quy mô, tính an toàn thông tin không chia sẻ bên thứ ba).
Chương 2 mô hình hóa chi tiết 14 ca sử dụng (Use Case) điển hình:
- Nhóm dùng chung: UC.001 (Đăng ký), UC.002 (Đăng nhập), UC.003 (Đăng xuất).
- Nhóm khách hàng: UC.004 (Tìm kiếm chuyến đi theo điểm đi, điểm đến, ngày khởi hành và bộ lọc), UC.005 (Quản lý chuyến đi: xem chuyến hoàn thành, sắp tới, hủy đơn đặt vé), UC.006 (Đặt vé xe: chọn ghế, chọn điểm đón/trả, nhập thông tin liên hệ, thanh toán), UC.007 (Đánh giá chất lượng chuyến đi: xếp hạng thang điểm 5 sao và bình luận).
- Nhóm nhà xe: UC.008 (Quản lý xe: thêm mới biển số, loại xe, ghế ngồi, cập nhật), UC.009 (Xem thống kê doanh thu theo năm), UC-010 (Quản lý trạng thái chuyến đi), UC-011 (Thêm mới chuyến đi gắn với lộ trình và bảng giá), UC-012 (Quản lý bảng giá: thêm bảng giá ở trạng thái Chờ duyệt), UC-013 (Quản lý loại giá: gắn tuyến đi, giá cước, phụ phí), UC-014 (Quản lý lộ trình: chọn danh sách xe buýt, các bến đón/trả, thiết lập thứ tự và mốc thời gian đến/đi).
Chương 3: Thiết kế hệ thống
Chương 3 trình bày các nội dung thiết kế kỹ thuật:
- Thiết kế hệ thống xử lý nền (Background Service) và hệ thống phát thông báo (NotificationService).
- Thiết kế mô hình dữ liệu quan hệ (ERD) đồng bộ các thực thể: Người dùng, Tài khoản, Nhà xe, Phương tiện, Loại xe, Loại ghế, Bến bãi/Trạm dừng, Tuyến đường, Lộ trình, Bảng giá, Loại giá, Chuyến đi, Đơn hàng/Vé xe và Đánh giá.
- Thiết kế lược đồ tuần tự (Sequence Diagram) chi tiết cho các luồng nghiệp vụ: đăng ký, đăng nhập, tìm kiếm chuyến đi, đặt vé, hủy đơn hàng, thêm/sửa xe, quản lý bến bãi, cập nhật lộ trình và thống kê doanh thu.
- Thiết kế chi tiết giao diện người dùng tương ứng cho từng nhóm tác nhân:
- Giao diện Admin: Bảng điều khiển (Dashboard), trang quản lý nhà xe, trang thông tin chi tiết nhà xe, quản lý tài khoản người dùng, trang chi tiết người dùng, quản lý bến bãi, thêm mới/chi tiết bến bãi, quản lý loại xe, thêm/sửa loại xe, quản lý loại ghế, thêm/sửa loại ghế, quản lý tuyến đường, thêm mới tuyến đường, quản lý bảng giá, quản lý loại giá.
- Giao diện Nhà xe: Trang quản lý xe, thêm mới/chỉnh sửa/chi tiết xe, quản lý lộ trình, thêm mới lộ trình, quản lý chuyến đi, tạo vé, quản lý bảng giá và loại giá của nhà xe, trang thống kê doanh thu.
- Giao diện Khách hàng: Trang chủ, trang kết quả tìm kiếm, trang chọn vị trí ghế ngồi, trang chọn điểm đón/trả, trang điền thông tin đặt vé, trang thanh toán, trang hồ sơ cá nhân, trang lịch sử hóa đơn, trang vé chờ xuất bến, trang chuyến đi hoàn thành, trang chuyến đi đã hủy, trang đăng ký và modal xác thực mã OTP.
Chương 4: Cài đặt và kiểm thử
Chương 4 mô tả quá trình hiện thực hóa các mô-đun và thực hiện kiểm thử chức năng dựa trên các kịch bản thực tế: kịch bản đăng ký tài khoản, kịch bản đăng nhập, kịch bản tìm kiếm vé xe, kịch bản đặt vé xe và kịch bản tạo vé xe dành cho nhà xe. Mỗi kịch bản được cụ thể hóa bằng các bảng ca kiểm thử (Test Case) đánh giá tính đúng đắn của dữ liệu đầu vào, luồng chuyển hướng giao diện và khả năng bắt lỗi ngoại lệ của hệ thống.
Phần kết luận
Phần kết luận tổng hợp mức độ hoàn thành so với mục tiêu đề ra: hệ thống đã vận hành đầy đủ các chức năng quản lý vận tải và đặt vé xe trực tuyến theo đúng đặc tả; nêu rõ các ưu điểm về giao diện trực quan và khả năng kết nối dữ liệu; chỉ ra các hạn chế còn tồn đọng và định hướng nghiên cứu phát triển tiếp theo.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình tách biệt giữa giao diện người dùng (Frontend) và dịch vụ xử lý nghiệp vụ/dữ liệu (Backend):
[Trình duyệt Khách hàng / Nhà xe / Admin]
Giao thức HTTPS / RESTful API
[ASP.NET Core Web API]
[Microsoft SQL Server]
Quá trình triển khai kỹ thuật bao gồm các đặc điểm:
- Tầng giao diện (Frontend): Xây dựng bằng ReactJS, ứng dụng cơ chế chia nhỏ component tái sử dụng, đồng bộ trạng thái giao diện thông qua State và Props. Giao diện được định kiểu bằng Ant Design và TailwindCSS, tối ưu hóa các thành phần tương tác như bộ lọc tìm kiếm, sơ đồ chọn vị trí ghế trực quan, bảng điều khiển thống kê và modal xác thực OTP.
- Tầng máy chủ và dịch vụ (Backend): Xây dựng bằng C# trên nền tảng ASP.NET Web API cung cấp các điểm cuối RESTful. Cơ chế bảo mật và kiểm soát truy cập thực hiện thông qua chuẩn JSON Web Token (JWT), hỗ trợ tích hợp đăng nhập tài khoản bằng Google. Tầng dữ liệu tương tác với Microsoft SQL Server thông qua Entity Framework và Dapper.
- Dịch vụ nền và thông báo: Hệ thống cài đặt Background Service xử lý các tác vụ nền định kỳ và NotificationService nhằm gửi các thông báo trạng thái tức thời đến các nhóm tác nhân khi có thay đổi về đơn hàng hoặc chuyến đi.
- Công tác kiểm thử: Hệ thống thực hiện kiểm thử hộp đen thông qua các ca kiểm thử chức năng được định nghĩa trong Chương 4:
| Nhóm chức năng kiểm thử |
Nội dung kiểm thử chính |
Điều kiện / Kết quả mong đợi |
| Đăng nhập |
Nhập thông tin tài khoản, mật khẩu; kiểm tra trường để trống; kiểm tra sai mật khẩu. |
Báo lỗi khi thiếu dữ liệu hoặc sai thông tin; xác thực thành công và điều hướng đúng phân hệ khi hợp lệ. |
| Tìm kiếm vé xe |
Nhập điểm đi, điểm đến, ngày khởi hành; áp dụng bộ lọc theo nhà xe, giờ chạy, giá vé. |
Hiển thị danh sách chuyến xe phù hợp kèm thông tin ghế trống; báo thông báo không tìm thấy nếu không có chuyến. |
| Đặt vé xe |
Chọn vị trí ghế ngồi, chọn trạm đón, trạm trả, nhập thông tin liên hệ và chuyển hướng thanh toán. |
Giữ chỗ thành công, chuyển hướng trang thanh toán; không cho phép chọn trùng ghế đã có người đặt. |
| Tạo vé xe (Nhà xe) |
Chọn tuyến xe, ngày xuất bến, phương tiện xe, bảng giá và xác nhận lộ trình. |
Tạo chuyến đi thành công với trạng thái sẵn sàng mở bán; báo lỗi nếu thông tin chuyến trùng lặp hoặc không hợp lệ. |
Kết quả và đóng góp
Hệ thống đã hoàn thành việc xây dựng và tích hợp các phân hệ chức năng theo đúng đề cương nghiên cứu:
- Xây dựng hoàn chỉnh 15 chức năng nghiệp vụ vận hành xuyên suốt giữa 3 nhóm tác nhân: Quản trị viên (Admin), Doanh nghiệp vận tải (Nhà xe), và Khách hàng.
- Hoàn thiện đầy đủ cấu trúc giao diện bao gồm hệ thống bảng điều khiển của Admin (quản lý người dùng, nhà xe, bến bãi, tuyến đường, bảng giá), công cụ quản trị tác nghiệp của Nhà xe (quản lý xe, lộ trình, chuyến đi, giá vé, thống kê doanh thu theo năm) và cổng thông tin dành cho Khách hàng (tìm kiếm đa tiêu chí, chọn ghế trực quan, quản lý vé theo các trạng thái: chờ xuất bến, đã hoàn thành, đã hủy).
- Tích hợp thành công các cơ chế phụ trợ: xác thực bằng mã OTP, thông báo thời gian thực qua NotificationService, chạy tác vụ ngầm với Background Service, và liên kết đăng nhập thông qua Google.
Về mặt giải pháp, tác giả giải quyết được các hạn chế đã chỉ ra ở các hệ thống khảo sát thực tế:
- So với MegaBus, hệ thống bổ sung quy trình thanh toán trực tuyến đồng bộ gắn với đơn hàng thay vì chỉ gửi thư xác nhận qua email.
- So với VeXeRe, hệ thống cải tiến cấu trúc phân trang kết hợp bộ lọc linh hoạt, thu gọn diện tích phần chân trang để tăng diện tích hiển thị danh sách chuyến đi.
- So với EasyBook, hệ thống chuẩn hóa quy trình thiết lập lộ trình và trạm dừng chi tiết cho từng nhà xe, giúp khách hàng nắm bắt rõ các điểm đón trả trung gian trong chuyến hành trình.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài được xác định dựa trên phạm vi công việc và nội dung trình bày trong văn bản:
- Hệ thống mới dừng lại ở việc triển khai trên nền tảng ứng dụng web, chưa xây dựng ứng dụng di động chuyên biệt (mobile app) cho hành khách và tài xế/tiếp viên nhà xe.
- Quá trình thử nghiệm và đánh giá hệ thống chủ yếu thực hiện qua các ca kiểm thử kịch bản chức năng giả lập, chưa tiến hành đo kiểm tải thực tế với lưu lượng truy cập đồng thời lớn trên môi trường mạng diện rộng.
- Dữ liệu tuyến đường, bến bãi và thông tin chuyến xe còn mang tính chất thử nghiệm cục bộ, chưa liên kết trực tiếp với hệ sinh thái dữ liệu của các cơ quan quản lý giao thông vận tải.
Hướng phát triển tiếp theo mà đồ án có thể mở rộng bao gồm:
- Phát triển thêm phiên bản ứng dụng di động dành cho hệ điều hành Android và iOS để nâng cao tính tiện lợi cho người dùng và nhân viên nhà xe.
- Nghiên cứu tích hợp thêm các cổng thanh toán điện tử phổ biến tại Việt Nam và mở rộng các tiêu chí phân tích doanh thu chuyên sâu cho doanh nghiệp vận tải.
- Tối ưu hóa hiệu năng cơ sở dữ liệu và triển khai hệ thống lên hạ tầng điện toán đám mây để hỗ trợ mở rộng quy mô khi số lượng nhà xe và hành khách gia tăng.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo hữu ích cho sinh viên chuyên ngành Công nghệ phần mềm, Công nghệ thông tin và các lập trình viên đang nghiên cứu xây dựng các hệ thống thương mại điện tử hoặc quản lý đặt chỗ trực tuyến.
Các nội dung có giá trị tham khảo cụ thể bao gồm:
- Phương pháp khảo sát hiện trạng và xác định yêu cầu: Cung cấp cách tiếp cận đối chuẩn các hệ thống thực tế trên thị trường để tìm ra điểm hạn chế, từ đó xác lập bảng yêu cầu nghiệp vụ và yêu cầu hệ thống rõ ràng.
- Quy trình mô hình hóa Use Case chi tiết: Cung cấp mẫu đặc tả ca sử dụng hoàn chỉnh từ mã định danh, tác nhân, tiền điều kiện, hậu điều kiện đến luồng cơ bản, luồng thay thế và luồng ngoại lệ cho các bài toán phân quyền phức tạp.
- Kiến trúc kết hợp ReactJS và ASP.NET Web API: Cung cấp cách tổ chức giao diện tương tác phía người dùng kết hợp với dịch vụ Web API phía máy chủ, quản lý phiên làm việc qua JWT và quản trị dữ liệu quan hệ bằng Microsoft SQL Server.
- Thiết kế ca kiểm thử (Test Case): Cung cấp tài liệu mẫu về việc xây dựng kịch bản kiểm thử chức năng cho các quy trình cốt lõi trong hệ thống quản lý bán vé.
Câu hỏi thường gặp
1. Khóa luận đã tiến hành khảo sát những website thực tế nào và phát hiện hạn chế gì ở các hệ thống đó?
Tác giả đã khảo sát 3 website: VeXeRe (vexere.com), MegaBus (megabus.com) và EasyBook (easybook.com). Hạn chế được chỉ ra là: VeXeRe có phân trang chưa tối ưu (phải cuộn lên đầu màn hình để lọc) và phần chân trang chiếm diện tích quá lớn; MegaBus không hỗ trợ thanh toán trực tuyến (chỉ gửi xác nhận qua Gmail); EasyBook có số lượng chuyến đi hạn chế khiến người dùng phải tra cứu nhiều lần.
2. Hệ thống phân chia quyền hạn người dùng thành những vai trò nào và nhiệm vụ chính của từng vai trò là gì?
Hệ thống phân chia thành 3 vai trò:
- Admin: Có quyền cao nhất, quản lý tài khoản người dùng, nhà xe, các vai trò, bến bãi, điểm dừng đỗ, tuyến đường và duyệt bảng giá.
- Nhà xe (Company): Quản lý danh sách phương tiện xe, quản lý lộ trình di chuyển, thiết lập bảng giá, loại giá, thêm mới/quản lý chuyến đi và xem thống kê doanh thu theo năm.
- Khách hàng: Tìm kiếm chuyến đi, chọn ghế, chọn điểm đón/trả, đặt vé, thanh toán trực tuyến, quản lý lịch sử chuyến đi và đánh giá chất lượng chuyến đi theo thang điểm 5 sao.
3. Quy trình thực hiện ca sử dụng Đặt vé xe (UC.006) của khách hàng diễn ra như thế nào?
Quy trình gồm 5 bước cơ bản: Khách hàng nhấn chọn chuyến đi -> Hệ thống hiển thị sơ đồ chỗ ngồi -> Khách hàng chọn vị trí ghế còn trống và nhấn "Tiếp tục" -> Khách hàng chọn trạm đón, trạm trả và nhấn "Tiếp tục" -> Khách hàng nhấn "Đặt vé" để hệ thống chuyển tiếp sang trang thanh toán. Nếu có lỗi phát sinh, hệ thống giữ nguyên giao diện để người dùng kiểm tra lại thông tin.
4. Khóa luận sử dụng các công nghệ chính nào để xây dựng phần Frontend và Backend?
Phần Frontend được xây dựng bằng thư viện ReactJS kết hợp với Ant Design và TailwindCSS để tạo giao diện người dùng và xử lý tương tác qua Virtual DOM. Phần Backend được phát triển bằng ngôn ngữ C# trên nền tảng ASP.NET Web API, sử dụng Entity Framework và Dapper để truy xuất cơ sở dữ liệu Microsoft SQL Server, kết hợp JSON Web Token (JWT) cho xác thực và phân quyền.
5. Những kịch bản và ca kiểm thử (Test Case) nào đã được thực hiện trong Chương 4 của khóa luận?
Chương 4 thực hiện kiểm thử trên 5 kịch bản chính: Kịch bản đăng ký tài khoản, kịch bản đăng nhập, kịch bản tìm kiếm vé xe, kịch bản đặt vé xe và kịch bản tạo vé xe của nhà xe. Đi kèm với các kịch bản này là các bộ ca kiểm thử chi tiết (Test case đăng nhập, Test case tìm kiếm vé xe, Test case đặt vé xe, Test case tạo vé xe) nhằm kiểm tra tính hợp lệ của dữ liệu và khả năng bắt lỗi ngoại lệ.
Kết luận
Đồ án tốt nghiệp "Xây dựng hệ thống website đặt vé xe khách sử dụng ReactJS và ASP.NET" của sinh viên Đỗ Minh Dũng và Nguyễn Thái Ngọc Tân đã hoàn thành mục tiêu thiết kế và cài đặt một hệ thống web bán vé xe khách trực tuyến đa tác nhân. Công trình đã chuẩn hóa quy trình nghiệp vụ vận tải từ khâu quản lý phương tiện, lộ trình, bảng giá của nhà xe đến khâu tìm kiếm, giữ chỗ, thanh toán trực tuyến của hành khách và phân quyền giám sát của quản trị viên. Toàn bộ giải pháp được xây dựng dựa trên sự kết hợp giữa ReactJS ở phía máy khách và ASP.NET Web API cùng Microsoft SQL Server ở phía máy chủ, mang lại tài liệu tham khảo có giá trị về phân tích thiết kế hệ thống và kiểm thử phần mềm.